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)
165 #define DVARS_INHERIT ((void*)1)
166 #define DVARS_TOPSCOPE NULL
167 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
168 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
191 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
198 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
211 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
228 for (i = 0; i < tbl->
pos; i++) {
229 if (tbl->
tbl[i] ==
id) {
313 VALUE parser_ruby_sourcefile_string;
321 VALUE parsing_thread;
326 #define UTF8_ENC() (parser->utf8 ? parser->utf8 : \
327 (parser->utf8 = rb_utf8_encoding()))
328 #define STR_NEW(p,n) rb_enc_str_new((p),(n),parser->enc)
329 #define STR_NEW0() rb_enc_str_new(0,0,parser->enc)
330 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),parser->enc)
331 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),parser->enc)
332 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT)
333 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), parser->enc)
336 #define yyerror(msg) parser_yyerror(parser, (msg))
338 #define lex_strterm (parser->parser_lex_strterm)
339 #define lex_state (parser->parser_lex_state)
340 #define cond_stack (parser->parser_cond_stack)
341 #define cmdarg_stack (parser->parser_cmdarg_stack)
342 #define class_nest (parser->parser_class_nest)
343 #define paren_nest (parser->parser_paren_nest)
344 #define lpar_beg (parser->parser_lpar_beg)
345 #define in_single (parser->parser_in_single)
346 #define in_def (parser->parser_in_def)
347 #define compile_for_eval (parser->parser_compile_for_eval)
348 #define cur_mid (parser->parser_cur_mid)
349 #define in_defined (parser->parser_in_defined)
350 #define tokenbuf (parser->parser_tokenbuf)
351 #define tokidx (parser->parser_tokidx)
352 #define toksiz (parser->parser_toksiz)
353 #define lex_input (parser->parser_lex_input)
354 #define lex_lastline (parser->parser_lex_lastline)
355 #define lex_nextline (parser->parser_lex_nextline)
356 #define lex_pbeg (parser->parser_lex_pbeg)
357 #define lex_p (parser->parser_lex_p)
358 #define lex_pend (parser->parser_lex_pend)
359 #define heredoc_end (parser->parser_heredoc_end)
360 #define command_start (parser->parser_command_start)
361 #define deferred_nodes (parser->parser_deferred_nodes)
362 #define lex_gets_ptr (parser->parser_lex_gets_ptr)
363 #define lex_gets (parser->parser_lex_gets)
364 #define lvtbl (parser->parser_lvtbl)
365 #define ruby__end__seen (parser->parser_ruby__end__seen)
366 #define ruby_sourceline (parser->parser_ruby_sourceline)
367 #define ruby_sourcefile (parser->parser_ruby_sourcefile)
368 #define current_enc (parser->enc)
369 #define yydebug (parser->parser_yydebug)
372 #define ruby_eval_tree (parser->parser_eval_tree)
373 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
374 #define ruby_debug_lines (parser->debug_lines)
375 #define ruby_coverage (parser->coverage)
379 static int yylex(
void*,
void*);
381 static int yylex(
void*);
385 #define yyparse ruby_yyparse
388 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
391 #define cond(node) cond_gen(parser, (node))
393 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2))
401 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
402 #define void_expr0(node) void_expr_gen(parser, (node))
403 #define void_expr(node) void_expr0((node) = remove_begin(node))
405 #define void_stmts(node) void_stmts_gen(parser, (node))
407 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))
409 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))
412 #define block_append(h,t) block_append_gen(parser,(h),(t))
414 #define list_append(l,i) list_append_gen(parser,(l),(i))
416 #define list_concat(h,t) list_concat_gen(parser,(h),(t))
418 #define arg_append(h,t) arg_append_gen(parser,(h),(t))
420 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t))
422 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t))
425 #define new_evstr(n) new_evstr_gen(parser,(n))
427 #define evstr2dstr(n) evstr2dstr_gen(parser,(n))
431 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
433 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id))
436 #define new_args(f,o,r,p,b) new_args_gen(parser, (f),(o),(r),(p),(b))
440 #define ret_args(node) ret_args_gen(parser, (node))
443 #define new_yield(node) new_yield_gen(parser, (node))
446 #define gettable(id) gettable_gen(parser,(id))
448 #define assignable(id,node) assignable_gen(parser, (id), (node))
451 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2))
453 #define attrset(node,id) attrset_gen(parser, (node), (id))
456 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))
458 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
461 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2))
464 #define local_tbl() local_tbl_gen(parser)
469 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))
471 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))
473 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))
475 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match))
477 #define get_id(id) (id)
478 #define get_value(val) (val)
480 #define remove_begin(node) (node)
481 #define rb_dvar_defined(id) 0
482 #define rb_local_defined(id) 0
483 static ID ripper_get_id(
VALUE);
484 #define get_id(id) ripper_get_id(id)
486 #define get_value(val) ripper_get_value(val)
488 #define assignable(lhs,node) assignable_gen(parser, (lhs))
490 #define id_is_var(id) id_is_var_gen(parser, (id))
494 #define formal_argument(id) formal_argument_gen(parser, (id))
496 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
498 #define new_bv(id) new_bv_gen(parser, (id))
501 #define local_push(top) local_push_gen(parser,(top))
503 #define local_pop() local_pop_gen(parser)
505 #define local_var(id) local_var_gen(parser, (id));
507 #define arg_var(id) arg_var_gen(parser, (id))
509 #define local_id(id) local_id_gen(parser, (id))
511 #define internal_id() internal_id_gen(parser)
514 #define dyna_push() dyna_push_gen(parser)
516 #define dyna_pop(node) dyna_pop_gen(parser, (node))
518 #define dyna_in_block() dyna_in_block_gen(parser)
519 #define dyna_var(id) local_var(id)
521 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0)
522 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
524 #define dvar_curr(id) dvar_curr_gen(parser, (id))
527 #define lvar_defined(id) lvar_defined_gen(parser, (id))
529 #define RE_OPTION_ONCE (1<<16)
530 #define RE_OPTION_ENCODING_SHIFT 8
531 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
532 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
533 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
534 #define RE_OPTION_MASK 0xff
535 #define RE_OPTION_ARG_ENCODING_NONE 32
537 #define NODE_STRTERM NODE_ZARRAY
538 #define NODE_HEREDOC NODE_ARRAY
539 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
540 #define nd_func u1.id
541 #if SIZEOF_SHORT == 2
542 #define nd_term(node) ((signed short)(node)->u2.id)
544 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
546 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
547 #define nd_nest u3.cnt
552 #define RIPPER_VERSION "0.1.0"
556 static ID ripper_id_gets;
565 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
566 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))
567 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))
568 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
569 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
570 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
572 #define yyparse ripper_yyparse
574 #define ripper_intern(s) ID2SYM(rb_intern(s))
577 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
578 ID2SYM(id) : ripper_id2sym(id))
581 #define arg_new() dispatch0(args_new)
582 #define arg_add(l,a) dispatch2(args_add, (l), (a))
583 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))
584 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))
585 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))
586 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))
587 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))
589 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))
590 #define mrhs_new() dispatch0(mrhs_new)
591 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))
592 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))
594 #define mlhs_new() dispatch0(mlhs_new)
595 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))
596 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))
598 #define params_new(pars, opts, rest, pars2, blk) \
599 dispatch5(params, (pars), (opts), (rest), (pars2), (blk))
601 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))
602 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a))
603 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a))
605 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))
606 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))
607 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))
609 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
616 # define ifndef_ripper(x) (x)
618 # define ifndef_ripper(x)
622 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
623 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
624 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
625 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
626 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
628 # define rb_warn0(fmt) ripper_warn0(parser, (fmt))
629 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a))
630 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a))
631 # define rb_warning0(fmt) ripper_warning0(parser, (fmt))
632 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a))
633 static void ripper_warn0(
struct parser_params*,
const char*);
634 static void ripper_warnI(
struct parser_params*,
const char*,
int);
636 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
638 static void ripper_warning0(
struct parser_params*,
const char*);
639 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
643 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
644 # define rb_compile_error ripper_compile_error
645 # define compile_error ripper_compile_error
646 # define PARSER_ARG parser,
648 # define rb_compile_error rb_compile_error_with_enc
649 # define compile_error parser->nerr++,rb_compile_error_with_enc
650 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
658 #define YYMAXDEPTH 10000
665 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
666 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
668 #define token_info_push(token)
669 #define token_info_pop(token)
682 #ifdef YYERROR_VERBOSE
683 # undef YYERROR_VERBOSE
684 # define YYERROR_VERBOSE 1
686 # define YYERROR_VERBOSE 0
690 #ifndef YYTOKEN_TABLE
691 # define YYTOKEN_TABLE 0
824 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
842 # define YYSTYPE_IS_TRIVIAL 1
843 # define yystype YYSTYPE
844 # define YYSTYPE_IS_DECLARED 1
866 #elif (defined __STDC__ || defined __C99__FUNC__ \
867 || defined __cplusplus || defined _MSC_VER)
886 # ifdef __SIZE_TYPE__
887 # define YYSIZE_T __SIZE_TYPE__
888 # elif defined size_t
889 # define YYSIZE_T size_t
890 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
891 || defined __cplusplus || defined _MSC_VER)
893 # define YYSIZE_T size_t
895 # define YYSIZE_T unsigned int
899 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
902 # if defined YYENABLE_NLS && YYENABLE_NLS
904 # include <libintl.h>
905 # define YY_(msgid) dgettext ("bison-runtime", msgid)
909 # define YY_(msgid) msgid
914 #if ! defined lint || defined __GNUC__
915 # define YYUSE(e) ((void) (e))
924 #if (defined __STDC__ || defined __C99__FUNC__ \
925 || defined __cplusplus || defined _MSC_VER)
938 #if ! defined yyoverflow || YYERROR_VERBOSE
942 # ifdef YYSTACK_USE_ALLOCA
943 # if YYSTACK_USE_ALLOCA
945 # define YYSTACK_ALLOC __builtin_alloca
946 # elif defined __BUILTIN_VA_ARG_INCR
949 # define YYSTACK_ALLOC __alloca
950 # elif defined _MSC_VER
952 # define alloca _alloca
954 # define YYSTACK_ALLOC alloca
955 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
956 || defined __cplusplus || defined _MSC_VER)
958 # ifndef EXIT_SUCCESS
959 # define EXIT_SUCCESS 0
966 # ifdef YYSTACK_ALLOC
968 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
969 # ifndef YYSTACK_ALLOC_MAXIMUM
974 # define YYSTACK_ALLOC_MAXIMUM 4032
977 # define YYSTACK_ALLOC YYMALLOC
978 # define YYSTACK_FREE YYFREE
979 # ifndef YYSTACK_ALLOC_MAXIMUM
980 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
982 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
983 && ! ((defined YYMALLOC || defined malloc) \
984 && (defined YYFREE || defined free)))
986 # ifndef EXIT_SUCCESS
987 # define EXIT_SUCCESS 0
991 # define YYMALLOC malloc
992 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
993 || defined __cplusplus || defined _MSC_VER)
999 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1000 || defined __cplusplus || defined _MSC_VER)
1008 #if (! defined yyoverflow \
1009 && (! defined __cplusplus \
1010 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1020 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1024 # define YYSTACK_BYTES(N) \
1025 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1026 + YYSTACK_GAP_MAXIMUM)
1028 # define YYCOPY_NEEDED 1
1035 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1038 YYSIZE_T yynewbytes; \
1039 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1040 Stack = &yyptr->Stack_alloc; \
1041 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1042 yyptr += yynewbytes / sizeof (*yyptr); \
1048 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1052 # if defined __GNUC__ && 1 < __GNUC__
1053 # define YYCOPY(To, From, Count) \
1054 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1056 # define YYCOPY(To, From, Count) \
1060 for (yyi = 0; yyi < (Count); yyi++) \
1061 (To)[yyi] = (From)[yyi]; \
1071 #define YYLAST 10748
1074 #define YYNTOKENS 148
1078 #define YYNRULES 573
1080 #define YYNSTATES 991
1083 #define YYUNDEFTOK 2
1084 #define YYMAXUTOK 375
1086 #define YYTRANSLATE(YYX) \
1087 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1092 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1093 147, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1094 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1095 2, 2, 146, 123, 2, 2, 2, 121, 116, 2,
1096 142, 143, 119, 117, 140, 118, 139, 120, 2, 2,
1097 2, 2, 2, 2, 2, 2, 2, 2, 111, 145,
1098 113, 109, 112, 110, 2, 2, 2, 2, 2, 2,
1099 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1100 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1101 2, 138, 2, 144, 115, 2, 141, 2, 2, 2,
1102 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1103 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1104 2, 2, 2, 136, 114, 137, 124, 2, 2, 2,
1105 2, 2, 2, 2, 2, 2, 2, 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, 1, 2, 3, 4,
1118 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1119 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1120 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1121 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1122 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1123 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1124 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1125 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1126 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1127 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1128 105, 106, 107, 108, 122, 125, 126, 127, 128, 129,
1129 130, 131, 132, 133, 134, 135
1137 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1138 23, 24, 30, 35, 38, 40, 42, 46, 49, 50,
1139 55, 59, 63, 67, 70, 74, 78, 82, 86, 90,
1140 95, 97, 101, 105, 112, 118, 124, 130, 136, 140,
1141 144, 148, 152, 154, 158, 162, 164, 168, 172, 176,
1142 179, 181, 183, 185, 187, 189, 194, 199, 200, 206,
1143 209, 213, 218, 224, 229, 235, 238, 241, 244, 247,
1144 250, 252, 256, 258, 262, 264, 267, 271, 277, 280,
1145 285, 288, 293, 295, 299, 301, 305, 308, 312, 314,
1146 318, 320, 322, 327, 331, 335, 339, 343, 346, 348,
1147 350, 352, 357, 361, 365, 369, 373, 376, 378, 380,
1148 382, 385, 387, 391, 393, 395, 397, 399, 401, 403,
1149 405, 407, 409, 411, 412, 417, 419, 421, 423, 425,
1150 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1151 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1152 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1153 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1154 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1155 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1156 547, 549, 551, 553, 555, 557, 561, 567, 571, 577,
1157 584, 590, 596, 602, 608, 613, 617, 621, 625, 629,
1158 633, 637, 641, 645, 649, 654, 659, 662, 665, 669,
1159 673, 677, 681, 685, 689, 693, 697, 701, 705, 709,
1160 713, 717, 720, 723, 727, 731, 735, 739, 740, 745,
1161 752, 754, 756, 758, 761, 766, 769, 773, 775, 777,
1162 779, 781, 784, 789, 792, 794, 797, 800, 805, 807,
1163 808, 811, 814, 817, 819, 821, 824, 828, 833, 837,
1164 842, 845, 847, 849, 851, 853, 855, 857, 859, 861,
1165 863, 864, 869, 870, 875, 879, 883, 886, 890, 894,
1166 896, 901, 905, 907, 908, 915, 920, 924, 927, 929,
1167 932, 935, 942, 949, 950, 951, 959, 960, 961, 969,
1168 975, 980, 981, 982, 992, 993, 1000, 1001, 1002, 1011,
1169 1012, 1018, 1019, 1026, 1027, 1028, 1038, 1040, 1042, 1044,
1170 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064,
1171 1066, 1068, 1070, 1072, 1074, 1077, 1079, 1081, 1083, 1089,
1172 1091, 1094, 1096, 1098, 1100, 1104, 1106, 1110, 1112, 1117,
1173 1124, 1128, 1134, 1137, 1142, 1144, 1148, 1155, 1164, 1169,
1174 1176, 1181, 1184, 1191, 1194, 1199, 1206, 1209, 1214, 1217,
1175 1222, 1224, 1226, 1228, 1232, 1234, 1239, 1241, 1244, 1246,
1176 1250, 1252, 1254, 1255, 1256, 1261, 1266, 1268, 1272, 1276,
1177 1277, 1283, 1286, 1291, 1296, 1299, 1304, 1309, 1313, 1317,
1178 1321, 1324, 1326, 1331, 1332, 1338, 1339, 1345, 1351, 1353,
1179 1355, 1362, 1364, 1366, 1368, 1370, 1373, 1375, 1378, 1380,
1180 1382, 1384, 1386, 1388, 1390, 1392, 1395, 1399, 1403, 1407,
1181 1411, 1415, 1416, 1420, 1422, 1425, 1429, 1433, 1434, 1438,
1182 1439, 1442, 1443, 1446, 1447, 1450, 1452, 1453, 1457, 1458,
1183 1459, 1465, 1467, 1469, 1471, 1473, 1476, 1478, 1480, 1482,
1184 1484, 1488, 1490, 1492, 1495, 1498, 1500, 1502, 1504, 1506,
1185 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526,
1186 1528, 1530, 1532, 1534, 1536, 1537, 1542, 1545, 1549, 1552,
1187 1559, 1568, 1573, 1580, 1585, 1592, 1595, 1600, 1607, 1610,
1188 1615, 1618, 1623, 1625, 1626, 1628, 1630, 1632, 1634, 1636,
1189 1638, 1640, 1644, 1646, 1650, 1654, 1658, 1660, 1664, 1666,
1190 1670, 1672, 1674, 1677, 1679, 1681, 1683, 1686, 1689, 1691,
1191 1693, 1694, 1699, 1701, 1704, 1706, 1710, 1714, 1717, 1719,
1192 1721, 1723, 1725, 1727, 1729, 1731, 1733, 1735, 1737, 1739,
1193 1741, 1742, 1744, 1745, 1747, 1750, 1753, 1754, 1756, 1758,
1194 1760, 1762, 1764, 1767
1200 149, 0, -1, -1, 150, 151, -1, 152, 314, -1,
1201 321, -1, 153, -1, 152, 320, 153, -1, 1, 153,
1202 -1, 158, -1, -1, 47, 154, 136, 151, 137, -1,
1203 156, 256, 231, 259, -1, 157, 314, -1, 321, -1,
1204 158, -1, 157, 320, 158, -1, 1, 158, -1, -1,
1205 45, 180, 159, 180, -1, 45, 54, 54, -1, 45,
1206 54, 64, -1, 45, 54, 63, -1, 6, 181, -1,
1207 158, 40, 162, -1, 158, 41, 162, -1, 158, 42,
1208 162, -1, 158, 43, 162, -1, 158, 44, 158, -1,
1209 48, 136, 156, 137, -1, 160, -1, 168, 109, 163,
1210 -1, 286, 87, 163, -1, 216, 138, 191, 317, 87,
1211 163, -1, 216, 139, 52, 87, 163, -1, 216, 139,
1212 56, 87, 163, -1, 216, 85, 56, 87, 163, -1,
1213 216, 85, 52, 87, 163, -1, 287, 87, 163, -1,
1214 175, 109, 198, -1, 168, 109, 187, -1, 168, 109,
1215 198, -1, 161, -1, 175, 109, 163, -1, 175, 109,
1216 160, -1, 163, -1, 161, 37, 161, -1, 161, 38,
1217 161, -1, 39, 315, 161, -1, 123, 163, -1, 185,
1218 -1, 161, -1, 167, -1, 164, -1, 249, -1, 249,
1219 139, 311, 193, -1, 249, 85, 311, 193, -1, -1,
1220 94, 166, 237, 156, 137, -1, 310, 193, -1, 310,
1221 193, 165, -1, 216, 139, 311, 193, -1, 216, 139,
1222 311, 193, 165, -1, 216, 85, 311, 193, -1, 216,
1223 85, 311, 193, 165, -1, 32, 193, -1, 31, 193,
1224 -1, 30, 192, -1, 21, 192, -1, 22, 192, -1,
1225 170, -1, 89, 169, 316, -1, 170, -1, 89, 169,
1226 316, -1, 172, -1, 172, 171, -1, 172, 95, 174,
1227 -1, 172, 95, 174, 140, 173, -1, 172, 95, -1,
1228 172, 95, 140, 173, -1, 95, 174, -1, 95, 174,
1229 140, 173, -1, 95, -1, 95, 140, 173, -1, 174,
1230 -1, 89, 169, 316, -1, 171, 140, -1, 172, 171,
1231 140, -1, 171, -1, 173, 140, 171, -1, 283, -1,
1232 284, -1, 216, 138, 191, 317, -1, 216, 139, 52,
1233 -1, 216, 85, 52, -1, 216, 139, 56, -1, 216,
1234 85, 56, -1, 86, 56, -1, 287, -1, 283, -1,
1235 284, -1, 216, 138, 191, 317, -1, 216, 139, 52,
1236 -1, 216, 85, 52, -1, 216, 139, 56, -1, 216,
1237 85, 56, -1, 86, 56, -1, 287, -1, 52, -1,
1238 56, -1, 86, 176, -1, 176, -1, 216, 85, 176,
1239 -1, 52, -1, 56, -1, 53, -1, 183, -1, 184,
1240 -1, 178, -1, 279, -1, 179, -1, 281, -1, 180,
1241 -1, -1, 181, 140, 182, 180, -1, 114, -1, 115,
1242 -1, 116, -1, 69, -1, 70, -1, 71, -1, 77,
1243 -1, 78, -1, 112, -1, 73, -1, 113, -1, 74,
1244 -1, 72, -1, 83, -1, 84, -1, 117, -1, 118,
1245 -1, 119, -1, 95, -1, 120, -1, 121, -1, 68,
1246 -1, 123, -1, 124, -1, 66, -1, 67, -1, 81,
1247 -1, 82, -1, 141, -1, 49, -1, 50, -1, 51,
1248 -1, 47, -1, 48, -1, 45, -1, 37, -1, 7,
1249 -1, 21, -1, 16, -1, 3, -1, 5, -1, 46,
1250 -1, 26, -1, 15, -1, 14, -1, 10, -1, 9,
1251 -1, 36, -1, 20, -1, 25, -1, 4, -1, 22,
1252 -1, 34, -1, 39, -1, 38, -1, 23, -1, 8,
1253 -1, 24, -1, 30, -1, 33, -1, 32, -1, 13,
1254 -1, 35, -1, 6, -1, 17, -1, 31, -1, 11,
1255 -1, 12, -1, 18, -1, 19, -1, 175, 109, 185,
1256 -1, 175, 109, 185, 44, 185, -1, 286, 87, 185,
1257 -1, 286, 87, 185, 44, 185, -1, 216, 138, 191,
1258 317, 87, 185, -1, 216, 139, 52, 87, 185, -1,
1259 216, 139, 56, 87, 185, -1, 216, 85, 52, 87,
1260 185, -1, 216, 85, 56, 87, 185, -1, 86, 56,
1261 87, 185, -1, 287, 87, 185, -1, 185, 79, 185,
1262 -1, 185, 80, 185, -1, 185, 117, 185, -1, 185,
1263 118, 185, -1, 185, 119, 185, -1, 185, 120, 185,
1264 -1, 185, 121, 185, -1, 185, 68, 185, -1, 122,
1265 59, 68, 185, -1, 122, 60, 68, 185, -1, 66,
1266 185, -1, 67, 185, -1, 185, 114, 185, -1, 185,
1267 115, 185, -1, 185, 116, 185, -1, 185, 69, 185,
1268 -1, 185, 112, 185, -1, 185, 73, 185, -1, 185,
1269 113, 185, -1, 185, 74, 185, -1, 185, 70, 185,
1270 -1, 185, 71, 185, -1, 185, 72, 185, -1, 185,
1271 77, 185, -1, 185, 78, 185, -1, 123, 185, -1,
1272 124, 185, -1, 185, 83, 185, -1, 185, 84, 185,
1273 -1, 185, 75, 185, -1, 185, 76, 185, -1, -1,
1274 46, 315, 186, 185, -1, 185, 110, 185, 315, 111,
1275 185, -1, 199, -1, 185, -1, 321, -1, 197, 318,
1276 -1, 197, 140, 308, 318, -1, 308, 318, -1, 142,
1277 191, 316, -1, 321, -1, 189, -1, 321, -1, 192,
1278 -1, 197, 140, -1, 197, 140, 308, 140, -1, 308,
1279 140, -1, 167, -1, 197, 196, -1, 308, 196, -1,
1280 197, 140, 308, 196, -1, 195, -1, -1, 194, 192,
1281 -1, 96, 187, -1, 140, 195, -1, 321, -1, 187,
1282 -1, 95, 187, -1, 197, 140, 187, -1, 197, 140,
1283 95, 187, -1, 197, 140, 187, -1, 197, 140, 95,
1284 187, -1, 95, 187, -1, 260, -1, 261, -1, 264,
1285 -1, 265, -1, 266, -1, 269, -1, 285, -1, 287,
1286 -1, 53, -1, -1, 217, 200, 155, 227, -1, -1,
1287 90, 161, 201, 316, -1, 89, 156, 143, -1, 216,
1288 85, 56, -1, 86, 56, -1, 92, 188, 144, -1,
1289 93, 307, 137, -1, 30, -1, 31, 142, 192, 316,
1290 -1, 31, 142, 316, -1, 31, -1, -1, 46, 315,
1291 142, 202, 161, 316, -1, 39, 142, 161, 316, -1,
1292 39, 142, 316, -1, 310, 251, -1, 250, -1, 250,
1293 251, -1, 97, 242, -1, 218, 162, 228, 156, 230,
1294 227, -1, 219, 162, 228, 156, 231, 227, -1, -1,
1295 -1, 220, 203, 162, 229, 204, 156, 227, -1, -1,
1296 -1, 221, 205, 162, 229, 206, 156, 227, -1, 222,
1297 162, 314, 254, 227, -1, 222, 314, 254, 227, -1,
1298 -1, -1, 223, 232, 25, 207, 162, 229, 208, 156,
1299 227, -1, -1, 224, 177, 288, 209, 155, 227, -1,
1300 -1, -1, 224, 83, 161, 210, 319, 211, 155, 227,
1301 -1, -1, 225, 177, 212, 155, 227, -1, -1, 226,
1302 178, 213, 290, 155, 227, -1, -1, -1, 226, 305,
1303 313, 214, 178, 215, 290, 155, 227, -1, 21, -1,
1304 22, -1, 23, -1, 24, -1, 199, -1, 7, -1,
1305 11, -1, 12, -1, 18, -1, 19, -1, 16, -1,
1306 20, -1, 3, -1, 4, -1, 5, -1, 10, -1,
1307 319, -1, 13, -1, 319, 13, -1, 319, -1, 27,
1308 -1, 231, -1, 14, 162, 228, 156, 230, -1, 321,
1309 -1, 15, 156, -1, 175, -1, 168, -1, 293, -1,
1310 89, 235, 316, -1, 233, -1, 234, 140, 233, -1,
1311 234, -1, 234, 140, 95, 293, -1, 234, 140, 95,
1312 293, 140, 234, -1, 234, 140, 95, -1, 234, 140,
1313 95, 140, 234, -1, 95, 293, -1, 95, 293, 140,
1314 234, -1, 95, -1, 95, 140, 234, -1, 295, 140,
1315 298, 140, 301, 304, -1, 295, 140, 298, 140, 301,
1316 140, 295, 304, -1, 295, 140, 298, 304, -1, 295,
1317 140, 298, 140, 295, 304, -1, 295, 140, 301, 304,
1318 -1, 295, 140, -1, 295, 140, 301, 140, 295, 304,
1319 -1, 295, 304, -1, 298, 140, 301, 304, -1, 298,
1320 140, 301, 140, 295, 304, -1, 298, 304, -1, 298,
1321 140, 295, 304, -1, 301, 304, -1, 301, 140, 295,
1322 304, -1, 303, -1, 321, -1, 238, -1, 114, 239,
1323 114, -1, 76, -1, 114, 236, 239, 114, -1, 321,
1324 -1, 145, 240, -1, 241, -1, 240, 140, 241, -1,
1325 52, -1, 292, -1, -1, -1, 243, 244, 245, 246,
1326 -1, 142, 291, 239, 316, -1, 291, -1, 107, 156,
1327 137, -1, 29, 156, 10, -1, -1, 28, 248, 237,
1328 156, 10, -1, 167, 247, -1, 249, 139, 311, 190,
1329 -1, 249, 85, 311, 190, -1, 310, 189, -1, 216,
1330 139, 311, 190, -1, 216, 85, 311, 189, -1, 216,
1331 85, 312, -1, 216, 139, 189, -1, 216, 85, 189,
1332 -1, 32, 189, -1, 32, -1, 216, 138, 191, 317,
1333 -1, -1, 136, 252, 237, 156, 137, -1, -1, 26,
1334 253, 237, 156, 10, -1, 17, 197, 228, 156, 255,
1335 -1, 231, -1, 254, -1, 8, 257, 258, 228, 156,
1336 256, -1, 321, -1, 187, -1, 198, -1, 321, -1,
1337 88, 175, -1, 321, -1, 9, 156, -1, 321, -1,
1338 282, -1, 279, -1, 281, -1, 262, -1, 62, -1,
1339 263, -1, 262, 263, -1, 99, 271, 106, -1, 100,
1340 272, 106, -1, 101, 273, 65, -1, 102, 146, 106,
1341 -1, 102, 267, 106, -1, -1, 267, 268, 146, -1,
1342 274, -1, 268, 274, -1, 103, 146, 106, -1, 103,
1343 270, 106, -1, -1, 270, 61, 146, -1, -1, 271,
1344 274, -1, -1, 272, 274, -1, -1, 273, 274, -1,
1345 61, -1, -1, 105, 275, 278, -1, -1, -1, 104,
1346 276, 277, 156, 137, -1, 54, -1, 55, -1, 57,
1347 -1, 287, -1, 98, 280, -1, 178, -1, 55, -1,
1348 54, -1, 57, -1, 98, 272, 106, -1, 59, -1,
1349 60, -1, 122, 59, -1, 122, 60, -1, 52, -1,
1350 55, -1, 54, -1, 56, -1, 57, -1, 34, -1,
1351 33, -1, 35, -1, 36, -1, 50, -1, 49, -1,
1352 51, -1, 283, -1, 284, -1, 283, -1, 284, -1,
1353 63, -1, 64, -1, 319, -1, -1, 113, 289, 162,
1354 319, -1, 1, 319, -1, 142, 291, 316, -1, 291,
1355 319, -1, 295, 140, 299, 140, 301, 304, -1, 295,
1356 140, 299, 140, 301, 140, 295, 304, -1, 295, 140,
1357 299, 304, -1, 295, 140, 299, 140, 295, 304, -1,
1358 295, 140, 301, 304, -1, 295, 140, 301, 140, 295,
1359 304, -1, 295, 304, -1, 299, 140, 301, 304, -1,
1360 299, 140, 301, 140, 295, 304, -1, 299, 304, -1,
1361 299, 140, 295, 304, -1, 301, 304, -1, 301, 140,
1362 295, 304, -1, 303, -1, -1, 56, -1, 55, -1,
1363 54, -1, 57, -1, 292, -1, 52, -1, 293, -1,
1364 89, 235, 316, -1, 294, -1, 295, 140, 294, -1,
1365 52, 109, 187, -1, 52, 109, 216, -1, 297, -1,
1366 298, 140, 297, -1, 296, -1, 299, 140, 296, -1,
1367 119, -1, 95, -1, 300, 52, -1, 300, -1, 116,
1368 -1, 96, -1, 302, 52, -1, 140, 303, -1, 321,
1369 -1, 285, -1, -1, 142, 306, 161, 316, -1, 321,
1370 -1, 308, 318, -1, 309, -1, 308, 140, 309, -1,
1371 187, 88, 187, -1, 58, 187, -1, 52, -1, 56,
1372 -1, 53, -1, 52, -1, 56, -1, 53, -1, 183,
1373 -1, 52, -1, 53, -1, 183, -1, 139, -1, 85,
1374 -1, -1, 320, -1, -1, 147, -1, 315, 143, -1,
1375 315, 144, -1, -1, 147, -1, 140, -1, 145, -1,
1376 147, -1, 319, -1, 320, 145, -1, -1
1382 0, 785, 785, 785, 816, 827, 836, 844, 852, 858,
1383 860, 859, 883, 916, 927, 936, 944, 952, 958, 958,
1384 966, 974, 985, 995, 1003, 1012, 1021, 1034, 1047, 1056,
1385 1068, 1069, 1079, 1108, 1129, 1146, 1163, 1174, 1191, 1201,
1386 1210, 1219, 1228, 1231, 1240, 1252, 1253, 1261, 1269, 1277,
1387 1285, 1288, 1300, 1301, 1304, 1305, 1314, 1326, 1325, 1347,
1388 1356, 1368, 1377, 1389, 1398, 1410, 1419, 1428, 1436, 1444,
1389 1454, 1455, 1465, 1466, 1476, 1484, 1492, 1500, 1509, 1517,
1390 1526, 1534, 1543, 1551, 1562, 1563, 1573, 1581, 1591, 1599,
1391 1609, 1613, 1617, 1625, 1633, 1641, 1649, 1661, 1671, 1683,
1392 1692, 1701, 1709, 1717, 1725, 1733, 1746, 1759, 1770, 1778,
1393 1781, 1789, 1797, 1807, 1808, 1809, 1810, 1815, 1826, 1827,
1394 1830, 1838, 1841, 1849, 1849, 1859, 1860, 1861, 1862, 1863,
1395 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873,
1396 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883,
1397 1884, 1885, 1886, 1887, 1890, 1890, 1890, 1891, 1891, 1892,
1398 1892, 1892, 1893, 1893, 1893, 1893, 1894, 1894, 1894, 1894,
1399 1895, 1895, 1895, 1896, 1896, 1896, 1896, 1897, 1897, 1897,
1400 1897, 1898, 1898, 1898, 1898, 1899, 1899, 1899, 1899, 1900,
1401 1900, 1900, 1900, 1901, 1901, 1904, 1913, 1923, 1952, 1983,
1402 2009, 2026, 2043, 2060, 2071, 2082, 2093, 2107, 2121, 2129,
1403 2137, 2145, 2153, 2161, 2169, 2178, 2187, 2195, 2203, 2211,
1404 2219, 2227, 2235, 2243, 2251, 2259, 2267, 2275, 2283, 2291,
1405 2302, 2310, 2318, 2326, 2334, 2342, 2350, 2358, 2358, 2368,
1406 2378, 2384, 2396, 2397, 2401, 2409, 2419, 2429, 2430, 2433,
1407 2434, 2435, 2439, 2447, 2457, 2466, 2474, 2484, 2493, 2502,
1408 2502, 2514, 2524, 2528, 2534, 2542, 2550, 2564, 2580, 2594,
1409 2609, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627,
1410 2636, 2635, 2660, 2660, 2669, 2677, 2685, 2693, 2706, 2714,
1411 2722, 2730, 2738, 2746, 2746, 2756, 2764, 2772, 2783, 2784,
1412 2795, 2799, 2811, 2823, 2823, 2823, 2834, 2834, 2834, 2845,
1413 2856, 2865, 2867, 2864, 2931, 2930, 2952, 2957, 2951, 2976,
1414 2975, 2997, 2996, 3019, 3020, 3019, 3040, 3048, 3056, 3064,
1415 3074, 3086, 3092, 3098, 3104, 3110, 3116, 3122, 3128, 3134,
1416 3140, 3150, 3156, 3161, 3162, 3169, 3174, 3177, 3178, 3191,
1417 3192, 3202, 3203, 3206, 3214, 3224, 3232, 3242, 3250, 3259,
1418 3268, 3276, 3284, 3293, 3305, 3313, 3323, 3331, 3339, 3347,
1419 3355, 3363, 3372, 3380, 3388, 3396, 3404, 3412, 3420, 3428,
1420 3436, 3446, 3447, 3453, 3462, 3471, 3482, 3483, 3493, 3500,
1421 3509, 3517, 3523, 3526, 3523, 3544, 3552, 3562, 3566, 3573,
1422 3572, 3593, 3609, 3618, 3629, 3638, 3648, 3658, 3666, 3677,
1423 3688, 3696, 3704, 3719, 3718, 3738, 3737, 3758, 3770, 3771,
1424 3774, 3793, 3796, 3804, 3812, 3815, 3819, 3822, 3830, 3833,
1425 3834, 3842, 3845, 3862, 3863, 3864, 3874, 3884, 3911, 3976,
1426 3985, 3996, 4003, 4013, 4021, 4031, 4040, 4051, 4058, 4069,
1427 4076, 4087, 4094, 4105, 4112, 4141, 4143, 4142, 4159, 4165,
1428 4158, 4184, 4192, 4200, 4208, 4211, 4222, 4223, 4224, 4225,
1429 4228, 4258, 4259, 4260, 4268, 4278, 4279, 4280, 4281, 4282,
1430 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4294, 4307, 4317,
1431 4325, 4335, 4336, 4339, 4348, 4347, 4355, 4367, 4377, 4385,
1432 4393, 4401, 4409, 4417, 4425, 4433, 4441, 4449, 4457, 4465,
1433 4473, 4481, 4489, 4498, 4507, 4516, 4525, 4534, 4545, 4546,
1434 4553, 4562, 4581, 4588, 4601, 4613, 4625, 4633, 4649, 4657,
1435 4673, 4674, 4677, 4690, 4701, 4702, 4705, 4722, 4726, 4736,
1436 4746, 4746, 4775, 4776, 4786, 4793, 4803, 4811, 4821, 4822,
1437 4823, 4826, 4827, 4828, 4829, 4832, 4833, 4834, 4837, 4842,
1438 4849, 4850, 4853, 4854, 4857, 4860, 4863, 4864, 4865, 4868,
1439 4869, 4872, 4873, 4877
1443 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1448 "$end",
"error",
"$undefined",
"keyword_class",
"keyword_module",
1449 "keyword_def",
"keyword_undef",
"keyword_begin",
"keyword_rescue",
1450 "keyword_ensure",
"keyword_end",
"keyword_if",
"keyword_unless",
1451 "keyword_then",
"keyword_elsif",
"keyword_else",
"keyword_case",
1452 "keyword_when",
"keyword_while",
"keyword_until",
"keyword_for",
1453 "keyword_break",
"keyword_next",
"keyword_redo",
"keyword_retry",
1454 "keyword_in",
"keyword_do",
"keyword_do_cond",
"keyword_do_block",
1455 "keyword_do_LAMBDA",
"keyword_return",
"keyword_yield",
"keyword_super",
1456 "keyword_self",
"keyword_nil",
"keyword_true",
"keyword_false",
1457 "keyword_and",
"keyword_or",
"keyword_not",
"modifier_if",
1458 "modifier_unless",
"modifier_while",
"modifier_until",
"modifier_rescue",
1459 "keyword_alias",
"keyword_defined",
"keyword_BEGIN",
"keyword_END",
1460 "keyword__LINE__",
"keyword__FILE__",
"keyword__ENCODING__",
1461 "tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
"tCONSTANT",
"tCVAR",
"tLABEL",
1462 "tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
"tCHAR",
"tNTH_REF",
1463 "tBACK_REF",
"tREGEXP_END",
"tUPLUS",
"tUMINUS",
"tPOW",
"tCMP",
"tEQ",
1464 "tEQQ",
"tNEQ",
"tGEQ",
"tLEQ",
"tANDOP",
"tOROP",
"tMATCH",
"tNMATCH",
1465 "tDOT2",
"tDOT3",
"tAREF",
"tASET",
"tLSHFT",
"tRSHFT",
"tCOLON2",
1466 "tCOLON3",
"tOP_ASGN",
"tASSOC",
"tLPAREN",
"tLPAREN_ARG",
"tRPAREN",
1467 "tLBRACK",
"tLBRACE",
"tLBRACE_ARG",
"tSTAR",
"tAMPER",
"tLAMBDA",
1468 "tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
"tWORDS_BEG",
1469 "tQWORDS_BEG",
"tSTRING_DBEG",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1470 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1471 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"idNULL",
1472 "idRespond_to",
"idIFUNC",
"idCFUNC",
"id_core_set_method_alias",
1473 "id_core_set_variable_alias",
"id_core_undef_method",
1474 "id_core_define_method",
"id_core_define_singleton_method",
1475 "id_core_set_postexe",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"'.'",
"','",
1476 "'`'",
"'('",
"')'",
"']'",
"';'",
"' '",
"'\\n'",
"$accept",
"program",
1477 "$@1",
"top_compstmt",
"top_stmts",
"top_stmt",
"$@2",
"bodystmt",
1478 "compstmt",
"stmts",
"stmt",
"$@3",
"command_asgn",
"expr",
"expr_value",
1479 "command_call",
"block_command",
"cmd_brace_block",
"@4",
"command",
1480 "mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
1481 "mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
1482 "fitem",
"undef_list",
"$@5",
"op",
"reswords",
"arg",
"$@6",
1483 "arg_value",
"aref_args",
"paren_args",
"opt_paren_args",
1484 "opt_call_args",
"call_args",
"command_args",
"@7",
"block_arg",
1485 "opt_block_arg",
"args",
"mrhs",
"primary",
"@8",
"$@9",
"$@10",
"$@11",
1486 "$@12",
"$@13",
"$@14",
"$@15",
"$@16",
"@17",
"@18",
"@19",
"@20",
1487 "@21",
"$@22",
"$@23",
"primary_value",
"k_begin",
"k_if",
"k_unless",
1488 "k_while",
"k_until",
"k_case",
"k_for",
"k_class",
"k_module",
"k_def",
1489 "k_end",
"then",
"do",
"if_tail",
"opt_else",
"for_var",
"f_marg",
1490 "f_marg_list",
"f_margs",
"block_param",
"opt_block_param",
1491 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@24",
1492 "@25",
"f_larglist",
"lambda_body",
"do_block",
"@26",
"block_call",
1493 "method_call",
"brace_block",
"@27",
"@28",
"case_body",
"cases",
1494 "opt_rescue",
"exc_list",
"exc_var",
"opt_ensure",
"literal",
"strings",
1495 "string",
"string1",
"xstring",
"regexp",
"words",
"word_list",
"word",
1496 "qwords",
"qword_list",
"string_contents",
"xstring_contents",
1497 "regexp_contents",
"string_content",
"@29",
"@30",
"@31",
"string_dvar",
1498 "symbol",
"sym",
"dsym",
"numeric",
"user_variable",
"keyword_variable",
1499 "var_ref",
"var_lhs",
"backref",
"superclass",
"$@32",
"f_arglist",
1500 "f_args",
"f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_opt",
1501 "f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1502 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1503 "singleton",
"$@33",
"assoc_list",
"assocs",
"assoc",
"operation",
1504 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1505 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1514 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1515 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1516 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1517 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1518 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1519 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1520 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1521 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1522 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1523 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1524 355, 356, 357, 358, 359, 360, 361, 362, 363, 61,
1525 63, 58, 62, 60, 124, 94, 38, 43, 45, 42,
1526 47, 37, 364, 33, 126, 365, 366, 367, 368, 369,
1527 370, 371, 372, 373, 374, 375, 123, 125, 91, 46,
1528 44, 96, 40, 41, 93, 59, 32, 10
1535 0, 148, 150, 149, 151, 152, 152, 152, 152, 153,
1536 154, 153, 155, 156, 157, 157, 157, 157, 159, 158,
1537 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1538 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1539 158, 158, 158, 160, 160, 161, 161, 161, 161, 161,
1540 161, 162, 163, 163, 164, 164, 164, 166, 165, 167,
1541 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
1542 168, 168, 169, 169, 170, 170, 170, 170, 170, 170,
1543 170, 170, 170, 170, 171, 171, 172, 172, 173, 173,
1544 174, 174, 174, 174, 174, 174, 174, 174, 174, 175,
1545 175, 175, 175, 175, 175, 175, 175, 175, 176, 176,
1546 177, 177, 177, 178, 178, 178, 178, 178, 179, 179,
1547 180, 180, 181, 182, 181, 183, 183, 183, 183, 183,
1548 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1549 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1550 183, 183, 183, 183, 184, 184, 184, 184, 184, 184,
1551 184, 184, 184, 184, 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, 185, 185, 185, 185, 185,
1555 185, 185, 185, 185, 185, 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, 186, 185, 185,
1559 185, 187, 188, 188, 188, 188, 189, 190, 190, 191,
1560 191, 191, 191, 191, 192, 192, 192, 192, 192, 194,
1561 193, 195, 196, 196, 197, 197, 197, 197, 198, 198,
1562 198, 199, 199, 199, 199, 199, 199, 199, 199, 199,
1563 200, 199, 201, 199, 199, 199, 199, 199, 199, 199,
1564 199, 199, 199, 202, 199, 199, 199, 199, 199, 199,
1565 199, 199, 199, 203, 204, 199, 205, 206, 199, 199,
1566 199, 207, 208, 199, 209, 199, 210, 211, 199, 212,
1567 199, 213, 199, 214, 215, 199, 199, 199, 199, 199,
1568 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1569 226, 227, 228, 228, 228, 229, 229, 230, 230, 231,
1570 231, 232, 232, 233, 233, 234, 234, 235, 235, 235,
1571 235, 235, 235, 235, 235, 235, 236, 236, 236, 236,
1572 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1573 236, 237, 237, 238, 238, 238, 239, 239, 240, 240,
1574 241, 241, 243, 244, 242, 245, 245, 246, 246, 248,
1575 247, 249, 249, 249, 250, 250, 250, 250, 250, 250,
1576 250, 250, 250, 252, 251, 253, 251, 254, 255, 255,
1577 256, 256, 257, 257, 257, 258, 258, 259, 259, 260,
1578 260, 260, 261, 262, 262, 262, 263, 264, 265, 266,
1579 266, 267, 267, 268, 268, 269, 269, 270, 270, 271,
1580 271, 272, 272, 273, 273, 274, 275, 274, 276, 277,
1581 274, 278, 278, 278, 278, 279, 280, 280, 280, 280,
1582 281, 282, 282, 282, 282, 283, 283, 283, 283, 283,
1583 284, 284, 284, 284, 284, 284, 284, 285, 285, 286,
1584 286, 287, 287, 288, 289, 288, 288, 290, 290, 291,
1585 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
1586 291, 291, 291, 291, 292, 292, 292, 292, 293, 293,
1587 294, 294, 295, 295, 296, 297, 298, 298, 299, 299,
1588 300, 300, 301, 301, 302, 302, 303, 304, 304, 305,
1589 306, 305, 307, 307, 308, 308, 309, 309, 310, 310,
1590 310, 311, 311, 311, 311, 312, 312, 312, 313, 313,
1591 314, 314, 315, 315, 316, 317, 318, 318, 318, 319,
1598 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1599 0, 5, 4, 2, 1, 1, 3, 2, 0, 4,
1600 3, 3, 3, 2, 3, 3, 3, 3, 3, 4,
1601 1, 3, 3, 6, 5, 5, 5, 5, 3, 3,
1602 3, 3, 1, 3, 3, 1, 3, 3, 3, 2,
1603 1, 1, 1, 1, 1, 4, 4, 0, 5, 2,
1604 3, 4, 5, 4, 5, 2, 2, 2, 2, 2,
1605 1, 3, 1, 3, 1, 2, 3, 5, 2, 4,
1606 2, 4, 1, 3, 1, 3, 2, 3, 1, 3,
1607 1, 1, 4, 3, 3, 3, 3, 2, 1, 1,
1608 1, 4, 3, 3, 3, 3, 2, 1, 1, 1,
1609 2, 1, 3, 1, 1, 1, 1, 1, 1, 1,
1610 1, 1, 1, 0, 4, 1, 1, 1, 1, 1,
1611 1, 1, 1, 1, 1, 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, 3, 5, 3, 5, 6,
1618 5, 5, 5, 5, 4, 3, 3, 3, 3, 3,
1619 3, 3, 3, 3, 4, 4, 2, 2, 3, 3,
1620 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1621 3, 2, 2, 3, 3, 3, 3, 0, 4, 6,
1622 1, 1, 1, 2, 4, 2, 3, 1, 1, 1,
1623 1, 2, 4, 2, 1, 2, 2, 4, 1, 0,
1624 2, 2, 2, 1, 1, 2, 3, 4, 3, 4,
1625 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1626 0, 4, 0, 4, 3, 3, 2, 3, 3, 1,
1627 4, 3, 1, 0, 6, 4, 3, 2, 1, 2,
1628 2, 6, 6, 0, 0, 7, 0, 0, 7, 5,
1629 4, 0, 0, 9, 0, 6, 0, 0, 8, 0,
1630 5, 0, 6, 0, 0, 9, 1, 1, 1, 1,
1631 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1632 1, 1, 1, 1, 2, 1, 1, 1, 5, 1,
1633 2, 1, 1, 1, 3, 1, 3, 1, 4, 6,
1634 3, 5, 2, 4, 1, 3, 6, 8, 4, 6,
1635 4, 2, 6, 2, 4, 6, 2, 4, 2, 4,
1636 1, 1, 1, 3, 1, 4, 1, 2, 1, 3,
1637 1, 1, 0, 0, 4, 4, 1, 3, 3, 0,
1638 5, 2, 4, 4, 2, 4, 4, 3, 3, 3,
1639 2, 1, 4, 0, 5, 0, 5, 5, 1, 1,
1640 6, 1, 1, 1, 1, 2, 1, 2, 1, 1,
1641 1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
1642 3, 0, 3, 1, 2, 3, 3, 0, 3, 0,
1643 2, 0, 2, 0, 2, 1, 0, 3, 0, 0,
1644 5, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1645 3, 1, 1, 2, 2, 1, 1, 1, 1, 1,
1646 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1647 1, 1, 1, 1, 0, 4, 2, 3, 2, 6,
1648 8, 4, 6, 4, 6, 2, 4, 6, 2, 4,
1649 2, 4, 1, 0, 1, 1, 1, 1, 1, 1,
1650 1, 3, 1, 3, 3, 3, 1, 3, 1, 3,
1651 1, 1, 2, 1, 1, 1, 2, 2, 1, 1,
1652 0, 4, 1, 2, 1, 3, 3, 2, 1, 1,
1653 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1654 0, 1, 0, 1, 2, 2, 0, 1, 1, 1,
1663 2, 0, 0, 1, 0, 338, 339, 340, 0, 331,
1664 332, 333, 336, 334, 335, 337, 326, 327, 328, 329,
1665 289, 259, 259, 481, 480, 482, 483, 562, 0, 562,
1666 10, 0, 485, 484, 486, 475, 550, 477, 476, 478,
1667 479, 471, 472, 433, 491, 492, 0, 0, 0, 0,
1668 0, 573, 573, 82, 392, 451, 449, 451, 453, 441,
1669 447, 0, 0, 0, 3, 560, 6, 9, 30, 42,
1670 45, 53, 52, 0, 70, 0, 74, 84, 0, 50,
1671 240, 0, 280, 0, 0, 303, 306, 560, 0, 0,
1672 0, 0, 54, 298, 271, 272, 432, 434, 273, 274,
1673 275, 276, 430, 431, 429, 487, 488, 277, 0, 278,
1674 259, 5, 8, 164, 175, 165, 188, 161, 181, 171,
1675 170, 191, 192, 186, 169, 168, 163, 189, 193, 194,
1676 173, 162, 176, 180, 182, 174, 167, 183, 190, 185,
1677 184, 177, 187, 172, 160, 179, 178, 159, 166, 157,
1678 158, 154, 155, 156, 113, 115, 114, 149, 150, 146,
1679 128, 129, 130, 137, 134, 136, 131, 132, 151, 152,
1680 138, 139, 143, 133, 135, 125, 126, 127, 140, 141,
1681 142, 144, 145, 147, 148, 153, 118, 120, 122, 23,
1682 116, 117, 119, 121, 0, 0, 0, 0, 0, 0,
1683 0, 254, 0, 241, 264, 68, 258, 573, 0, 487,
1684 488, 0, 278, 573, 544, 69, 67, 562, 66, 0,
1685 573, 410, 65, 562, 563, 0, 0, 18, 237, 0,
1686 0, 326, 327, 289, 292, 411, 216, 0, 0, 217,
1687 286, 0, 0, 0, 560, 15, 562, 72, 14, 282,
1688 0, 566, 566, 242, 0, 0, 566, 542, 562, 0,
1689 0, 0, 80, 330, 0, 90, 91, 98, 300, 393,
1690 468, 467, 469, 466, 0, 465, 0, 0, 0, 0,
1691 0, 0, 0, 473, 474, 49, 231, 232, 569, 570,
1692 4, 571, 561, 0, 0, 0, 0, 0, 0, 0,
1693 399, 401, 0, 86, 0, 78, 75, 0, 0, 0,
1694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696 0, 0, 0, 0, 0, 573, 0, 0, 51, 0,
1697 0, 0, 0, 560, 0, 561, 0, 352, 351, 0,
1698 0, 487, 488, 278, 108, 109, 0, 0, 111, 0,
1699 0, 487, 488, 278, 319, 184, 177, 187, 172, 154,
1700 155, 156, 113, 114, 540, 321, 539, 0, 0, 0,
1701 415, 413, 299, 435, 0, 0, 404, 59, 297, 123,
1702 547, 286, 265, 261, 0, 0, 0, 255, 263, 0,
1703 573, 0, 0, 0, 0, 256, 562, 0, 291, 260,
1704 562, 250, 573, 573, 249, 562, 296, 48, 20, 22,
1705 21, 0, 293, 0, 0, 0, 0, 0, 0, 17,
1706 562, 284, 13, 561, 71, 562, 287, 568, 567, 243,
1707 568, 245, 288, 543, 0, 97, 473, 474, 88, 83,
1708 0, 0, 573, 0, 513, 455, 458, 456, 470, 452,
1709 436, 450, 437, 438, 454, 439, 440, 0, 443, 445,
1710 0, 446, 0, 0, 572, 7, 24, 25, 26, 27,
1711 28, 46, 47, 573, 0, 31, 40, 0, 41, 562,
1712 0, 76, 87, 44, 43, 0, 195, 264, 39, 213,
1713 221, 226, 227, 228, 223, 225, 235, 236, 229, 230,
1714 206, 207, 233, 234, 562, 222, 224, 218, 219, 220,
1715 208, 209, 210, 211, 212, 551, 556, 552, 557, 409,
1716 259, 407, 562, 551, 553, 552, 554, 408, 259, 0,
1717 573, 343, 0, 342, 0, 0, 0, 0, 0, 0,
1718 286, 0, 573, 0, 311, 316, 108, 109, 110, 0,
1719 494, 314, 493, 0, 573, 0, 0, 0, 513, 559,
1720 558, 323, 551, 552, 259, 259, 573, 573, 32, 197,
1721 38, 205, 57, 60, 0, 195, 546, 0, 266, 262,
1722 573, 555, 552, 562, 551, 552, 545, 290, 564, 246,
1723 251, 253, 295, 19, 0, 238, 0, 29, 0, 573,
1724 204, 73, 16, 283, 566, 0, 81, 94, 96, 562,
1725 551, 552, 519, 516, 515, 514, 517, 0, 531, 535,
1726 534, 530, 513, 0, 396, 518, 520, 522, 573, 528,
1727 573, 533, 573, 0, 512, 459, 0, 442, 444, 448,
1728 214, 215, 384, 573, 0, 382, 381, 270, 0, 85,
1729 79, 0, 0, 0, 0, 0, 0, 406, 63, 0,
1730 412, 0, 0, 248, 405, 61, 247, 341, 281, 573,
1731 573, 421, 573, 344, 573, 346, 304, 345, 307, 0,
1732 0, 310, 555, 285, 562, 551, 552, 0, 0, 496,
1733 0, 0, 108, 109, 112, 562, 0, 562, 513, 0,
1734 0, 0, 403, 56, 402, 55, 0, 0, 0, 573,
1735 124, 267, 257, 0, 0, 412, 0, 0, 573, 562,
1736 11, 244, 89, 92, 0, 519, 0, 364, 355, 357,
1737 562, 353, 573, 0, 0, 394, 0, 505, 538, 0,
1738 508, 532, 0, 510, 536, 0, 461, 462, 463, 457,
1739 464, 519, 0, 573, 0, 573, 526, 573, 573, 380,
1740 386, 0, 0, 268, 77, 196, 0, 37, 202, 36,
1741 203, 64, 565, 0, 34, 200, 35, 201, 62, 422,
1742 423, 573, 424, 0, 573, 349, 0, 0, 347, 0,
1743 0, 0, 309, 0, 0, 412, 0, 317, 0, 0,
1744 412, 320, 541, 562, 0, 498, 324, 0, 0, 198,
1745 0, 0, 252, 294, 524, 562, 0, 362, 0, 521,
1746 562, 0, 0, 523, 573, 573, 537, 573, 529, 573,
1747 573, 0, 0, 390, 387, 388, 391, 0, 383, 371,
1748 373, 0, 376, 0, 378, 400, 269, 239, 33, 199,
1749 0, 0, 426, 350, 0, 12, 428, 0, 301, 302,
1750 0, 0, 266, 573, 312, 0, 495, 315, 497, 322,
1751 513, 416, 414, 0, 354, 365, 0, 360, 356, 395,
1752 398, 397, 0, 501, 0, 503, 0, 509, 0, 506,
1753 511, 460, 0, 525, 0, 385, 573, 573, 573, 527,
1754 573, 573, 0, 425, 0, 99, 100, 107, 0, 427,
1755 0, 305, 308, 418, 419, 417, 0, 0, 0, 58,
1756 0, 363, 0, 358, 573, 573, 573, 573, 286, 0,
1757 389, 0, 368, 0, 370, 377, 0, 374, 379, 106,
1758 0, 573, 0, 573, 573, 0, 318, 0, 361, 0,
1759 502, 0, 499, 504, 507, 555, 285, 573, 573, 573,
1760 573, 555, 105, 562, 551, 552, 420, 348, 313, 325,
1761 359, 573, 369, 0, 366, 372, 375, 412, 500, 573,
1768 -1, 1, 2, 64, 65, 66, 229, 539, 540, 244,
1769 245, 421, 68, 69, 339, 70, 71, 583, 719, 72,
1770 73, 246, 74, 75, 76, 449, 77, 202, 358, 359,
1771 186, 187, 188, 189, 584, 536, 191, 79, 423, 204,
1772 250, 529, 674, 410, 411, 218, 219, 206, 397, 412,
1773 488, 80, 337, 435, 604, 341, 800, 342, 801, 697,
1774 926, 701, 698, 875, 566, 568, 711, 880, 237, 82,
1775 83, 84, 85, 86, 87, 88, 89, 90, 91, 678,
1776 542, 686, 797, 798, 350, 738, 739, 740, 763, 654,
1777 655, 764, 844, 845, 268, 269, 454, 633, 745, 301,
1778 483, 92, 93, 388, 577, 576, 549, 925, 680, 791,
1779 861, 865, 94, 95, 96, 97, 98, 99, 100, 280,
1780 467, 101, 282, 276, 274, 278, 459, 646, 645, 755,
1781 759, 102, 275, 103, 104, 209, 210, 107, 211, 212,
1782 561, 700, 709, 710, 635, 636, 637, 638, 639, 766,
1783 767, 640, 641, 642, 643, 836, 747, 377, 567, 255,
1784 413, 214, 238, 608, 531, 571, 290, 407, 408, 670,
1790 #define YYPACT_NINF -747
1793 -747, 81, 2552, -747, 7102, -747, -747, -747, 6615, -747,
1794 -747, -747, -747, -747, -747, -747, 7320, 7320, -747, -747,
1795 7320, 3237, 2814, -747, -747, -747, -747, 100, 6476, -31,
1796 -747, -26, -747, -747, -747, 5715, 2955, -747, -747, 5842,
1797 -747, -747, -747, -747, -747, -747, 8519, 8519, 83, 4434,
1798 8628, 7538, 7865, 6878, -747, 6337, -747, -747, -747, -24,
1799 29, 252, 8737, 8519, -747, 193, -747, 1104, -747, 458,
1800 -747, -747, 129, 77, -747, 69, 8846, -747, 139, 2797,
1801 22, 41, -747, 8628, 8628, -747, -747, 5078, 8951, 9056,
1802 9161, 5588, 33, 46, -747, -747, 157, -747, -747, -747,
1803 -747, -747, -747, -747, -747, 25, 58, -747, 179, 613,
1804 51, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1805 -747, -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, 134,
1812 -747, -747, -747, -747, 182, 8519, 279, 4564, 8519, 8519,
1813 8519, -747, 263, 2797, 260, -747, -747, 237, 207, 43,
1814 206, 298, 254, 265, -747, -747, -747, 4969, -747, 7320,
1815 7320, -747, -747, 5208, -747, 8628, 661, -747, 272, 287,
1816 4694, -747, -747, -747, 295, 307, -747, 304, 51, 416,
1817 619, 7211, 4434, 384, 193, 1104, -31, 399, -747, 458,
1818 419, 221, 300, -747, 260, 430, 300, -747, -31, 497,
1819 501, 9266, 442, -747, 351, 366, 383, 409, -747, -747,
1820 -747, -747, -747, -747, 644, -747, 754, 813, 605, 464,
1821 819, 478, 68, 530, 532, -747, -747, -747, -747, -747,
1822 -747, -747, 5317, 8628, 8628, 8628, 8628, 7211, 8628, 8628,
1823 -747, -747, 7974, -747, 4434, 6990, 470, 7974, 8519, 8519,
1824 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519,
1825 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519,
1826 8519, 8519, 8519, 8519, 9548, 7320, 9625, 3609, 458, 86,
1827 86, 8628, 8628, 193, 597, 480, 562, -747, -747, 454,
1828 601, 54, 76, 99, 331, 349, 8628, 481, -747, 45,
1829 473, -747, -747, -747, -747, 217, 286, 305, 318, 321,
1830 347, 363, 376, 381, -747, -747, -747, 391, 10549, 10549,
1831 -747, -747, -747, -747, 8737, 8737, -747, 535, -747, -747,
1832 -747, 388, -747, -747, 8519, 8519, 7429, -747, -747, 9702,
1833 7320, 9779, 8519, 8519, 7647, -747, -31, 492, -747, -747,
1834 -31, -747, 506, 539, -747, 106, -747, -747, -747, -747,
1835 -747, 6615, -747, 8519, 4029, 508, 9702, 9779, 8519, 1104,
1836 -31, -747, -747, 5445, 541, -31, -747, 7756, -747, -747,
1837 7865, -747, -747, -747, 272, 510, -747, -747, -747, 543,
1838 9266, 9856, 7320, 9933, 774, -747, -747, -747, -747, -747,
1839 -747, -747, -747, -747, -747, -747, -747, 313, -747, -747,
1840 491, -747, 8519, 8519, -747, -747, -747, -747, -747, -747,
1841 -747, -747, -747, 32, 8519, -747, 545, 546, -747, -31,
1842 9266, 551, -747, -747, -747, 566, 9473, -747, -747, 416,
1843 2184, 2184, 2184, 2184, 781, 781, 2273, 2938, 2184, 2184,
1844 1364, 1364, 662, 662, 2656, 781, 781, 927, 927, 768,
1845 397, 397, 416, 416, 416, 3378, 6083, 3464, 6197, -747,
1846 307, -747, -31, 647, -747, 660, -747, -747, 3096, 650,
1847 688, -747, 3754, 685, 4174, 56, 56, 597, 8083, 650,
1848 112, 10010, 7320, 10087, -747, 458, -747, 510, -747, 193,
1849 -747, -747, -747, 10164, 7320, 10241, 3609, 8628, 1131, -747,
1850 -747, -747, -747, -747, 1739, 1739, 32, 32, -747, 10608,
1851 -747, 2797, -747, -747, 6615, 10627, -747, 8519, 260, -747,
1852 265, 5969, 2673, -31, 490, 500, -747, -747, -747, -747,
1853 7429, 7647, -747, -747, 8628, 2797, 570, -747, 307, 307,
1854 2797, 213, 1104, -747, 300, 9266, 543, 505, 282, -31,
1855 38, 261, 603, -747, -747, -747, -747, 972, -747, -747,
1856 -747, -747, 1223, 66, -747, -747, -747, -747, 580, -747,
1857 583, 683, 589, 687, -747, -747, 893, -747, -747, -747,
1858 416, 416, -747, 576, 4839, -747, -747, 604, 8192, -747,
1859 543, 9266, 8737, 8519, 630, 8737, 8737, -747, 535, 608,
1860 677, 8737, 8737, -747, -747, 535, -747, -747, -747, 8301,
1861 740, -747, 588, -747, 740, -747, -747, -747, -747, 650,
1862 44, -747, 239, 257, -31, 141, 145, 8628, 193, -747,
1863 8628, 3609, 505, 282, -747, -31, 650, 106, 1223, 3609,
1864 193, 6754, -747, -747, -747, -747, 4839, 4694, 8519, 32,
1865 -747, -747, -747, 8519, 8519, 507, 8519, 8519, 636, 106,
1866 -747, -747, -747, 291, 8519, -747, 972, 457, -747, 651,
1867 -31, -747, 639, 4839, 4694, -747, 1223, -747, -747, 1223,
1868 -747, -747, 598, -747, -747, 4694, -747, -747, -747, -747,
1869 -747, 681, 1017, 639, 679, 654, -747, 656, 657, -747,
1870 -747, 789, 8519, 664, 543, 2797, 8519, -747, 2797, -747,
1871 2797, -747, -747, 8737, -747, 2797, -747, 2797, -747, 545,
1872 -747, 713, -747, 4304, 796, -747, 8628, 650, -747, 650,
1873 4839, 4839, -747, 8410, 3899, 189, 56, -747, 193, 650,
1874 -747, -747, -747, -31, 650, -747, -747, 799, 673, 2797,
1875 4694, 8519, 7647, -747, -747, -31, 884, 671, 1079, -747,
1876 -31, 803, 686, -747, 676, 678, -747, 684, -747, 694,
1877 684, 690, 9371, -747, 699, -747, -747, 711, -747, 1251,
1878 -747, 1251, -747, 598, -747, -747, 700, 2797, -747, 2797,
1879 9476, 86, -747, -747, 4839, -747, -747, 86, -747, -747,
1880 650, 650, -747, 365, -747, 3609, -747, -747, -747, -747,
1881 1131, -747, -747, 706, -747, 707, 884, 716, -747, -747,
1882 -747, -747, 1223, -747, 598, -747, 598, -747, 598, -747,
1883 -747, -747, 790, 520, 1017, -747, 708, 715, 684, -747,
1884 717, 684, 797, -747, 523, 366, 383, 409, 3609, -747,
1885 3754, -747, -747, -747, -747, -747, 4839, 650, 3609, -747,
1886 884, 707, 884, 721, 684, 727, 684, 684, -747, 10318,
1887 -747, 1251, -747, 598, -747, -747, 598, -747, -747, 510,
1888 10395, 7320, 10472, 688, 588, 650, -747, 650, 707, 884,
1889 -747, 598, -747, -747, -747, 730, 731, 684, 735, 684,
1890 684, 55, 282, -31, 128, 158, -747, -747, -747, -747,
1891 707, 684, -747, 598, -747, -747, -747, 163, -747, 684,
1898 -747, -747, -747, 452, -747, 28, -747, -545, 277, -747,
1899 39, -747, -293, 184, -58, 71, -747, -169, -747, -7,
1900 791, -142, -13, -37, -747, -396, -29, 1623, -312, 788,
1901 -54, -747, -25, -747, -747, 20, -747, 1066, -747, -45,
1902 -747, 11, 47, -324, 115, 5, -747, -322, -196, 53,
1903 -295, 8, -747, -747, -747, -747, -747, -747, -747, -747,
1904 -747, -747, -747, -747, -747, -747, -747, -747, 2, -747,
1905 -747, -747, -747, -747, -747, -747, -747, -747, -747, 205,
1906 -338, -516, -72, -618, -747, -722, -671, 147, -747, -489,
1907 -747, -600, -747, -12, -747, -747, -747, -747, -747, -747,
1908 -747, -747, -747, 798, -747, -747, -531, -747, -50, -747,
1909 -747, -747, -747, -747, -747, 811, -747, -747, -747, -747,
1910 -747, -747, -747, -747, 856, -747, -140, -747, -747, -747,
1911 -747, 7, -747, 12, -747, 1268, 1605, 823, 1289, 1575,
1912 -747, -747, 35, -387, -697, -568, -690, 273, -696, -746,
1913 72, 181, -747, -526, -747, -449, 270, -747, -747, -747,
1914 97, -360, 758, -276, -747, -747, -56, -4, 278, -585,
1921 #define YYTABLE_NINF -574
1924 111, 273, 544, 227, 81, 644, 81, 254, 725, 201,
1925 201, 532, 498, 201, 493, 192, 689, 405, 208, 208,
1926 193, 706, 208, 225, 262, 228, 340, 222, 190, 343,
1927 688, 344, 112, 221, 733, 192, 247, 375, 441, 306,
1928 193, 67, 443, 67, 596, 558, 559, 292, 190, 253,
1929 257, 81, 208, 838, 616, 264, 833, 541, 530, 741,
1930 538, 263, 794, -93, 208, 846, 799, 634, -103, 207,
1931 207, 291, 380, 207, 589, 190, 593, 380, 264, -99,
1932 596, 3, 589, 685, 263, 208, 208, 716, 717, 208,
1933 349, 360, 360, 291, 660, 743, 263, 263, 263, 541,
1934 430, -100, 574, 575, 251, 909, 888, -330, 652, 805,
1935 230, 190, -489, 213, 213, 387, 224, 213, 378, 644,
1936 810, 386, 279, 530, -107, 538, 334, 768, 619, 470,
1937 -489, 205, 215, 285, -99, 216, 461, -106, 464, 240,
1938 468, -102, 830, 298, 299, -490, 653, -93, 252, 256,
1939 390, 609, -99, 392, 393, 885, 809, 300, 560, 833,
1940 -330, -330, 489, 847, 814, -90, -102, -100, 741, 827,
1941 -104, -104, 379, 744, 471, 281, -101, 609, -93, 335,
1942 336, -93, 381, 644, 803, -93, 302, 381, 432, 288,
1943 288, 289, 289, 220, -90, 909, 838, -551, -91, 81,
1944 -103, 288, -103, 289, 769, 398, 833, 846, 888, 303,
1945 201, 398, 201, 201, -101, 931, -91, 405, 414, 208,
1946 835, 208, 208, 839, 448, 208, 433, 208, 694, 247,
1947 820, 288, 81, 289, 249, 476, 477, 478, 479, -98,
1948 705, 596, 223, 81, 81, 742, 221, 224, 307, 386,
1949 291, 704, -97, 224, 444, 923, 56, 486, 741, 644,
1950 741, 958, 497, 264, -103, 774, 384, 338, 338, 263,
1951 207, 338, 207, -102, 389, -102, 491, 609, 589, 589,
1952 429, -93, -105, 545, 546, -95, -95, 547, 980, 609,
1953 874, 247, 399, -490, 81, 208, 208, 208, 208, 81,
1954 208, 208, -481, -104, 208, -104, 81, 264, -101, 208,
1955 -101, 283, 284, 263, 213, -100, 213, -412, 741, 933,
1956 475, 813, -71, 907, 223, 910, 243, 648, 201, -92,
1957 927, 67, 406, 414, 409, 391, 480, 208, 288, 81,
1958 289, 403, 924, 208, 208, 400, 401, 537, 395, 291,
1959 586, 588, 804, -85, 528, 487, -481, -548, 208, 254,
1960 487, 437, 741, -107, 741, 562, 935, -285, 438, 493,
1961 -95, -480, 394, 485, 455, -549, -412, 396, 494, -94,
1962 793, -551, 548, 957, 790, 402, 208, 208, 987, 426,
1963 -482, 741, 588, 201, 722, 254, 603, -96, 414, -552,
1964 731, -95, 208, -483, -95, 404, -485, 415, -95, 417,
1965 398, 398, 537, 448, 422, 968, -475, 456, 457, 528,
1966 -285, -285, 111, 424, -552, -480, 81, -412, 192, -412,
1967 -412, 644, -484, 193, -478, 81, 451, 217, 537, 657,
1968 440, 190, 400, 427, -482, 201, 528, 438, -486, 220,
1969 414, -487, 264, 448, 208, 578, 580, -483, 263, 647,
1970 -485, -475, 596, 67, 537, 308, -478, -548, -488, -475,
1971 -475, 528, 612, -548, 243, 428, 569, 338, 338, 338,
1972 338, 656, 481, 482, 308, -549, -484, -478, -478, 452,
1973 453, -549, 264, 590, -278, 298, 299, -106, 263, 781,
1974 589, 416, -486, 497, -487, -487, 788, 425, -70, 735,
1975 664, 623, 624, 625, 626, -475, 331, 332, 333, 243,
1976 -478, -488, -488, 918, 434, 338, 338, 431, 669, 920,
1977 570, -555, 722, 556, 614, 668, 676, 557, 681, 551,
1978 555, 667, 721, 675, 81, 201, 81, -278, -278, 673,
1979 414, 687, 687, 445, 208, 588, 254, 201, 563, 720,
1980 446, 447, 414, 436, 537, 699, 208, 442, 81, 208,
1981 465, 528, 676, 676, 656, 656, 537, 726, 732, 713,
1982 715, 243, 450, 528, 469, 673, 673, 727, 398, 669,
1983 -555, 192, 552, 553, 821, -286, 193, 826, 472, -102,
1984 473, 690, 796, 793, 190, 939, 208, 676, 950, -104,
1985 492, 564, 565, 773, 548, 669, -101, 264, 550, 667,
1986 673, 712, 714, 263, 448, 474, 554, 973, 761, 582,
1987 623, 624, 625, 626, 789, 598, 748, 649, 748, 806,
1988 748, -555, 808, -555, -555, 607, 600, -551, -286, -286,
1989 735, 770, 623, 624, 625, 626, 81, 816, 564, 565,
1990 677, 951, 952, 264, 208, 627, 455, 208, 208, 263,
1991 463, 628, 629, 208, 208, 662, 609, 792, 795, 601,
1992 795, -85, 795, 615, 597, -264, 658, 627, 599, 824,
1993 669, 661, 630, 602, 629, 631, 679, 728, 683, 208,
1994 385, 669, 208, 81, 807, 455, 428, 730, 611, 456,
1995 457, 81, 734, 613, 630, 418, 815, 656, 81, 81,
1996 746, 762, -107, 749, 419, 420, 398, 856, -106, 752,
1997 308, 190, 487, 494, 671, 751, 777, 779, 867, 754,
1998 770, 776, 784, 786, -265, 81, 81, 672, 456, 457,
1999 458, 707, 782, -98, 691, 793, -102, 81, 872, -97,
2000 110, 770, 110, 748, 783, 748, 748, 659, 735, -104,
2001 623, 624, 625, 626, 110, 110, 822, 254, 110, 329,
2002 330, 331, 332, 333, 762, 208, -101, -93, 729, 862,
2003 842, 828, 866, 848, 849, 81, 851, 853, 208, 855,
2004 -95, 860, 81, 81, -266, 864, 81, 110, 110, 881,
2005 882, 886, 687, 890, 876, 455, 892, -92, 894, 682,
2006 110, 684, 81, 891, 896, 905, 622, 901, 623, 624,
2007 625, 626, 748, 748, 898, 748, 308, 748, 748, 904,
2008 -267, 110, 110, 929, 903, 110, 938, 930, 941, 308,
2009 263, 321, 322, 949, 858, 943, 932, 946, 456, 457,
2010 460, 959, 914, 627, 321, 322, 81, 961, 263, 628,
2011 629, 795, -551, -552, 455, 983, 606, 81, 364, 347,
2012 455, 338, 977, 825, 338, 329, 330, 331, 332, 333,
2013 630, 382, 940, 631, 802, 326, 327, 328, 329, 330,
2014 331, 332, 333, 976, 748, 748, 748, 383, 748, 748,
2015 750, 811, 753, 277, 376, 928, 632, 456, 457, 462,
2016 81, 906, 81, 456, 457, 466, 765, 834, 81, 0,
2017 81, 771, 748, 748, 748, 748, 735, 0, 623, 624,
2018 625, 626, 0, 0, 201, 0, 0, 756, 757, 414,
2019 758, 681, 795, 208, 0, 110, 44, 45, 0, 528,
2020 0, 0, 0, 537, 0, 748, 748, 748, 748, 669,
2021 528, 0, 0, 736, 0, 110, 0, 110, 110, 748,
2022 338, 110, 0, 110, 0, 812, 0, 748, 110, 0,
2023 0, 0, 0, 817, 818, 308, 0, 0, 0, 110,
2024 110, 0, 868, 0, 869, 0, 0, 823, 0, 0,
2025 321, 322, 0, 0, 877, 0, 0, 0, 829, 879,
2026 831, 832, 837, 0, 735, 840, 623, 624, 625, 626,
2027 0, 0, 841, 0, 0, 850, 0, 852, 854, 0,
2028 0, 0, 0, 328, 329, 330, 331, 332, 333, 0,
2029 110, 110, 110, 110, 110, 110, 110, 110, 0, 0,
2030 110, 736, 110, 0, 0, 110, 0, 737, 0, 843,
2031 863, 623, 624, 625, 626, 921, 922, 870, 871, 0,
2032 0, 873, 203, 203, 0, 0, 203, 0, 0, 0,
2033 0, 878, 0, 110, 0, 110, 0, 883, 0, 110,
2034 110, 0, 0, 884, 893, 895, 0, 897, 889, 899,
2035 900, 0, 236, 239, 110, 0, 0, 203, 203, 0,
2036 0, 0, 0, 0, 908, 0, 911, 0, 286, 287,
2037 0, 735, 956, 623, 624, 625, 626, 0, 0, 0,
2038 0, 919, 110, 110, 293, 294, 295, 296, 297, 0,
2039 0, 0, 0, 0, 0, 0, 0, 0, 110, 0,
2040 978, 0, 979, 0, 0, 934, 0, 936, 736, 0,
2041 0, 937, 0, 0, 887, 0, 942, 944, 945, 0,
2042 947, 948, 110, 622, 0, 623, 624, 625, 626, 0,
2043 0, 110, 0, 0, 0, 953, 0, 954, 0, 0,
2044 0, 0, 0, 955, 960, 962, 963, 964, 0, 0,
2045 110, 0, 0, 0, 967, 0, 969, 0, 0, 970,
2046 627, 0, 0, 0, 0, 0, 628, 629, 0, 0,
2047 0, 0, 0, 0, 981, 0, 0, 982, 984, 985,
2048 986, 0, 0, 0, 0, 0, 0, 630, 0, 0,
2049 631, 988, 0, 0, 0, 0, 989, 0, 0, 990,
2050 0, 203, 0, 0, 203, 203, 286, 0, 0, 0,
2051 105, 0, 105, 708, 0, 622, 0, 623, 624, 625,
2052 626, 0, 0, 203, 0, 203, 203, 0, 0, 0,
2053 0, 108, 0, 108, 0, 0, 0, 0, 0, 0,
2054 110, 0, 110, 761, 0, 623, 624, 625, 626, 0,
2055 110, 0, 627, 0, 0, 0, 0, 105, 628, 629,
2056 0, 265, 110, 0, 110, 110, 0, 0, 0, 0,
2057 0, 0, 0, 0, 0, 0, 0, 0, 108, 630,
2058 627, 0, 631, 0, 265, 0, 628, 629, 0, 0,
2059 0, 0, 0, 0, 0, 0, 351, 361, 361, 361,
2060 0, 0, 110, 0, 0, 0, 0, 630, 203, 0,
2061 631, 0, 0, 496, 499, 500, 501, 502, 503, 504,
2062 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2063 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
2064 0, 203, 0, 0, 0, 0, 0, 0, 0, 0,
2065 0, 0, 110, 0, 0, 0, 0, 0, 0, 0,
2066 110, 0, 0, 110, 110, 0, 0, 0, 0, 110,
2067 110, 0, 308, 309, 310, 311, 312, 313, 314, 315,
2068 316, 317, 318, -574, -574, 0, 0, 321, 322, 0,
2069 579, 581, 0, 0, 0, 110, 0, 0, 110, 110,
2070 585, 203, 203, 0, 0, 105, 203, 110, 579, 581,
2071 203, 0, 0, 0, 110, 110, 324, 325, 326, 327,
2072 328, 329, 330, 331, 332, 333, 108, 0, 0, 605,
2073 0, 0, 0, 0, 610, 0, 0, 0, 105, 0,
2074 0, 110, 110, 203, 0, 0, 203, 0, 0, 105,
2075 105, 0, 0, 110, 0, 0, 0, 0, 203, 108,
2076 0, 0, 0, 0, 0, 0, 0, 0, 0, 265,
2077 108, 108, 0, 0, 0, 0, 0, 0, 650, 651,
2078 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
2079 203, 110, 0, 0, 110, 0, 0, 0, 110, 110,
2080 105, 0, 110, 0, 0, 105, 0, 0, 0, 0,
2081 0, 0, 105, 265, 0, 0, 0, 109, 110, 109,
2082 0, 108, 0, 0, 0, 0, 108, 0, 0, 0,
2083 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
2084 0, 0, 0, 0, 0, 105, 0, 106, 0, 106,
2085 0, 0, 0, 0, 203, 0, 0, 0, 203, 0,
2086 0, 0, 110, 0, 109, 78, 108, 78, 267, 0,
2087 203, 0, 0, 110, 0, 0, 0, 0, 0, 0,
2088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2089 0, 267, 0, 203, 106, 0, 0, 0, 266, 0,
2090 0, 0, 0, 353, 363, 363, 203, 203, 0, 0,
2091 0, 0, 78, 0, 0, 0, 110, 0, 110, 0,
2092 0, 266, 0, 0, 110, 0, 110, 0, 0, 0,
2093 0, 0, 105, 352, 362, 362, 362, 0, 0, 0,
2094 0, 105, 0, 0, 0, 0, 0, 0, 0, 110,
2095 0, 348, 0, 108, 0, 0, 0, 0, 265, 0,
2096 0, 0, 108, 0, 203, 0, 0, 0, 585, 775,
2097 0, 778, 780, 0, 0, 0, 0, 785, 787, -573,
2098 0, 0, 0, 0, 0, 203, 0, -573, -573, -573,
2099 0, 0, -573, -573, -573, 0, -573, 0, 265, 0,
2100 0, 0, 0, 0, 0, 0, -573, 0, 0, 0,
2101 0, 0, 109, 0, 0, 0, -573, -573, 0, -573,
2102 -573, -573, -573, -573, 819, 0, 0, 0, 0, 778,
2103 780, 0, 785, 787, 0, 0, 0, 0, 0, 0,
2104 203, 0, 106, 0, 0, 109, 0, 0, 0, 0,
2105 105, 0, 105, 0, 0, 0, 109, 109, 0, 0,
2106 78, 0, 0, 0, -573, 0, 0, 0, 0, 0,
2107 0, 108, 0, 108, 105, 106, 267, 0, 203, 0,
2108 0, 0, 857, 0, 0, 0, 106, 106, 0, 859,
2109 0, 0, 0, 78, 0, 108, 0, 0, 0, 0,
2110 0, 0, 0, 0, 78, 78, 266, 109, 0, 203,
2111 0, 0, 109, 0, 0, 0, -573, 0, -573, 109,
2112 267, 220, -573, 265, -573, 0, -573, 859, 203, 0,
2113 0, 0, 0, 0, 0, 0, 0, 106, 0, 0,
2114 0, 0, 106, 0, 0, 0, 0, 0, 0, 106,
2115 266, 0, 109, 0, 0, 78, 0, 0, 0, 0,
2116 78, 0, 105, 0, 0, 0, 0, 78, 0, 265,
2117 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2118 0, 0, 106, 108, 0, 0, 0, 0, 0, 0,
2119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2120 78, 0, 0, 0, 0, 0, 0, 0, 0, 105,
2121 0, 0, 0, 0, 0, 0, 0, 105, 0, 0,
2122 0, 0, 0, 0, 105, 105, 0, 0, 0, 0,
2123 108, 0, 0, 0, 0, 0, 0, 0, 108, 109,
2124 0, 0, 0, 0, 0, 108, 108, 0, 109, 0,
2125 0, 105, 105, 0, 0, 0, 0, 203, 0, 0,
2126 0, 0, 0, 105, 0, 267, 0, 0, 0, 106,
2127 0, 0, 108, 108, 0, 0, 0, 0, 106, 0,
2128 0, 0, 0, 0, 108, 0, 0, 78, 0, 0,
2129 0, 0, 0, 0, 0, 266, 78, 0, 0, 0,
2130 0, 105, 0, 0, 0, 267, 0, 0, 105, 105,
2131 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
2132 0, 0, 108, 0, 0, 0, 0, 0, 105, 108,
2133 108, 0, 0, 108, 0, 266, 0, 0, 0, 0,
2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
2135 361, 0, 0, 0, 0, 0, 0, 109, 0, 109,
2136 0, 0, 0, 0, 0, 0, 0, 0, 915, 0,
2137 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
2138 0, 109, 0, 105, 0, 0, 0, 106, 0, 106,
2139 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
2140 0, 0, 0, 0, 108, 78, 0, 78, 0, 0,
2141 0, 106, 0, 0, 0, 0, 0, 0, 0, 0,
2142 0, 0, 0, 0, 0, 0, 105, 0, 105, 78,
2143 267, 0, 0, 0, 105, 0, 105, 0, 0, 0,
2144 0, 0, 0, 0, 0, 0, 0, 108, 0, 108,
2145 0, 0, 0, 0, 0, 108, 0, 108, 0, 0,
2146 266, 760, 0, 0, 0, 0, 0, 0, 0, 109,
2147 0, 0, 0, 0, 0, 0, 267, 0, 0, 0,
2148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2149 0, 0, 308, -574, -574, -574, -574, 313, 314, 106,
2150 0, -574, -574, 0, 0, 0, 266, 321, 322, 0,
2151 0, 0, 0, 0, 0, 0, 109, 78, 0, 0,
2152 0, 0, 0, 0, 109, 495, 0, 0, 0, 0,
2153 0, 109, 109, 0, 0, 0, 324, 325, 326, 327,
2154 328, 329, 330, 331, 332, 333, 106, 0, 0, 0,
2155 0, 0, 0, 0, 106, 0, 0, 0, 109, 109,
2156 0, 106, 106, 0, 78, 0, 0, 0, 0, 0,
2157 109, 0, 78, 0, 0, 0, 0, 0, 0, 78,
2158 78, 308, 309, 310, 311, 312, 313, 314, 106, 106,
2159 317, 318, 0, 0, 0, 0, 321, 322, 0, 0,
2160 106, 0, 0, 0, 0, 0, 78, 78, 109, 0,
2161 0, 0, 0, 0, 0, 109, 109, 0, 78, 109,
2162 0, 0, 0, 0, 0, 324, 325, 326, 327, 328,
2163 329, 330, 331, 332, 333, 109, 0, 0, 106, 0,
2164 0, 0, 0, 0, 0, 106, 106, 0, 0, 106,
2165 0, 0, 0, 0, 0, 0, 78, 363, 0, 0,
2166 0, 0, 0, 78, 78, 106, 0, 78, 0, 0,
2167 0, 0, 0, 0, 0, 917, 0, 0, 0, 109,
2168 0, 0, 0, 78, 0, 0, 0, 362, 0, 0,
2169 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2170 0, 0, 0, 0, 0, 916, 0, 0, 0, 106,
2171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2172 106, 0, 0, 913, 0, 0, 0, 78, 0, 0,
2173 0, 0, 0, 109, 0, 109, 0, 0, 78, 0,
2174 0, 109, 0, 109, 0, 0, 0, 0, 0, 0,
2175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2176 0, 0, 0, 106, 0, 106, 0, 0, 0, 0,
2177 0, 106, 0, 106, 0, 0, 0, 0, 0, 0,
2178 0, 78, 0, 78, 0, 0, 0, 0, 0, 78,
2179 0, 78, -573, 4, 0, 5, 6, 7, 8, 9,
2180 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2181 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2182 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2183 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2184 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2185 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2187 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2188 0, 49, 50, 0, 51, 52, 0, 53, 0, 54,
2189 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2190 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2191 0, 0, 0, -285, 61, 62, 63, 0, 0, 0,
2192 0, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2193 -285, 0, 0, 0, 0, 0, 0, -573, 0, -573,
2194 -285, -285, -285, 0, 0, 0, 0, 0, 0, 0,
2195 -285, -285, 0, -285, -285, -285, -285, -285, 0, 0,
2196 0, 0, 0, 0, 308, 309, 310, 311, 312, 313,
2197 314, 315, 316, 317, 318, 319, 320, 0, 0, 321,
2198 322, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2199 -285, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2200 724, -285, 0, 0, 0, 0, 323, -285, 324, 325,
2201 326, 327, 328, 329, 330, 331, 332, 333, 0, 0,
2202 -285, 0, -105, -285, -285, -285, -285, -285, -285, -285,
2203 -285, -285, -285, -285, -285, 0, 0, 0, 0, 0,
2204 0, 0, 0, 224, 0, 0, 0, 0, 0, 0,
2205 -285, -285, -285, -285, -411, 0, -285, -285, -285, 0,
2206 -285, 0, -411, -411, -411, 0, 0, -411, -411, -411,
2207 0, -411, 0, 0, 0, 0, 0, 0, 0, 0,
2208 -411, -411, -411, 0, 0, 0, 0, 0, 0, 0,
2209 0, -411, -411, 0, -411, -411, -411, -411, -411, 0,
2210 0, 0, 0, 0, 0, 308, 309, 310, 311, 312,
2211 313, 314, 315, 316, 317, 318, 319, 320, 0, 0,
2212 321, 322, -411, -411, -411, -411, -411, -411, -411, -411,
2213 -411, -411, -411, -411, -411, 0, 0, -411, -411, -411,
2214 0, 0, -411, 0, 0, 0, 0, 323, -411, 324,
2215 325, 326, 327, 328, 329, 330, 331, 332, 333, 0,
2216 0, 0, 0, 0, -411, 0, -411, -411, -411, -411,
2217 -411, -411, -411, -411, -411, -411, 0, 0, 0, 0,
2218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2219 -411, -411, -411, -411, -411, -279, 220, -411, -411, -411,
2220 0, -411, 0, -279, -279, -279, 0, 0, -279, -279,
2221 -279, 0, -279, 0, 0, 0, 0, 0, 0, 0,
2222 0, 0, -279, -279, -279, 0, 0, 0, 0, 0,
2223 0, 0, -279, -279, 0, -279, -279, -279, -279, -279,
2224 0, 0, 0, 0, 0, 0, 308, 309, 310, 311,
2225 312, 313, 314, 315, 0, 317, 318, 0, 0, 0,
2226 0, 321, 322, -279, -279, -279, -279, -279, -279, -279,
2227 -279, -279, -279, -279, -279, -279, 0, 0, -279, -279,
2228 -279, 0, 0, -279, 0, 0, 0, 0, 0, -279,
2229 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
2230 0, 0, -279, 0, 0, -279, -279, -279, -279, -279,
2231 -279, -279, -279, -279, -279, -279, -279, 0, 0, 0,
2232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2233 0, 0, -279, -279, -279, -279, -573, 0, -279, -279,
2234 -279, 0, -279, 0, -573, -573, -573, 0, 0, -573,
2235 -573, -573, 0, -573, 0, 0, 0, 0, 0, 0,
2236 0, 0, -573, -573, -573, 0, 0, 0, 0, 0,
2237 0, 0, 0, -573, -573, 0, -573, -573, -573, -573,
2238 -573, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2240 0, 0, 0, 0, -573, -573, -573, -573, -573, -573,
2241 -573, -573, -573, -573, -573, -573, -573, 0, 0, -573,
2242 -573, -573, 0, 0, -573, 0, 0, 0, 0, 0,
2243 -573, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2244 0, 0, 0, 0, 0, 0, -573, 0, -573, -573,
2245 -573, -573, -573, -573, -573, -573, -573, -573, 0, 0,
2246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2247 0, 0, -573, -573, -573, -573, -573, -292, 220, -573,
2248 -573, -573, 0, -573, 0, -292, -292, -292, 0, 0,
2249 -292, -292, -292, 0, -292, 0, 0, 0, 0, 0,
2250 0, 0, 0, 0, -292, -292, 0, 0, 0, 0,
2251 0, 0, 0, 0, -292, -292, 0, -292, -292, -292,
2252 -292, -292, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 0, 0, 0, -292, -292, -292, -292, -292,
2255 -292, -292, -292, -292, -292, -292, -292, -292, 0, 0,
2256 -292, -292, -292, 0, 0, -292, 0, 0, 0, 0,
2257 0, -292, 0, 0, 0, 0, 0, 0, 0, 0,
2258 0, 0, 0, 0, 0, 0, 0, -292, 0, -292,
2259 -292, -292, -292, -292, -292, -292, -292, -292, -292, 0,
2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2261 0, 0, 0, 0, -292, -292, -292, -292, -555, 217,
2262 -292, -292, -292, 0, -292, 0, -555, -555, -555, 0,
2263 0, 0, -555, -555, 0, -555, 0, 0, 0, 0,
2264 0, 0, 0, 0, -555, 0, 0, 0, 0, 0,
2265 0, 0, 0, 0, 0, -555, -555, 0, -555, -555,
2266 -555, -555, -555, 0, 0, 0, 0, 0, 0, 0,
2267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 0, 0, 0, -555, -555, -555, -555,
2269 -555, -555, -555, -555, -555, -555, -555, -555, -555, 0,
2270 0, -555, -555, -555, -285, 665, 0, 0, 0, 0,
2271 0, 0, -285, -285, -285, 0, 0, 0, -285, -285,
2272 0, -285, 0, 0, 0, 0, 0, -103, -555, 0,
2273 -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
2274 0, -285, -285, 0, -285, -285, -285, -285, -285, 0,
2275 0, 0, 0, 0, -555, -555, -555, -555, -94, 0,
2276 0, -555, 0, -555, 0, -555, 0, 0, 0, 0,
2277 0, 0, -285, -285, -285, -285, -285, -285, -285, -285,
2278 -285, -285, -285, -285, -285, 0, 0, -285, -285, -285,
2279 0, 666, 0, 0, 0, 0, 0, 0, 0, 0,
2280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2281 0, 0, 0, -105, -285, 0, -285, -285, -285, -285,
2282 -285, -285, -285, -285, -285, -285, 0, 0, 0, 0,
2283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2284 0, -285, -285, -285, -96, 0, 0, -285, 0, -285,
2285 241, -285, 5, 6, 7, 8, 9, -573, -573, -573,
2286 10, 11, 0, 0, -573, 12, 0, 13, 14, 15,
2287 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2288 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2289 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2290 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2291 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2293 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2294 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2295 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2297 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2299 0, 0, 0, 0, -573, 241, -573, 5, 6, 7,
2300 8, 9, 0, 0, -573, 10, 11, 0, -573, -573,
2301 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2302 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2303 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2304 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2305 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2306 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2308 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2309 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2311 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2313 0, 0, 0, 0, 0, 0, 0, 0, 0, -573,
2314 241, -573, 5, 6, 7, 8, 9, 0, 0, -573,
2315 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2316 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2317 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2318 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2319 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2320 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2322 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2323 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2324 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2326 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2327 4, 0, 5, 6, 7, 8, 9, 0, 0, 0,
2328 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2329 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2330 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2331 0, 0, 0, 0, 28, 29, 30, 31, 32, 33,
2332 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2333 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2335 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2336 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2337 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2339 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2340 0, 0, 0, 0, 0, 0, -573, 0, 0, 0,
2341 0, 0, 0, 0, -573, 241, -573, 5, 6, 7,
2342 8, 9, 0, 0, -573, 10, 11, 0, 0, -573,
2343 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2344 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2345 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2346 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2347 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2348 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2350 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2351 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2353 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2354 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2355 8, 9, 0, -573, -573, 10, 11, 0, 0, -573,
2356 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2357 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2358 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2359 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2360 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2361 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2363 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2364 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2366 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2367 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2368 8, 9, 0, 0, 0, 10, 11, 0, 0, -573,
2369 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2370 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2371 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2372 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2373 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2374 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2376 48, 0, 0, 242, 50, 0, 51, 52, 0, 53,
2377 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2379 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2380 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2381 8, 9, 0, 0, 0, 10, 11, -573, 0, -573,
2382 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2383 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2384 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2385 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2386 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2387 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2389 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2390 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2392 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2393 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2394 8, 9, 0, 0, 0, 10, 11, -573, 0, -573,
2395 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2396 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2397 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2398 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2399 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2400 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2402 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2403 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2405 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2407 0, -573, 0, 0, 0, 0, 0, 0, 0, -573,
2408 241, -573, 5, 6, 7, 8, 9, 0, 0, -573,
2409 10, 11, 0, 0, 0, 12, 0, 13, 14, 15,
2410 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2411 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2412 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2413 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2414 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2416 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2417 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2418 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2420 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2421 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2422 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2423 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2424 21, 22, 23, 24, 25, 26, 0, 0, 194, 0,
2425 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2426 34, 35, 36, 37, 38, 39, 40, 195, 41, 42,
2427 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2429 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2430 0, 51, 52, 0, 198, 199, 54, 55, 56, 57,
2431 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2432 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2433 11, 61, 200, 63, 12, 0, 13, 14, 15, 16,
2434 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2435 22, 23, 24, 25, 26, 0, 224, 27, 0, 0,
2436 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2437 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2438 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2440 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2441 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2442 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2444 61, 62, 63, 0, 0, 0, 0, 0, 0, 0,
2445 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2446 11, 0, 0, 288, 12, 289, 13, 14, 15, 16,
2447 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2448 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2449 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2450 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2451 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2453 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2454 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2455 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2456 5, 6, 7, 8, 9, 0, 0, 0, 10, 11,
2457 61, 62, 63, 12, 0, 13, 14, 15, 16, 17,
2458 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2459 23, 24, 25, 26, 0, 224, 27, 0, 0, 0,
2460 0, 0, 28, 29, 30, 31, 32, 33, 34, 35,
2461 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2462 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2464 0, 0, 0, 48, 0, 0, 49, 50, 0, 51,
2465 52, 0, 53, 0, 54, 55, 56, 57, 58, 59,
2466 60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2467 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,
2468 62, 63, 0, 0, 0, 0, 0, 0, 5, 6,
2469 7, 8, 9, 0, 0, 0, 10, 11, 0, 0,
2470 0, 12, 474, 13, 14, 15, 16, 17, 18, 19,
2471 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2472 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2473 28, 29, 0, 31, 32, 33, 34, 35, 36, 37,
2474 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2475 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2477 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2478 53, 0, 54, 55, 56, 57, 58, 59, 60, 0,
2479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2480 0, 0, 0, 0, 0, 0, 0, 61, 62, 63,
2481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2483 474, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2484 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2485 132, 133, 134, 135, 136, 0, 0, 0, 137, 138,
2486 139, 365, 366, 367, 368, 144, 145, 146, 0, 0,
2487 0, 0, 0, 147, 148, 149, 150, 369, 370, 371,
2488 372, 155, 37, 38, 373, 40, 0, 0, 0, 0,
2489 0, 0, 0, 0, 157, 158, 159, 160, 161, 162,
2490 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2491 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2492 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2494 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2495 0, 183, 184, 0, 0, 0, 0, 0, -548, -548,
2496 -548, 0, -548, 0, 0, 0, -548, -548, 0, 185,
2497 374, -548, 0, -548, -548, -548, -548, -548, -548, -548,
2498 0, -548, 0, 0, 0, -548, -548, -548, -548, -548,
2499 -548, -548, 0, 0, -548, 0, 0, 0, 0, 0,
2500 0, -548, 0, 0, -548, -548, -548, -548, -548, -548,
2501 -548, -548, -548, -548, -548, -548, 0, -548, -548, -548,
2502 0, -548, -548, 0, 0, 0, 0, 0, 0, 0,
2503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2504 0, -548, 0, 0, -548, -548, 0, -548, -548, 0,
2505 -548, -548, -548, -548, -548, -548, -548, -548, -548, 0,
2506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2507 0, 0, 0, 0, 0, 0, 0, -548, -548, -548,
2508 0, 0, 0, 0, 0, -549, -549, -549, 0, -549,
2509 0, -548, 0, -549, -549, 0, 0, -548, -549, 0,
2510 -549, -549, -549, -549, -549, -549, -549, 0, -549, 0,
2511 0, 0, -549, -549, -549, -549, -549, -549, -549, 0,
2512 0, -549, 0, 0, 0, 0, 0, 0, -549, 0,
2513 0, -549, -549, -549, -549, -549, -549, -549, -549, -549,
2514 -549, -549, -549, 0, -549, -549, -549, 0, -549, -549,
2515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2516 0, 0, 0, 0, 0, 0, 0, 0, -549, 0,
2517 0, -549, -549, 0, -549, -549, 0, -549, -549, -549,
2518 -549, -549, -549, -549, -549, -549, 0, 0, 0, 0,
2519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2520 0, 0, 0, 0, -549, -549, -549, 0, 0, 0,
2521 0, 0, -551, -551, -551, 0, -551, 0, -549, 0,
2522 -551, -551, 0, 0, -549, -551, 0, -551, -551, -551,
2523 -551, -551, -551, -551, 0, 0, 0, 0, 0, -551,
2524 -551, -551, -551, -551, -551, -551, 0, 0, -551, 0,
2525 0, 0, 0, 0, 0, -551, 0, 0, -551, -551,
2526 -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
2527 0, -551, -551, -551, 0, -551, -551, 0, 0, 0,
2528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2529 0, 0, 0, 0, 0, -551, 723, 0, -551, -551,
2530 0, -551, -551, 0, -551, -551, -551, -551, -551, -551,
2531 -551, -551, -551, 0, 0, 0, 0, 0, -103, 0,
2532 0, 0, 0, 0, 0, 0, -553, -553, -553, 0,
2533 -553, -551, -551, -551, -553, -553, 0, 0, 0, -553,
2534 0, -553, -553, -553, -553, -553, -553, -553, 0, 0,
2535 0, -551, 0, -553, -553, -553, -553, -553, -553, -553,
2536 0, 0, -553, 0, 0, 0, 0, 0, 0, -553,
2537 0, 0, -553, -553, -553, -553, -553, -553, -553, -553,
2538 -553, -553, -553, -553, 0, -553, -553, -553, 0, -553,
2539 -553, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2540 0, 0, 0, 0, 0, 0, 0, 0, 0, -553,
2541 0, 0, -553, -553, 0, -553, -553, 0, -553, -553,
2542 -553, -553, -553, -553, -553, -553, -553, 0, 0, 0,
2543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2544 -554, -554, -554, 0, -554, -553, -553, -553, -554, -554,
2545 0, 0, 0, -554, 0, -554, -554, -554, -554, -554,
2546 -554, -554, 0, 0, 0, -553, 0, -554, -554, -554,
2547 -554, -554, -554, -554, 0, 0, -554, 0, 0, 0,
2548 0, 0, 0, -554, 0, 0, -554, -554, -554, -554,
2549 -554, -554, -554, -554, -554, -554, -554, -554, 0, -554,
2550 -554, -554, 0, -554, -554, 0, 0, 0, 0, 0,
2551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2552 0, 0, 0, -554, 0, 0, -554, -554, 0, -554,
2553 -554, 0, -554, -554, -554, -554, -554, -554, -554, -554,
2554 -554, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2555 0, 0, 0, 0, 0, 0, 0, 0, 0, -554,
2556 -554, -554, 0, 0, 0, 0, 0, 0, 0, 0,
2557 0, 0, 0, 0, 0, 0, 0, 0, 0, -554,
2558 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2559 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2560 133, 134, 135, 136, 0, 0, 0, 137, 138, 139,
2561 140, 141, 142, 143, 144, 145, 146, 0, 0, 0,
2562 0, 0, 147, 148, 149, 150, 151, 152, 153, 154,
2563 155, 270, 271, 156, 272, 0, 0, 0, 0, 0,
2564 0, 0, 0, 157, 158, 159, 160, 161, 162, 163,
2565 164, 165, 0, 0, 166, 167, 0, 0, 168, 169,
2566 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
2567 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
2569 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
2570 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
2571 0, 0, 0, 0, 0, 0, 0, 0, 185, 113,
2572 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2573 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2574 134, 135, 136, 0, 0, 0, 137, 138, 139, 140,
2575 141, 142, 143, 144, 145, 146, 0, 0, 0, 0,
2576 0, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2577 226, 0, 156, 0, 0, 0, 0, 0, 0, 0,
2578 0, 0, 157, 158, 159, 160, 161, 162, 163, 164,
2579 165, 0, 0, 166, 167, 0, 0, 168, 169, 170,
2580 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2581 0, 172, 0, 0, 55, 0, 0, 0, 0, 0,
2582 0, 0, 0, 0, 0, 0, 0, 0, 173, 174,
2583 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
2584 184, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2585 0, 0, 0, 0, 0, 0, 0, 185, 113, 114,
2586 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2587 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2588 135, 136, 0, 0, 0, 137, 138, 139, 140, 141,
2589 142, 143, 144, 145, 146, 0, 0, 0, 0, 0,
2590 147, 148, 149, 150, 151, 152, 153, 154, 155, 0,
2591 0, 156, 0, 0, 0, 0, 0, 0, 0, 0,
2592 0, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2593 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2595 172, 0, 0, 55, 0, 0, 0, 0, 0, 0,
2596 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2597 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
2598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2599 0, 0, 0, 0, 0, 0, 185, 113, 114, 115,
2600 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2601 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2602 136, 0, 0, 0, 137, 138, 139, 140, 141, 142,
2603 143, 144, 145, 146, 0, 0, 0, 0, 0, 147,
2604 148, 149, 150, 151, 152, 153, 154, 155, 0, 0,
2605 156, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2606 157, 158, 159, 160, 161, 162, 163, 164, 165, 0,
2607 0, 166, 167, 0, 0, 168, 169, 170, 171, 0,
2608 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
2609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2610 0, 0, 0, 0, 0, 0, 173, 174, 175, 176,
2611 177, 178, 179, 180, 181, 182, 0, 183, 184, 0,
2612 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2613 11, 0, 0, 0, 12, 185, 13, 14, 15, 231,
2614 232, 18, 19, 0, 0, 0, 0, 0, 233, 234,
2615 235, 23, 24, 25, 26, 0, 0, 194, 0, 0,
2616 0, 0, 0, 0, 258, 0, 0, 32, 33, 34,
2617 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2618 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
2619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2620 0, 0, 0, 0, 259, 0, 0, 197, 50, 0,
2621 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2622 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2623 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2624 260, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2625 15, 231, 232, 18, 19, 0, 0, 0, 261, 0,
2626 233, 234, 235, 23, 24, 25, 26, 0, 0, 194,
2627 0, 0, 0, 0, 0, 0, 258, 0, 0, 32,
2628 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2629 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2631 0, 0, 0, 0, 0, 0, 259, 0, 0, 197,
2632 50, 0, 51, 52, 0, 0, 0, 54, 55, 56,
2633 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2634 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
2635 0, 0, 260, 10, 11, 0, 0, 0, 12, 0,
2636 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2637 490, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2638 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2639 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2640 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2642 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2643 0, 49, 50, 0, 51, 52, 0, 53, 0, 54,
2644 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2645 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2646 0, 0, 10, 11, 61, 62, 63, 12, 0, 13,
2647 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2648 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2649 27, 0, 0, 0, 0, 0, 28, 29, 0, 31,
2650 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2651 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2653 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2654 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
2655 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
2656 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2657 0, 10, 11, 61, 62, 63, 12, 0, 13, 14,
2658 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2659 20, 21, 22, 23, 24, 25, 26, 0, 0, 194,
2660 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2661 33, 34, 35, 36, 37, 38, 39, 40, 195, 41,
2662 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2664 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
2665 50, 0, 51, 52, 0, 198, 199, 54, 55, 56,
2666 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2667 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2668 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
2669 231, 232, 18, 19, 0, 0, 0, 0, 0, 233,
2670 234, 235, 23, 24, 25, 26, 0, 0, 194, 0,
2671 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2672 34, 35, 36, 37, 38, 39, 40, 195, 41, 42,
2673 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2675 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2676 0, 51, 52, 0, 587, 199, 54, 55, 56, 57,
2677 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2678 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2679 11, 61, 200, 63, 12, 0, 13, 14, 15, 231,
2680 232, 18, 19, 0, 0, 0, 0, 0, 233, 234,
2681 235, 23, 24, 25, 26, 0, 0, 194, 0, 0,
2682 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2683 35, 36, 37, 38, 39, 40, 195, 41, 42, 0,
2684 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2687 51, 52, 0, 198, 0, 54, 55, 56, 57, 58,
2688 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2689 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2690 61, 200, 63, 12, 0, 13, 14, 15, 231, 232,
2691 18, 19, 0, 0, 0, 0, 0, 233, 234, 235,
2692 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
2693 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2694 36, 37, 38, 39, 40, 195, 41, 42, 0, 43,
2695 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
2698 52, 0, 0, 199, 54, 55, 56, 57, 58, 59,
2699 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2700 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
2701 200, 63, 12, 0, 13, 14, 15, 231, 232, 18,
2702 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2703 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2704 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2705 37, 38, 39, 40, 195, 41, 42, 0, 43, 44,
2706 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708 0, 0, 196, 0, 0, 197, 50, 0, 51, 52,
2709 0, 587, 0, 54, 55, 56, 57, 58, 59, 60,
2710 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2711 7, 0, 9, 0, 0, 0, 10, 11, 61, 200,
2712 63, 12, 0, 13, 14, 15, 231, 232, 18, 19,
2713 0, 0, 0, 0, 0, 233, 234, 235, 23, 24,
2714 25, 26, 0, 0, 194, 0, 0, 0, 0, 0,
2715 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2716 38, 39, 40, 195, 41, 42, 0, 43, 44, 45,
2717 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2719 0, 196, 0, 0, 197, 50, 0, 51, 52, 0,
2720 0, 0, 54, 55, 56, 57, 58, 59, 60, 0,
2721 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2722 0, 9, 0, 0, 0, 10, 11, 61, 200, 63,
2723 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2724 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2725 26, 0, 0, 194, 0, 0, 0, 0, 0, 0,
2726 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2727 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2728 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2730 196, 0, 0, 197, 50, 0, 51, 52, 0, 484,
2731 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2732 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2733 9, 0, 0, 0, 10, 11, 61, 200, 63, 12,
2734 0, 13, 14, 15, 231, 232, 18, 19, 0, 0,
2735 0, 0, 0, 233, 234, 235, 23, 24, 25, 26,
2736 0, 0, 194, 0, 0, 0, 0, 0, 0, 29,
2737 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2738 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2739 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2740 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
2741 0, 0, 197, 50, 0, 51, 52, 0, 198, 0,
2742 54, 55, 56, 57, 58, 59, 60, 0, 0, 0,
2743 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2744 0, 0, 0, 10, 11, 61, 200, 63, 12, 0,
2745 13, 14, 15, 231, 232, 18, 19, 0, 0, 0,
2746 0, 0, 233, 234, 235, 23, 24, 25, 26, 0,
2747 0, 194, 0, 0, 0, 0, 0, 0, 29, 0,
2748 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2749 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2751 0, 0, 0, 0, 0, 0, 0, 0, 196, 0,
2752 0, 197, 50, 0, 51, 52, 0, 772, 0, 54,
2753 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2754 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2755 0, 0, 10, 11, 61, 200, 63, 12, 0, 13,
2756 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2757 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2758 194, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2759 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2760 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762 0, 0, 0, 0, 0, 0, 0, 196, 0, 0,
2763 197, 50, 0, 51, 52, 0, 484, 0, 54, 55,
2764 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
2765 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2766 0, 10, 11, 61, 200, 63, 12, 0, 13, 14,
2767 15, 231, 232, 18, 19, 0, 0, 0, 0, 0,
2768 233, 234, 235, 23, 24, 25, 26, 0, 0, 194,
2769 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2770 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2771 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
2774 50, 0, 51, 52, 0, 587, 0, 54, 55, 56,
2775 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2776 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2777 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
2778 231, 232, 18, 19, 0, 0, 0, 0, 0, 233,
2779 234, 235, 23, 24, 25, 26, 0, 0, 194, 0,
2780 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2781 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2782 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2784 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2785 0, 51, 52, 0, 0, 0, 54, 55, 56, 57,
2786 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2787 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2788 11, 61, 200, 63, 12, 0, 13, 14, 15, 16,
2789 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2790 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2791 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2792 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2793 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2795 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2796 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2797 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2798 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2799 61, 62, 63, 12, 0, 13, 14, 15, 16, 17,
2800 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2801 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
2802 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2803 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2804 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
2807 52, 0, 0, 0, 54, 55, 56, 57, 58, 59,
2808 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2809 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
2810 200, 63, 12, 0, 13, 14, 15, 231, 232, 18,
2811 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2812 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2813 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2814 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2815 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2817 0, 0, 259, 0, 0, 304, 50, 0, 51, 52,
2818 0, 305, 0, 54, 55, 56, 57, 58, 59, 60,
2819 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2820 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2821 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2822 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2823 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2824 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2825 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2827 0, 0, 0, 0, 0, 0, 0, 346, 0, 0,
2828 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
2829 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2830 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2831 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2832 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2833 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2834 0, 0, 258, 0, 0, 32, 33, 34, 354, 36,
2835 37, 38, 355, 40, 0, 41, 42, 0, 43, 44,
2836 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2837 0, 0, 0, 0, 0, 0, 0, 0, 0, 356,
2838 0, 0, 357, 0, 0, 197, 50, 0, 51, 52,
2839 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2840 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2841 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2842 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2843 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2844 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2845 32, 33, 34, 354, 36, 37, 38, 355, 40, 0,
2846 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2848 0, 0, 0, 0, 0, 0, 0, 357, 0, 0,
2849 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
2850 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2851 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2852 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2853 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2854 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2855 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2856 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2857 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859 0, 0, 259, 0, 0, 304, 50, 0, 51, 52,
2860 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2861 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2862 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2863 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2864 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2865 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2866 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2867 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2869 0, 0, 0, 0, 0, 0, 0, 902, 0, 0,
2870 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
2871 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2872 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2873 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2874 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2875 24, 25, 26, 0, 0, 194, 0, 663, 0, 0,
2876 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2877 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2878 45, 308, 309, 310, 311, 312, 313, 314, 315, 316,
2879 317, 318, 319, 320, 0, 0, 321, 322, 0, 0,
2880 0, 0, 912, 0, 0, 197, 50, 0, 51, 52,
2881 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2882 0, 0, 0, 323, 0, 324, 325, 326, 327, 328,
2883 329, 330, 331, 332, 333, 0, 0, 0, 260, 0,
2884 525, 526, 0, 0, 527, 0, 0, 0, 0, 0,
2885 0, 0, 0, -241, 157, 158, 159, 160, 161, 162,
2886 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2887 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2888 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2890 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2891 0, 183, 184, 0, 0, 0, 0, 533, 534, 0,
2892 0, 535, 0, 0, 0, 0, 0, 0, 0, 185,
2893 220, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2894 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2896 172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2897 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2898 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
2899 0, 0, 0, 0, 591, 526, 0, 0, 592, 0,
2900 0, 0, 0, 0, 0, 0, 185, 220, 157, 158,
2901 159, 160, 161, 162, 163, 164, 165, 0, 0, 166,
2902 167, 0, 0, 168, 169, 170, 171, 0, 0, 0,
2903 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
2904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2905 0, 0, 0, 0, 173, 174, 175, 176, 177, 178,
2906 179, 180, 181, 182, 0, 183, 184, 0, 0, 0,
2907 0, 594, 534, 0, 0, 595, 0, 0, 0, 0,
2908 0, 0, 0, 185, 220, 157, 158, 159, 160, 161,
2909 162, 163, 164, 165, 0, 0, 166, 167, 0, 0,
2910 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
2911 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
2912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2913 0, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2914 182, 0, 183, 184, 0, 0, 0, 0, 617, 526,
2915 0, 0, 618, 0, 0, 0, 0, 0, 0, 0,
2916 185, 220, 157, 158, 159, 160, 161, 162, 163, 164,
2917 165, 0, 0, 166, 167, 0, 0, 168, 169, 170,
2918 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2919 0, 172, 0, 0, 0, 0, 0, 0, 0, 0,
2920 0, 0, 0, 0, 0, 0, 0, 0, 173, 174,
2921 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
2922 184, 0, 0, 0, 0, 620, 534, 0, 0, 621,
2923 0, 0, 0, 0, 0, 0, 0, 185, 220, 157,
2924 158, 159, 160, 161, 162, 163, 164, 165, 0, 0,
2925 166, 167, 0, 0, 168, 169, 170, 171, 0, 0,
2926 0, 0, 0, 0, 0, 0, 0, 0, 172, 0,
2927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2928 0, 0, 0, 0, 0, 173, 174, 175, 176, 177,
2929 178, 179, 180, 181, 182, 0, 183, 184, 0, 0,
2930 0, 0, 692, 526, 0, 0, 693, 0, 0, 0,
2931 0, 0, 0, 0, 185, 220, 157, 158, 159, 160,
2932 161, 162, 163, 164, 165, 0, 0, 166, 167, 0,
2933 0, 168, 169, 170, 171, 0, 0, 0, 0, 0,
2934 0, 0, 0, 0, 0, 172, 0, 0, 0, 0,
2935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2936 0, 0, 173, 174, 175, 176, 177, 178, 179, 180,
2937 181, 182, 0, 183, 184, 0, 0, 0, 0, 695,
2938 534, 0, 0, 696, 0, 0, 0, 0, 0, 0,
2939 0, 185, 220, 157, 158, 159, 160, 161, 162, 163,
2940 164, 165, 0, 0, 166, 167, 0, 0, 168, 169,
2941 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
2942 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
2943 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
2944 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
2945 183, 184, 0, 0, 0, 0, 702, 526, 0, 0,
2946 703, 0, 0, 0, 0, 0, 0, 0, 185, 220,
2947 157, 158, 159, 160, 161, 162, 163, 164, 165, 0,
2948 0, 166, 167, 0, 0, 168, 169, 170, 171, 0,
2949 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
2950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2951 0, 0, 0, 0, 0, 0, 173, 174, 175, 176,
2952 177, 178, 179, 180, 181, 182, 0, 183, 184, 0,
2953 0, 0, 0, 572, 534, 0, 0, 573, 0, 0,
2954 0, 0, 0, 0, 0, 185, 220, 157, 158, 159,
2955 160, 161, 162, 163, 164, 165, 0, 0, 166, 167,
2956 0, 0, 168, 169, 170, 171, 0, 0, 0, 0,
2957 0, 0, 0, 0, 0, 0, 172, 0, 0, 0,
2958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2959 0, 0, 0, 173, 174, 175, 176, 177, 178, 179,
2960 180, 181, 182, 0, 183, 184, 0, 0, 0, 0,
2961 965, 526, 0, 0, 966, 0, 0, 0, 0, 0,
2962 0, 0, 185, 220, 157, 158, 159, 160, 161, 162,
2963 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2964 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2965 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2967 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2968 0, 183, 184, 0, 0, 0, 0, 971, 526, 0,
2969 0, 972, 0, 0, 0, 0, 0, 0, 0, 185,
2970 220, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2971 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2973 172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2975 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
2976 0, 0, 0, 0, 974, 534, 0, 0, 975, 0,
2977 0, 0, 0, 0, 0, 0, 185, 220, 157, 158,
2978 159, 160, 161, 162, 163, 164, 165, 0, 0, 166,
2979 167, 0, 0, 168, 169, 170, 171, 0, 0, 0,
2980 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982 0, 0, 0, 0, 173, 174, 175, 176, 177, 178,
2983 179, 180, 181, 182, 0, 183, 184, 0, 0, 0,
2984 0, 572, 534, 0, 0, 573, 0, 0, 0, 0,
2985 0, 0, 0, 185, 220, 157, 158, 159, 160, 161,
2986 162, 163, 164, 165, 0, 0, 166, 167, 0, 0,
2987 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
2988 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
2989 0, 0, 718, 0, 0, 0, 0, 0, 0, 0,
2990 0, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2991 182, 663, 183, 184, 0, 0, 308, 309, 310, 311,
2992 312, 313, 314, 315, 316, 317, 318, 319, 320, 0,
2993 185, 321, 322, 0, 0, 308, 309, 310, 311, 312,
2994 313, 314, 315, 316, 317, 318, 319, 320, 0, 0,
2995 321, 322, 0, 0, 0, 0, 0, 0, 323, 0,
2996 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
2997 0, 0, 0, 0, 0, 0, 0, 323, 0, 324,
2998 325, 326, 327, 328, 329, 330, 331, 332, 333
3001 #define yypact_value_is_default(yystate) \
3002 ((yystate) == (-747))
3004 #define yytable_value_is_error(yytable_value) \
3005 ((yytable_value) == (-574))
3009 2, 55, 340, 28, 2, 454, 4, 52, 593, 16,
3010 17, 335, 307, 20, 307, 8, 547, 213, 16, 17,
3011 8, 566, 20, 27, 53, 29, 84, 22, 8, 87,
3012 546, 87, 4, 22, 619, 28, 49, 91, 252, 76,
3013 28, 2, 256, 4, 404, 357, 1, 65, 28, 51,
3014 52, 49, 50, 749, 450, 53, 746, 13, 334, 627,
3015 336, 53, 680, 25, 62, 762, 684, 454, 13, 16,
3016 17, 65, 26, 20, 396, 55, 400, 26, 76, 25,
3017 440, 0, 404, 27, 76, 83, 84, 576, 577, 87,
3018 88, 89, 90, 87, 490, 29, 88, 89, 90, 13,
3019 242, 25, 378, 379, 51, 851, 828, 85, 76, 694,
3020 136, 91, 87, 16, 17, 110, 147, 20, 85, 568,
3021 705, 110, 146, 399, 25, 401, 85, 653, 452, 61,
3022 87, 16, 17, 62, 109, 20, 276, 25, 278, 56,
3023 280, 13, 742, 37, 38, 87, 114, 109, 51, 52,
3024 195, 427, 109, 198, 199, 826, 701, 28, 113, 849,
3025 138, 139, 304, 763, 709, 140, 25, 109, 736, 737,
3026 25, 13, 139, 107, 106, 146, 13, 453, 140, 138,
3027 139, 143, 136, 632, 140, 147, 109, 136, 244, 145,
3028 145, 147, 147, 142, 140, 941, 892, 142, 140, 197,
3029 145, 145, 147, 147, 653, 207, 896, 904, 930, 140,
3030 217, 213, 219, 220, 25, 886, 140, 413, 220, 217,
3031 746, 219, 220, 749, 261, 223, 244, 225, 552, 242,
3032 719, 145, 230, 147, 50, 293, 294, 295, 296, 140,
3033 564, 601, 142, 241, 242, 632, 235, 147, 109, 238,
3034 244, 563, 140, 147, 258, 873, 99, 302, 826, 708,
3035 828, 932, 307, 261, 25, 661, 87, 83, 84, 261,
3036 217, 87, 219, 145, 140, 147, 305, 553, 600, 601,
3037 241, 140, 25, 341, 342, 140, 25, 343, 959, 565,
3038 806, 304, 85, 87, 292, 293, 294, 295, 296, 297,
3039 298, 299, 85, 145, 302, 147, 304, 305, 145, 307,
3040 147, 59, 60, 305, 217, 109, 219, 26, 886, 887,
3041 292, 708, 109, 849, 142, 851, 49, 467, 335, 140,
3042 875, 292, 217, 335, 219, 56, 297, 335, 145, 337,
3043 147, 87, 873, 341, 342, 138, 139, 336, 88, 343,
3044 395, 396, 690, 140, 334, 302, 139, 26, 356, 404,
3045 307, 140, 930, 109, 932, 359, 892, 85, 147, 662,
3046 109, 85, 109, 302, 61, 26, 85, 140, 307, 140,
3047 15, 142, 17, 928, 679, 87, 384, 385, 973, 85,
3048 85, 959, 437, 400, 590, 440, 421, 140, 400, 142,
3049 614, 140, 400, 85, 143, 140, 85, 223, 147, 225,
3050 412, 413, 401, 450, 142, 941, 85, 104, 105, 399,
3051 138, 139, 424, 136, 142, 139, 424, 136, 421, 138,
3052 139, 880, 85, 421, 85, 433, 85, 142, 427, 484,
3053 140, 421, 138, 139, 139, 452, 426, 147, 85, 142,
3054 452, 85, 450, 490, 452, 384, 385, 139, 450, 146,
3055 139, 85, 822, 424, 453, 68, 85, 136, 85, 138,
3056 139, 451, 433, 142, 197, 87, 85, 293, 294, 295,
3057 296, 483, 298, 299, 68, 136, 139, 138, 139, 138,
3058 139, 142, 490, 396, 85, 37, 38, 109, 490, 668,
3059 822, 223, 139, 548, 138, 139, 675, 230, 109, 52,
3060 514, 54, 55, 56, 57, 139, 119, 120, 121, 242,
3061 139, 138, 139, 861, 246, 341, 342, 143, 532, 867,
3062 139, 26, 728, 52, 437, 530, 538, 56, 540, 85,
3063 356, 530, 587, 538, 542, 552, 544, 138, 139, 538,
3064 552, 545, 546, 56, 552, 600, 601, 564, 85, 584,
3065 59, 60, 564, 144, 553, 559, 564, 137, 566, 567,
3066 106, 551, 574, 575, 576, 577, 565, 87, 615, 574,
3067 575, 304, 140, 563, 106, 574, 575, 87, 590, 593,
3068 85, 584, 138, 139, 87, 85, 584, 140, 68, 109,
3069 68, 548, 14, 15, 584, 85, 604, 609, 85, 109,
3070 140, 138, 139, 658, 17, 619, 109, 615, 56, 608,
3071 609, 574, 575, 615, 661, 145, 25, 951, 52, 94,
3072 54, 55, 56, 57, 679, 143, 638, 146, 640, 697,
3073 642, 136, 700, 138, 139, 137, 140, 142, 138, 139,
3074 52, 653, 54, 55, 56, 57, 654, 711, 138, 139,
3075 10, 138, 139, 661, 662, 89, 61, 665, 666, 661,
3076 65, 95, 96, 671, 672, 109, 952, 679, 680, 140,
3077 682, 140, 684, 140, 406, 140, 140, 89, 410, 734,
3078 694, 140, 116, 415, 96, 119, 8, 600, 13, 697,
3079 87, 705, 700, 701, 698, 61, 87, 137, 430, 104,
3080 105, 709, 109, 435, 116, 54, 710, 719, 716, 717,
3081 140, 145, 109, 140, 63, 64, 728, 772, 109, 140,
3082 68, 711, 679, 662, 87, 52, 665, 666, 796, 52,
3083 742, 111, 671, 672, 140, 743, 744, 87, 104, 105,
3084 106, 567, 144, 140, 549, 15, 109, 755, 803, 140,
3085 2, 763, 4, 765, 87, 767, 768, 489, 52, 109,
3086 54, 55, 56, 57, 16, 17, 140, 822, 20, 117,
3087 118, 119, 120, 121, 145, 783, 109, 140, 604, 791,
3088 109, 140, 794, 114, 140, 793, 140, 140, 796, 10,
3089 140, 88, 800, 801, 140, 9, 804, 49, 50, 10,
3090 137, 140, 806, 10, 808, 61, 140, 140, 140, 542,
3091 62, 544, 820, 137, 140, 114, 52, 137, 54, 55,
3092 56, 57, 834, 835, 140, 837, 68, 839, 840, 140,
3093 140, 83, 84, 137, 842, 87, 56, 140, 140, 68,
3094 842, 83, 84, 56, 783, 140, 140, 140, 104, 105,
3095 106, 140, 860, 89, 83, 84, 864, 140, 860, 95,
3096 96, 873, 142, 142, 61, 140, 424, 875, 90, 88,
3097 61, 697, 954, 736, 700, 117, 118, 119, 120, 121,
3098 116, 93, 904, 119, 689, 114, 115, 116, 117, 118,
3099 119, 120, 121, 953, 906, 907, 908, 96, 910, 911,
3100 640, 706, 642, 57, 91, 880, 142, 104, 105, 106,
3101 918, 849, 920, 104, 105, 106, 653, 746, 926, -1,
3102 928, 654, 934, 935, 936, 937, 52, -1, 54, 55,
3103 56, 57, -1, -1, 951, -1, -1, 54, 55, 951,
3104 57, 953, 954, 951, -1, 197, 63, 64, -1, 939,
3105 -1, -1, -1, 952, -1, 967, 968, 969, 970, 973,
3106 950, -1, -1, 89, -1, 217, -1, 219, 220, 981,
3107 796, 223, -1, 225, -1, 707, -1, 989, 230, -1,
3108 -1, -1, -1, 716, 717, 68, -1, -1, -1, 241,
3109 242, -1, 797, -1, 799, -1, -1, 729, -1, -1,
3110 83, 84, -1, -1, 809, -1, -1, -1, 740, 814,
3111 743, 744, 749, -1, 52, 752, 54, 55, 56, 57,
3112 -1, -1, 755, -1, -1, 765, -1, 767, 768, -1,
3113 -1, -1, -1, 116, 117, 118, 119, 120, 121, -1,
3114 292, 293, 294, 295, 296, 297, 298, 299, -1, -1,
3115 302, 89, 304, -1, -1, 307, -1, 95, -1, 52,
3116 793, 54, 55, 56, 57, 870, 871, 800, 801, -1,
3117 -1, 804, 16, 17, -1, -1, 20, -1, -1, -1,
3118 -1, 813, -1, 335, -1, 337, -1, 820, -1, 341,
3119 342, -1, -1, 825, 834, 835, -1, 837, 830, 839,
3120 840, -1, 46, 47, 356, -1, -1, 51, 52, -1,
3121 -1, -1, -1, -1, 851, -1, 853, -1, 62, 63,
3122 -1, 52, 927, 54, 55, 56, 57, -1, -1, -1,
3123 -1, 864, 384, 385, 40, 41, 42, 43, 44, -1,
3124 -1, -1, -1, -1, -1, -1, -1, -1, 400, -1,
3125 955, -1, 957, -1, -1, 892, -1, 894, 89, -1,
3126 -1, 898, -1, -1, 95, -1, 906, 907, 908, -1,
3127 910, 911, 424, 52, -1, 54, 55, 56, 57, -1,
3128 -1, 433, -1, -1, -1, 918, -1, 920, -1, -1,
3129 -1, -1, -1, 926, 934, 935, 936, 937, -1, -1,
3130 452, -1, -1, -1, 941, -1, 943, -1, -1, 946,
3131 89, -1, -1, -1, -1, -1, 95, 96, -1, -1,
3132 -1, -1, -1, -1, 961, -1, -1, 967, 968, 969,
3133 970, -1, -1, -1, -1, -1, -1, 116, -1, -1,
3134 119, 981, -1, -1, -1, -1, 983, -1, -1, 989,
3135 -1, 195, -1, -1, 198, 199, 200, -1, -1, -1,
3136 2, -1, 4, 142, -1, 52, -1, 54, 55, 56,
3137 57, -1, -1, 217, -1, 219, 220, -1, -1, -1,
3138 -1, 2, -1, 4, -1, -1, -1, -1, -1, -1,
3139 542, -1, 544, 52, -1, 54, 55, 56, 57, -1,
3140 552, -1, 89, -1, -1, -1, -1, 49, 95, 96,
3141 -1, 53, 564, -1, 566, 567, -1, -1, -1, -1,
3142 -1, -1, -1, -1, -1, -1, -1, -1, 49, 116,
3143 89, -1, 119, -1, 76, -1, 95, 96, -1, -1,
3144 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
3145 -1, -1, 604, -1, -1, -1, -1, 116, 302, -1,
3146 119, -1, -1, 307, 308, 309, 310, 311, 312, 313,
3147 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
3148 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
3149 -1, 335, -1, -1, -1, -1, -1, -1, -1, -1,
3150 -1, -1, 654, -1, -1, -1, -1, -1, -1, -1,
3151 662, -1, -1, 665, 666, -1, -1, -1, -1, 671,
3152 672, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3153 76, 77, 78, 79, 80, -1, -1, 83, 84, -1,
3154 384, 385, -1, -1, -1, 697, -1, -1, 700, 701,
3155 394, 395, 396, -1, -1, 197, 400, 709, 402, 403,
3156 404, -1, -1, -1, 716, 717, 112, 113, 114, 115,
3157 116, 117, 118, 119, 120, 121, 197, -1, -1, 423,
3158 -1, -1, -1, -1, 428, -1, -1, -1, 230, -1,
3159 -1, 743, 744, 437, -1, -1, 440, -1, -1, 241,
3160 242, -1, -1, 755, -1, -1, -1, -1, 452, 230,
3161 -1, -1, -1, -1, -1, -1, -1, -1, -1, 261,
3162 241, 242, -1, -1, -1, -1, -1, -1, 472, 473,
3163 -1, 783, -1, -1, -1, -1, -1, -1, -1, -1,
3164 484, 793, -1, -1, 796, -1, -1, -1, 800, 801,
3165 292, -1, 804, -1, -1, 297, -1, -1, -1, -1,
3166 -1, -1, 304, 305, -1, -1, -1, 2, 820, 4,
3167 -1, 292, -1, -1, -1, -1, 297, -1, -1, -1,
3168 -1, -1, -1, 304, -1, -1, -1, -1, -1, -1,
3169 -1, -1, -1, -1, -1, 337, -1, 2, -1, 4,
3170 -1, -1, -1, -1, 548, -1, -1, -1, 552, -1,
3171 -1, -1, 864, -1, 49, 2, 337, 4, 53, -1,
3172 564, -1, -1, 875, -1, -1, -1, -1, -1, -1,
3173 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3174 -1, 76, -1, 587, 49, -1, -1, -1, 53, -1,
3175 -1, -1, -1, 88, 89, 90, 600, 601, -1, -1,
3176 -1, -1, 49, -1, -1, -1, 918, -1, 920, -1,
3177 -1, 76, -1, -1, 926, -1, 928, -1, -1, -1,
3178 -1, -1, 424, 88, 89, 90, 91, -1, -1, -1,
3179 -1, 433, -1, -1, -1, -1, -1, -1, -1, 951,
3180 -1, 88, -1, 424, -1, -1, -1, -1, 450, -1,
3181 -1, -1, 433, -1, 658, -1, -1, -1, 662, 663,
3182 -1, 665, 666, -1, -1, -1, -1, 671, 672, 0,
3183 -1, -1, -1, -1, -1, 679, -1, 8, 9, 10,
3184 -1, -1, 13, 14, 15, -1, 17, -1, 490, -1,
3185 -1, -1, -1, -1, -1, -1, 27, -1, -1, -1,
3186 -1, -1, 197, -1, -1, -1, 37, 38, -1, 40,
3187 41, 42, 43, 44, 718, -1, -1, -1, -1, 723,
3188 724, -1, 726, 727, -1, -1, -1, -1, -1, -1,
3189 734, -1, 197, -1, -1, 230, -1, -1, -1, -1,
3190 542, -1, 544, -1, -1, -1, 241, 242, -1, -1,
3191 197, -1, -1, -1, 85, -1, -1, -1, -1, -1,
3192 -1, 542, -1, 544, 566, 230, 261, -1, 772, -1,
3193 -1, -1, 776, -1, -1, -1, 241, 242, -1, 783,
3194 -1, -1, -1, 230, -1, 566, -1, -1, -1, -1,
3195 -1, -1, -1, -1, 241, 242, 261, 292, -1, 803,
3196 -1, -1, 297, -1, -1, -1, 137, -1, 139, 304,
3197 305, 142, 143, 615, 145, -1, 147, 821, 822, -1,
3198 -1, -1, -1, -1, -1, -1, -1, 292, -1, -1,
3199 -1, -1, 297, -1, -1, -1, -1, -1, -1, 304,
3200 305, -1, 337, -1, -1, 292, -1, -1, -1, -1,
3201 297, -1, 654, -1, -1, -1, -1, 304, -1, 661,
3202 307, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3203 -1, -1, 337, 654, -1, -1, -1, -1, -1, -1,
3204 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3205 337, -1, -1, -1, -1, -1, -1, -1, -1, 701,
3206 -1, -1, -1, -1, -1, -1, -1, 709, -1, -1,
3207 -1, -1, -1, -1, 716, 717, -1, -1, -1, -1,
3208 701, -1, -1, -1, -1, -1, -1, -1, 709, 424,
3209 -1, -1, -1, -1, -1, 716, 717, -1, 433, -1,
3210 -1, 743, 744, -1, -1, -1, -1, 951, -1, -1,
3211 -1, -1, -1, 755, -1, 450, -1, -1, -1, 424,
3212 -1, -1, 743, 744, -1, -1, -1, -1, 433, -1,
3213 -1, -1, -1, -1, 755, -1, -1, 424, -1, -1,
3214 -1, -1, -1, -1, -1, 450, 433, -1, -1, -1,
3215 -1, 793, -1, -1, -1, 490, -1, -1, 800, 801,
3216 -1, -1, 804, -1, -1, -1, -1, -1, -1, -1,
3217 -1, -1, 793, -1, -1, -1, -1, -1, 820, 800,
3218 801, -1, -1, 804, -1, 490, -1, -1, -1, -1,
3219 -1, -1, -1, -1, -1, -1, -1, -1, -1, 820,
3220 842, -1, -1, -1, -1, -1, -1, 542, -1, 544,
3221 -1, -1, -1, -1, -1, -1, -1, -1, 860, -1,
3222 -1, -1, 864, -1, -1, -1, -1, -1, -1, -1,
3223 -1, 566, -1, 875, -1, -1, -1, 542, -1, 544,
3224 -1, -1, -1, 864, -1, -1, -1, -1, -1, -1,
3225 -1, -1, -1, -1, 875, 542, -1, 544, -1, -1,
3226 -1, 566, -1, -1, -1, -1, -1, -1, -1, -1,
3227 -1, -1, -1, -1, -1, -1, 918, -1, 920, 566,
3228 615, -1, -1, -1, 926, -1, 928, -1, -1, -1,
3229 -1, -1, -1, -1, -1, -1, -1, 918, -1, 920,
3230 -1, -1, -1, -1, -1, 926, -1, 928, -1, -1,
3231 615, 646, -1, -1, -1, -1, -1, -1, -1, 654,
3232 -1, -1, -1, -1, -1, -1, 661, -1, -1, -1,
3233 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3234 -1, -1, 68, 69, 70, 71, 72, 73, 74, 654,
3235 -1, 77, 78, -1, -1, -1, 661, 83, 84, -1,
3236 -1, -1, -1, -1, -1, -1, 701, 654, -1, -1,
3237 -1, -1, -1, -1, 709, 662, -1, -1, -1, -1,
3238 -1, 716, 717, -1, -1, -1, 112, 113, 114, 115,
3239 116, 117, 118, 119, 120, 121, 701, -1, -1, -1,
3240 -1, -1, -1, -1, 709, -1, -1, -1, 743, 744,
3241 -1, 716, 717, -1, 701, -1, -1, -1, -1, -1,
3242 755, -1, 709, -1, -1, -1, -1, -1, -1, 716,
3243 717, 68, 69, 70, 71, 72, 73, 74, 743, 744,
3244 77, 78, -1, -1, -1, -1, 83, 84, -1, -1,
3245 755, -1, -1, -1, -1, -1, 743, 744, 793, -1,
3246 -1, -1, -1, -1, -1, 800, 801, -1, 755, 804,
3247 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
3248 117, 118, 119, 120, 121, 820, -1, -1, 793, -1,
3249 -1, -1, -1, -1, -1, 800, 801, -1, -1, 804,
3250 -1, -1, -1, -1, -1, -1, 793, 842, -1, -1,
3251 -1, -1, -1, 800, 801, 820, -1, 804, -1, -1,
3252 -1, -1, -1, -1, -1, 860, -1, -1, -1, 864,
3253 -1, -1, -1, 820, -1, -1, -1, 842, -1, -1,
3254 875, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3255 -1, -1, -1, -1, -1, 860, -1, -1, -1, 864,
3256 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3257 875, -1, -1, 860, -1, -1, -1, 864, -1, -1,
3258 -1, -1, -1, 918, -1, 920, -1, -1, 875, -1,
3259 -1, 926, -1, 928, -1, -1, -1, -1, -1, -1,
3260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3261 -1, -1, -1, 918, -1, 920, -1, -1, -1, -1,
3262 -1, 926, -1, 928, -1, -1, -1, -1, -1, -1,
3263 -1, 918, -1, 920, -1, -1, -1, -1, -1, 926,
3264 -1, 928, 0, 1, -1, 3, 4, 5, 6, 7,
3265 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
3266 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3267 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3268 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3269 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3270 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3271 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3272 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3273 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3274 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3275 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3276 -1, -1, -1, 0, 122, 123, 124, -1, -1, -1,
3277 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3278 17, -1, -1, -1, -1, -1, -1, 145, -1, 147,
3279 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3280 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3281 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3282 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3283 84, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3284 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
3285 87, 88, -1, -1, -1, -1, 110, 94, 112, 113,
3286 114, 115, 116, 117, 118, 119, 120, 121, -1, -1,
3287 107, -1, 109, 110, 111, 112, 113, 114, 115, 116,
3288 117, 118, 119, 120, 121, -1, -1, -1, -1, -1,
3289 -1, -1, -1, 147, -1, -1, -1, -1, -1, -1,
3290 137, 138, 139, 140, 0, -1, 143, 144, 145, -1,
3291 147, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3292 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3293 26, 27, 28, -1, -1, -1, -1, -1, -1, -1,
3294 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3295 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
3296 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
3297 83, 84, 68, 69, 70, 71, 72, 73, 74, 75,
3298 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3299 -1, -1, 88, -1, -1, -1, -1, 110, 94, 112,
3300 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3301 -1, -1, -1, -1, 110, -1, 112, 113, 114, 115,
3302 116, 117, 118, 119, 120, 121, -1, -1, -1, -1,
3303 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3304 136, 137, 138, 139, 140, 0, 142, 143, 144, 145,
3305 -1, 147, -1, 8, 9, 10, -1, -1, 13, 14,
3306 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3307 -1, -1, 27, 28, 29, -1, -1, -1, -1, -1,
3308 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3309 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3310 72, 73, 74, 75, -1, 77, 78, -1, -1, -1,
3311 -1, 83, 84, 68, 69, 70, 71, 72, 73, 74,
3312 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3313 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3314 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3315 -1, -1, 107, -1, -1, 110, 111, 112, 113, 114,
3316 115, 116, 117, 118, 119, 120, 121, -1, -1, -1,
3317 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3318 -1, -1, 137, 138, 139, 140, 0, -1, 143, 144,
3319 145, -1, 147, -1, 8, 9, 10, -1, -1, 13,
3320 14, 15, -1, 17, -1, -1, -1, -1, -1, -1,
3321 -1, -1, 26, 27, 28, -1, -1, -1, -1, -1,
3322 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
3323 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3324 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3325 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3326 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3327 84, 85, -1, -1, 88, -1, -1, -1, -1, -1,
3328 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3329 -1, -1, -1, -1, -1, -1, 110, -1, 112, 113,
3330 114, 115, 116, 117, 118, 119, 120, 121, -1, -1,
3331 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3332 -1, -1, 136, 137, 138, 139, 140, 0, 142, 143,
3333 144, 145, -1, 147, -1, 8, 9, 10, -1, -1,
3334 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3335 -1, -1, -1, -1, 27, 28, -1, -1, -1, -1,
3336 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3337 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3338 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3339 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
3340 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
3341 83, 84, 85, -1, -1, 88, -1, -1, -1, -1,
3342 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
3343 -1, -1, -1, -1, -1, -1, -1, 110, -1, 112,
3344 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3345 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3346 -1, -1, -1, -1, 137, 138, 139, 140, 0, 142,
3347 143, 144, 145, -1, 147, -1, 8, 9, 10, -1,
3348 -1, -1, 14, 15, -1, 17, -1, -1, -1, -1,
3349 -1, -1, -1, -1, 26, -1, -1, -1, -1, -1,
3350 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3351 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3352 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3353 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3354 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3355 -1, 83, 84, 85, 0, 87, -1, -1, -1, -1,
3356 -1, -1, 8, 9, 10, -1, -1, -1, 14, 15,
3357 -1, 17, -1, -1, -1, -1, -1, 109, 110, -1,
3358 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3359 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3360 -1, -1, -1, -1, 136, 137, 138, 139, 140, -1,
3361 -1, 143, -1, 145, -1, 147, -1, -1, -1, -1,
3362 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3363 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3364 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1,
3365 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3366 -1, -1, -1, 109, 110, -1, 112, 113, 114, 115,
3367 116, 117, 118, 119, 120, 121, -1, -1, -1, -1,
3368 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3369 -1, 137, 138, 139, 140, -1, -1, 143, -1, 145,
3370 1, 147, 3, 4, 5, 6, 7, 8, 9, 10,
3371 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3372 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3373 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3374 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3375 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3376 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3377 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3378 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3379 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3380 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3381 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3382 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3384 -1, -1, -1, -1, 145, 1, 147, 3, 4, 5,
3385 6, 7, -1, -1, 10, 11, 12, -1, 14, 15,
3386 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3387 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3388 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3389 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3390 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3391 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3393 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3394 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3396 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3398 -1, -1, -1, -1, -1, -1, -1, -1, -1, 145,
3399 1, 147, 3, 4, 5, 6, 7, -1, -1, 10,
3400 11, 12, -1, -1, 15, 16, 17, 18, 19, 20,
3401 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3402 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3403 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3404 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3405 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3406 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3407 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3408 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3409 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3410 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3411 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3412 1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
3413 11, 12, -1, -1, 145, 16, 147, 18, 19, 20,
3414 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3415 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3416 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3417 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3418 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3420 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3421 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3422 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3424 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3425 -1, -1, -1, -1, -1, -1, 137, -1, -1, -1,
3426 -1, -1, -1, -1, 145, 1, 147, 3, 4, 5,
3427 6, 7, -1, -1, 10, 11, 12, -1, -1, 15,
3428 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3429 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3430 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3431 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3432 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3433 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3435 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3436 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3438 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3439 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3440 6, 7, -1, 9, 10, 11, 12, -1, -1, 145,
3441 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3442 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3443 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3444 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3445 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3446 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3448 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3449 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3451 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3452 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3453 6, 7, -1, -1, -1, 11, 12, -1, -1, 145,
3454 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3455 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3456 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3457 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3458 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3459 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3461 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3462 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3463 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3464 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3465 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3466 6, 7, -1, -1, -1, 11, 12, 143, -1, 145,
3467 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3468 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3469 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3470 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3471 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3472 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3473 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3474 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3475 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3477 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3478 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3479 6, 7, -1, -1, -1, 11, 12, 143, -1, 145,
3480 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3481 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3482 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3483 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3484 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3485 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3487 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3488 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3490 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3491 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3492 -1, 137, -1, -1, -1, -1, -1, -1, -1, 145,
3493 1, 147, 3, 4, 5, 6, 7, -1, -1, 10,
3494 11, 12, -1, -1, -1, 16, -1, 18, 19, 20,
3495 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3496 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3497 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3498 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3499 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3501 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3502 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3503 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3505 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3506 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3507 11, 12, -1, -1, 145, 16, 147, 18, 19, 20,
3508 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3509 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3510 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3511 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3512 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3514 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3515 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3516 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3517 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3518 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3519 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3520 32, 33, 34, 35, 36, -1, 147, 39, -1, -1,
3521 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3522 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3523 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3525 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3526 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3527 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3528 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3529 122, 123, 124, -1, -1, -1, -1, -1, -1, -1,
3530 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3531 12, -1, -1, 145, 16, 147, 18, 19, 20, 21,
3532 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3533 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3534 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3535 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3536 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3538 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3539 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3540 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3541 3, 4, 5, 6, 7, -1, -1, -1, 11, 12,
3542 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3543 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3544 33, 34, 35, 36, -1, 147, 39, -1, -1, -1,
3545 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3546 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3547 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3548 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3549 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3550 93, -1, 95, -1, 97, 98, 99, 100, 101, 102,
3551 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3552 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
3553 123, 124, -1, -1, -1, -1, -1, -1, 3, 4,
3554 5, 6, 7, -1, -1, -1, 11, 12, -1, -1,
3555 -1, 16, 145, 18, 19, 20, 21, 22, 23, 24,
3556 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3557 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3558 45, 46, -1, 48, 49, 50, 51, 52, 53, 54,
3559 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3560 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3561 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3562 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3563 95, -1, 97, 98, 99, 100, 101, 102, 103, -1,
3564 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3565 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
3566 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3568 145, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3569 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3570 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3571 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3572 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3573 52, 53, 54, 55, 56, 57, -1, -1, -1, -1,
3574 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3575 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3576 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3577 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
3578 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3579 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3580 -1, 123, 124, -1, -1, -1, -1, -1, 3, 4,
3581 5, -1, 7, -1, -1, -1, 11, 12, -1, 141,
3582 142, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3583 -1, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3584 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3585 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3586 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3587 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3588 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3589 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3590 95, 96, 97, 98, 99, 100, 101, 102, 103, -1,
3591 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3592 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
3593 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3594 -1, 136, -1, 11, 12, -1, -1, 142, 16, -1,
3595 18, 19, 20, 21, 22, 23, 24, -1, 26, -1,
3596 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3597 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3598 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3599 58, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3601 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3602 -1, 89, 90, -1, 92, 93, -1, 95, 96, 97,
3603 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3605 -1, -1, -1, -1, 122, 123, 124, -1, -1, -1,
3606 -1, -1, 3, 4, 5, -1, 7, -1, 136, -1,
3607 11, 12, -1, -1, 142, 16, -1, 18, 19, 20,
3608 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3609 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3610 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3611 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3612 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3613 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3614 -1, -1, -1, -1, -1, 86, 87, -1, 89, 90,
3615 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3616 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
3617 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3618 7, 122, 123, 124, 11, 12, -1, -1, -1, 16,
3619 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3620 -1, 142, -1, 30, 31, 32, 33, 34, 35, 36,
3621 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3622 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3623 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
3624 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3625 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3626 -1, -1, 89, 90, -1, 92, 93, -1, 95, 96,
3627 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
3628 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3629 3, 4, 5, -1, 7, 122, 123, 124, 11, 12,
3630 -1, -1, -1, 16, -1, 18, 19, 20, 21, 22,
3631 23, 24, -1, -1, -1, 142, -1, 30, 31, 32,
3632 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3633 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3634 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3635 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3636 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3637 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3638 93, -1, 95, 96, 97, 98, 99, 100, 101, 102,
3639 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3640 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
3641 123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
3642 -1, -1, -1, -1, -1, -1, -1, -1, -1, 142,
3643 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3644 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3645 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
3646 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
3647 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3648 53, 54, 55, 56, 57, -1, -1, -1, -1, -1,
3649 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
3650 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
3651 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
3652 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3654 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3655 123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
3656 -1, -1, -1, -1, -1, -1, -1, -1, 141, 3,
3657 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3658 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3659 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
3660 34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
3661 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3662 54, -1, 56, -1, -1, -1, -1, -1, -1, -1,
3663 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
3664 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
3665 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3666 -1, 95, -1, -1, 98, -1, -1, -1, -1, -1,
3667 -1, -1, -1, -1, -1, -1, -1, -1, 112, 113,
3668 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
3669 124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3670 -1, -1, -1, -1, -1, -1, -1, 141, 3, 4,
3671 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3672 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3673 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3674 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3675 45, 46, 47, 48, 49, 50, 51, 52, 53, -1,
3676 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3677 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3678 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3679 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3680 95, -1, -1, 98, -1, -1, -1, -1, -1, -1,
3681 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
3682 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
3683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3684 -1, -1, -1, -1, -1, -1, 141, 3, 4, 5,
3685 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3686 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3687 26, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3688 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
3689 46, 47, 48, 49, 50, 51, 52, 53, -1, -1,
3690 56, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3691 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
3692 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
3693 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
3694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3695 -1, -1, -1, -1, -1, -1, 112, 113, 114, 115,
3696 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
3697 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3698 12, -1, -1, -1, 16, 141, 18, 19, 20, 21,
3699 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3700 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3701 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3702 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3703 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
3704 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3705 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3706 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3707 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3708 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3709 122, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3710 20, 21, 22, 23, 24, -1, -1, -1, 140, -1,
3711 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3712 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3713 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3714 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
3715 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3716 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3717 90, -1, 92, 93, -1, -1, -1, 97, 98, 99,
3718 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3719 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
3720 -1, -1, 122, 11, 12, -1, -1, -1, 16, -1,
3721 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3722 140, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3723 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3724 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3725 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3726 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3727 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3728 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3729 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3730 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3731 -1, -1, 11, 12, 122, 123, 124, 16, -1, 18,
3732 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3733 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3734 39, -1, -1, -1, -1, -1, 45, 46, -1, 48,
3735 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3736 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3738 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3739 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3740 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
3741 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3742 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
3743 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3744 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3745 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3746 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3747 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3748 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3749 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3750 90, -1, 92, 93, -1, 95, 96, 97, 98, 99,
3751 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3752 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3753 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
3754 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3755 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3756 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3757 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3758 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3759 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3760 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3761 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3762 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3763 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3764 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3765 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3766 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3767 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3768 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
3769 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3770 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3771 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3772 92, 93, -1, 95, -1, 97, 98, 99, 100, 101,
3773 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3774 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3775 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3776 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3777 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3778 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3779 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3780 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3781 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3782 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3783 93, -1, -1, 96, 97, 98, 99, 100, 101, 102,
3784 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3785 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
3786 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
3787 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3788 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3789 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3790 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
3791 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3793 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3794 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
3795 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3796 5, -1, 7, -1, -1, -1, 11, 12, 122, 123,
3797 124, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3798 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3799 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3800 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3801 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3802 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3804 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3805 -1, -1, 97, 98, 99, 100, 101, 102, 103, -1,
3806 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3807 -1, 7, -1, -1, -1, 11, 12, 122, 123, 124,
3808 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3809 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3810 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3811 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3812 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3813 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3814 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3815 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3816 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3817 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3818 7, -1, -1, -1, 11, 12, 122, 123, 124, 16,
3819 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3820 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3821 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3822 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3823 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3824 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3825 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3826 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3827 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
3828 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3829 -1, -1, -1, 11, 12, 122, 123, 124, 16, -1,
3830 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3831 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3832 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3833 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3834 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3835 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3836 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3837 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3838 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3839 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3840 -1, -1, 11, 12, 122, 123, 124, 16, -1, 18,
3841 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3842 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3843 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3844 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3845 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3846 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3847 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3848 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3849 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
3850 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3851 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
3852 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3853 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3854 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3855 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3856 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3858 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3859 90, -1, 92, 93, -1, 95, -1, 97, 98, 99,
3860 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3861 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3862 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
3863 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3864 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3865 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3866 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3867 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3869 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3870 -1, 92, 93, -1, -1, -1, 97, 98, 99, 100,
3871 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3872 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3873 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3874 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3875 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3876 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3877 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3878 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3879 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3880 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3881 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3882 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3883 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3884 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3885 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3886 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3887 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3888 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3889 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3891 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3892 93, -1, -1, -1, 97, 98, 99, 100, 101, 102,
3893 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3894 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
3895 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
3896 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3897 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3898 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3899 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3900 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3901 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3902 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3903 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
3904 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3905 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
3906 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3907 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3908 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3909 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3910 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
3911 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3912 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3913 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3914 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
3915 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3916 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
3917 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3918 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3919 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3920 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3921 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3922 -1, -1, -1, -1, -1, -1, -1, -1, -1, 83,
3923 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3924 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
3925 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3926 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
3927 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3928 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3929 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3930 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3931 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
3932 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3933 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3934 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
3935 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
3936 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3937 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
3938 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3939 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3940 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3941 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3942 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3943 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3944 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3945 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
3946 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3947 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
3948 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3949 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3950 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3951 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3952 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
3953 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3954 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3955 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
3956 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
3957 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3958 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
3959 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3960 34, 35, 36, -1, -1, 39, -1, 44, -1, -1,
3961 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3962 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3963 64, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3964 77, 78, 79, 80, -1, -1, 83, 84, -1, -1,
3965 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3966 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
3967 -1, -1, -1, 110, -1, 112, 113, 114, 115, 116,
3968 117, 118, 119, 120, 121, -1, -1, -1, 122, -1,
3969 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
3970 -1, -1, -1, 140, 66, 67, 68, 69, 70, 71,
3971 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3972 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3973 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
3974 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3975 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3976 -1, 123, 124, -1, -1, -1, -1, 52, 53, -1,
3977 -1, 56, -1, -1, -1, -1, -1, -1, -1, 141,
3978 142, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3979 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3980 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3981 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3982 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
3983 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
3984 -1, -1, -1, -1, 52, 53, -1, -1, 56, -1,
3985 -1, -1, -1, -1, -1, -1, 141, 142, 66, 67,
3986 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3987 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
3988 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
3989 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3990 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
3991 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
3992 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
3993 -1, -1, -1, 141, 142, 66, 67, 68, 69, 70,
3994 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
3995 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
3996 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
3997 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3998 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
3999 121, -1, 123, 124, -1, -1, -1, -1, 52, 53,
4000 -1, -1, 56, -1, -1, -1, -1, -1, -1, -1,
4001 141, 142, 66, 67, 68, 69, 70, 71, 72, 73,
4002 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4003 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4004 -1, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4005 -1, -1, -1, -1, -1, -1, -1, -1, 112, 113,
4006 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
4007 124, -1, -1, -1, -1, 52, 53, -1, -1, 56,
4008 -1, -1, -1, -1, -1, -1, -1, 141, 142, 66,
4009 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4010 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4011 -1, -1, -1, -1, -1, -1, -1, -1, 95, -1,
4012 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4013 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
4014 117, 118, 119, 120, 121, -1, 123, 124, -1, -1,
4015 -1, -1, 52, 53, -1, -1, 56, -1, -1, -1,
4016 -1, -1, -1, -1, 141, 142, 66, 67, 68, 69,
4017 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4018 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4019 -1, -1, -1, -1, -1, 95, -1, -1, -1, -1,
4020 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4021 -1, -1, 112, 113, 114, 115, 116, 117, 118, 119,
4022 120, 121, -1, 123, 124, -1, -1, -1, -1, 52,
4023 53, -1, -1, 56, -1, -1, -1, -1, -1, -1,
4024 -1, 141, 142, 66, 67, 68, 69, 70, 71, 72,
4025 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4026 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4027 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
4028 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
4029 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
4030 123, 124, -1, -1, -1, -1, 52, 53, -1, -1,
4031 56, -1, -1, -1, -1, -1, -1, -1, 141, 142,
4032 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4033 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4034 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4035 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4036 -1, -1, -1, -1, -1, -1, 112, 113, 114, 115,
4037 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
4038 -1, -1, -1, 52, 53, -1, -1, 56, -1, -1,
4039 -1, -1, -1, -1, -1, 141, 142, 66, 67, 68,
4040 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4041 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4042 -1, -1, -1, -1, -1, -1, 95, -1, -1, -1,
4043 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4044 -1, -1, -1, 112, 113, 114, 115, 116, 117, 118,
4045 119, 120, 121, -1, 123, 124, -1, -1, -1, -1,
4046 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4047 -1, -1, 141, 142, 66, 67, 68, 69, 70, 71,
4048 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4049 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4050 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
4051 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4052 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4053 -1, 123, 124, -1, -1, -1, -1, 52, 53, -1,
4054 -1, 56, -1, -1, -1, -1, -1, -1, -1, 141,
4055 142, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4056 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4057 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4058 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4059 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
4060 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
4061 -1, -1, -1, -1, 52, 53, -1, -1, 56, -1,
4062 -1, -1, -1, -1, -1, -1, 141, 142, 66, 67,
4063 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4064 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4065 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
4066 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4067 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
4068 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
4069 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
4070 -1, -1, -1, 141, 142, 66, 67, 68, 69, 70,
4071 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4072 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4073 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
4074 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
4075 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
4076 121, 44, 123, 124, -1, -1, 68, 69, 70, 71,
4077 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
4078 141, 83, 84, -1, -1, 68, 69, 70, 71, 72,
4079 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
4080 83, 84, -1, -1, -1, -1, -1, -1, 110, -1,
4081 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4082 -1, -1, -1, -1, -1, -1, -1, 110, -1, 112,
4083 113, 114, 115, 116, 117, 118, 119, 120, 121
4090 0, 149, 150, 0, 1, 3, 4, 5, 6, 7,
4091 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4092 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4093 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4094 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4095 90, 92, 93, 95, 97, 98, 99, 100, 101, 102,
4096 103, 122, 123, 124, 151, 152, 153, 158, 160, 161,
4097 163, 164, 167, 168, 170, 171, 172, 174, 175, 185,
4098 199, 216, 217, 218, 219, 220, 221, 222, 223, 224,
4099 225, 226, 249, 250, 260, 261, 262, 263, 264, 265,
4100 266, 269, 279, 281, 282, 283, 284, 285, 286, 287,
4101 310, 321, 153, 3, 4, 5, 6, 7, 8, 9,
4102 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4103 20, 21, 22, 23, 24, 25, 26, 30, 31, 32,
4104 33, 34, 35, 36, 37, 38, 39, 45, 46, 47,
4105 48, 49, 50, 51, 52, 53, 56, 66, 67, 68,
4106 69, 70, 71, 72, 73, 74, 77, 78, 81, 82,
4107 83, 84, 95, 112, 113, 114, 115, 116, 117, 118,
4108 119, 120, 121, 123, 124, 141, 178, 179, 180, 181,
4109 183, 184, 279, 281, 39, 58, 86, 89, 95, 96,
4110 123, 167, 175, 185, 187, 192, 195, 197, 216, 283,
4111 284, 286, 287, 308, 309, 192, 192, 142, 193, 194,
4112 142, 189, 193, 142, 147, 315, 54, 180, 315, 154,
4113 136, 21, 22, 30, 31, 32, 185, 216, 310, 185,
4114 56, 1, 89, 156, 157, 158, 169, 170, 321, 161,
4115 188, 197, 308, 321, 187, 307, 308, 321, 46, 86,
4116 122, 140, 174, 199, 216, 283, 284, 287, 242, 243,
4117 54, 55, 57, 178, 272, 280, 271, 272, 273, 146,
4118 267, 146, 270, 59, 60, 163, 185, 185, 145, 147,
4119 314, 319, 320, 40, 41, 42, 43, 44, 37, 38,
4120 28, 247, 109, 140, 89, 95, 171, 109, 68, 69,
4121 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
4122 80, 83, 84, 110, 112, 113, 114, 115, 116, 117,
4123 118, 119, 120, 121, 85, 138, 139, 200, 161, 162,
4124 162, 203, 205, 162, 314, 320, 86, 168, 175, 216,
4125 232, 283, 284, 287, 52, 56, 83, 86, 176, 177,
4126 216, 283, 284, 287, 177, 33, 34, 35, 36, 49,
4127 50, 51, 52, 56, 142, 178, 285, 305, 85, 139,
4128 26, 136, 251, 263, 87, 87, 189, 193, 251, 140,
4129 187, 56, 187, 187, 109, 88, 140, 196, 321, 85,
4130 138, 139, 87, 87, 140, 196, 192, 315, 316, 192,
4131 191, 192, 197, 308, 321, 161, 316, 161, 54, 63,
4132 64, 159, 142, 186, 136, 156, 85, 139, 87, 158,
4133 169, 143, 314, 320, 316, 201, 144, 140, 147, 318,
4134 140, 318, 137, 318, 315, 56, 59, 60, 171, 173,
4135 140, 85, 138, 139, 244, 61, 104, 105, 106, 274,
4136 106, 274, 106, 65, 274, 106, 106, 268, 274, 106,
4137 61, 106, 68, 68, 145, 153, 162, 162, 162, 162,
4138 158, 161, 161, 248, 95, 163, 187, 197, 198, 169,
4139 140, 174, 140, 160, 163, 175, 185, 187, 198, 185,
4140 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
4141 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
4142 185, 185, 185, 185, 185, 52, 53, 56, 183, 189,
4143 311, 312, 191, 52, 53, 56, 183, 189, 311, 155,
4144 156, 13, 228, 319, 228, 162, 162, 314, 17, 254,
4145 56, 85, 138, 139, 25, 161, 52, 56, 176, 1,
4146 113, 288, 319, 85, 138, 139, 212, 306, 213, 85,
4147 139, 313, 52, 56, 311, 311, 253, 252, 163, 185,
4148 163, 185, 94, 165, 182, 185, 187, 95, 187, 195,
4149 308, 52, 56, 191, 52, 56, 309, 316, 143, 316,
4150 140, 140, 316, 180, 202, 185, 151, 137, 311, 311,
4151 185, 316, 158, 316, 308, 140, 173, 52, 56, 191,
4152 52, 56, 52, 54, 55, 56, 57, 89, 95, 96,
4153 116, 119, 142, 245, 291, 292, 293, 294, 295, 296,
4154 299, 300, 301, 302, 303, 276, 275, 146, 274, 146,
4155 185, 185, 76, 114, 237, 238, 321, 187, 140, 316,
4156 173, 140, 109, 44, 315, 87, 87, 189, 193, 315,
4157 317, 87, 87, 189, 190, 193, 321, 10, 227, 8,
4158 256, 321, 156, 13, 156, 27, 229, 319, 229, 254,
4159 197, 227, 52, 56, 191, 52, 56, 207, 210, 319,
4160 289, 209, 52, 56, 176, 191, 155, 161, 142, 290,
4161 291, 214, 190, 193, 190, 193, 237, 237, 44, 166,
4162 180, 187, 196, 87, 87, 317, 87, 87, 308, 161,
4163 137, 318, 171, 317, 109, 52, 89, 95, 233, 234,
4164 235, 293, 291, 29, 107, 246, 140, 304, 321, 140,
4165 304, 52, 140, 304, 52, 277, 54, 55, 57, 278,
4166 287, 52, 145, 236, 239, 295, 297, 298, 301, 303,
4167 321, 156, 95, 187, 173, 185, 111, 163, 185, 163,
4168 185, 165, 144, 87, 163, 185, 163, 185, 165, 187,
4169 198, 257, 321, 15, 231, 321, 14, 230, 231, 231,
4170 204, 206, 227, 140, 228, 317, 162, 319, 162, 155,
4171 317, 227, 316, 291, 155, 319, 178, 156, 156, 185,
4172 237, 87, 140, 316, 187, 235, 140, 293, 140, 316,
4173 239, 156, 156, 294, 299, 301, 303, 295, 296, 301,
4174 295, 156, 109, 52, 240, 241, 292, 239, 114, 140,
4175 304, 140, 304, 140, 304, 10, 187, 185, 163, 185,
4176 88, 258, 321, 156, 9, 259, 321, 162, 227, 227,
4177 156, 156, 187, 156, 229, 211, 319, 227, 316, 227,
4178 215, 10, 137, 156, 316, 234, 140, 95, 233, 316,
4179 10, 137, 140, 304, 140, 304, 140, 304, 140, 304,
4180 304, 137, 86, 216, 140, 114, 298, 301, 295, 297,
4181 301, 295, 86, 175, 216, 283, 284, 287, 228, 156,
4182 228, 227, 227, 231, 254, 255, 208, 155, 290, 137,
4183 140, 234, 140, 293, 295, 301, 295, 295, 56, 85,
4184 241, 140, 304, 140, 304, 304, 140, 304, 304, 56,
4185 85, 138, 139, 156, 156, 156, 227, 155, 234, 140,
4186 304, 140, 304, 304, 304, 52, 56, 295, 301, 295,
4187 295, 52, 56, 191, 52, 56, 256, 230, 227, 227,
4188 234, 295, 304, 140, 304, 304, 304, 317, 304, 295,
4192 #define yyerrok (yyerrstatus = 0)
4193 #define yyclearin (yychar = YYEMPTY)
4194 #define YYEMPTY (-2)
4197 #define YYACCEPT goto yyacceptlab
4198 #define YYABORT goto yyabortlab
4199 #define YYERROR goto yyerrorlab
4209 #define YYFAIL goto yyerrlab
4217 #define YYRECOVERING() (!!yyerrstatus)
4219 #define YYBACKUP(Token, Value) \
4221 if (yychar == YYEMPTY && yylen == 1) \
4230 parser_yyerror (parser, YY_("syntax error: cannot back up")); \
4237 #define YYERRCODE 256
4244 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4245 #ifndef YYLLOC_DEFAULT
4246 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4250 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4251 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4252 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4253 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4257 (Current).first_line = (Current).last_line = \
4258 YYRHSLOC (Rhs, 0).last_line; \
4259 (Current).first_column = (Current).last_column = \
4260 YYRHSLOC (Rhs, 0).last_column; \
4268 #ifndef YY_LOCATION_PRINT
4269 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4276 # define YYLEX yylex (&yylval, YYLEX_PARAM)
4278 # define YYLEX yylex (&yylval, parser)
4286 # define YYFPRINTF fprintf
4289 # define YYDPRINTF(Args) \
4295 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4299 YYFPRINTF (stderr, "%s ", Title); \
4300 yy_symbol_print (stderr, \
4301 Type, Value, parser); \
4302 YYFPRINTF (stderr, "\n"); \
4312 #if (defined __STDC__ || defined __C99__FUNC__ \
4313 || defined __cplusplus || defined _MSC_VER)
4330 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4346 #if (defined __STDC__ || defined __C99__FUNC__ \
4347 || defined __cplusplus || defined _MSC_VER)
4360 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4362 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4373 #if (defined __STDC__ || defined __C99__FUNC__ \
4374 || defined __cplusplus || defined _MSC_VER)
4385 for (; yybottom <= yytop; yybottom++)
4387 int yybot = *yybottom;
4393 # define YY_STACK_PRINT(Bottom, Top) \
4396 yy_stack_print ((Bottom), (Top)); \
4404 #if (defined __STDC__ || defined __C99__FUNC__ \
4405 || defined __cplusplus || defined _MSC_VER)
4416 int yynrhs = yyr2[yyrule];
4418 unsigned long int yylno = yyrline[yyrule];
4419 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4422 for (yyi = 0; yyi < yynrhs; yyi++)
4426 &(yyvsp[(yyi + 1) - (yynrhs)])
4432 # define YY_REDUCE_PRINT(Rule) \
4435 yy_reduce_print (yyvsp, Rule, parser); \
4444 # define YYDPRINTF(Args)
4445 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4446 # define YY_STACK_PRINT(Bottom, Top)
4447 # define YY_REDUCE_PRINT(Rule)
4453 # define YYINITDEPTH 200
4464 # define YYMAXDEPTH 10000
4471 # if defined __GLIBC__ && defined _STRING_H
4472 # define yystrlen strlen
4475 #if (defined __STDC__ || defined __C99__FUNC__ \
4476 || defined __cplusplus || defined _MSC_VER)
4486 for (yylen = 0; yystr[yylen]; yylen++)
4494 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4495 # define yystpcpy stpcpy
4499 #if (defined __STDC__ || defined __C99__FUNC__ \
4500 || defined __cplusplus || defined _MSC_VER)
4502 yystpcpy (
char *yydest,
const char *yysrc)
4511 const char *yys = yysrc;
4513 while ((*yyd++ = *yys++) !=
'\0')
4535 char const *yyp = yystr;
4542 goto do_not_strip_quotes;
4546 goto do_not_strip_quotes;
4559 do_not_strip_quotes: ;
4565 return yystpcpy (yyres, yystr) - yyres;
4584 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4586 const char *yyformat = 0;
4588 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4622 int yyn = yypact[*yyssp];
4623 yyarg[yycount++] = yytname[yytoken];
4629 int yyxbegin = yyn < 0 ? -yyn : 0;
4631 int yychecklim =
YYLAST - yyn + 1;
4635 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4636 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR
4639 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4645 yyarg[yycount++] = yytname[yyx];
4646 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
4647 if (! (yysize <= yysize1
4657 # define YYCASE_(N, S) \
4662 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
4663 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4664 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4665 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4666 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4670 yysize1 = yysize +
yystrlen (yyformat);
4675 if (*yymsg_alloc < yysize)
4677 *yymsg_alloc = 2 * yysize;
4678 if (! (yysize <= *yymsg_alloc
4690 while ((*yyp = *yyformat) !=
'\0')
4691 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
4711 #if (defined __STDC__ || defined __C99__FUNC__ \
4712 || defined __cplusplus || defined _MSC_VER)
4741 #ifdef YYPARSE_PARAM
4742 #if defined __STDC__ || defined __cplusplus
4748 #if defined __STDC__ || defined __cplusplus
4760 #ifdef YYPARSE_PARAM
4761 #if (defined __STDC__ || defined __C99__FUNC__ \
4762 || defined __cplusplus || defined _MSC_VER)
4768 void *YYPARSE_PARAM;
4771 #if (defined __STDC__ || defined __C99__FUNC__ \
4772 || defined __cplusplus || defined _MSC_VER)
4825 char *yymsg = yymsgbuf;
4826 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
4829 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4840 YYDPRINTF ((stderr,
"Starting parse\n"));
4867 if (yyss + yystacksize - 1 <= yyssp)
4870 YYSIZE_T yysize = yyssp - yyss + 1;
4884 yyoverflow (
YY_(
"memory exhausted"),
4885 &yyss1, yysize *
sizeof (*yyssp),
4886 &yyvs1, yysize *
sizeof (*yyvsp),
4893 # ifndef YYSTACK_RELOCATE
4894 goto yyexhaustedlab;
4898 goto yyexhaustedlab;
4908 goto yyexhaustedlab;
4911 # undef YYSTACK_RELOCATE
4918 yyssp = yyss + yysize - 1;
4919 yyvsp = yyvs + yysize - 1;
4921 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
4922 (
unsigned long int) yystacksize));
4924 if (yyss + yystacksize - 1 <= yyssp)
4928 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
4944 yyn = yypact[yystate];
4953 YYDPRINTF ((stderr,
"Reading a token: "));
4957 if (yychar <=
YYEOF)
4959 yychar = yytoken =
YYEOF;
4960 YYDPRINTF ((stderr,
"Now at end of input.\n"));
4971 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5003 yyn = yydefact[yystate];
5024 yyval = yyvsp[1-yylen];
5033 #line 785 "ripper.y"
5047 #line 794 "ripper.y"
5054 NODE *node = (yyvsp[(2) - (2)].
val);
5055 while (node->nd_next) {
5056 node = node->nd_next;
5063 (yyval.
val) = (yyvsp[(2) - (2)].val);
5064 parser->result = dispatch1(program, (yyval.
val));
5073 #line 817 "ripper.y"
5080 (yyval.
val) = (yyvsp[(1) - (2)].val);
5087 #line 828 "ripper.y"
5092 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5101 #line 837 "ripper.y"
5106 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5114 #line 845 "ripper.y"
5119 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5127 #line 853 "ripper.y"
5136 #line 860 "ripper.y"
5151 #line 870 "ripper.y"
5155 (yyvsp[(4) - (5)].val));
5160 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].val));
5168 #line 887 "ripper.y"
5171 (yyval.
val) = (yyvsp[(1) - (4)].val);
5172 if ((yyvsp[(2) - (4)].val)) {
5173 (yyval.
val) =
NEW_RESCUE((yyvsp[(1) - (4)].val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].val));
5175 else if ((yyvsp[(3) - (4)].val)) {
5176 rb_warn0(
"else without rescue is useless");
5179 if ((yyvsp[(4) - (4)].val)) {
5189 (yyval.
val) = dispatch4(bodystmt,
5201 #line 917 "ripper.y"
5208 (yyval.
val) = (yyvsp[(1) - (2)].val);
5215 #line 928 "ripper.y"
5220 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5229 #line 937 "ripper.y"
5234 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5242 #line 945 "ripper.y"
5247 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5255 #line 953 "ripper.y"
5264 #line 958 "ripper.y"
5271 #line 959 "ripper.y"
5274 (yyval.
val) =
NEW_ALIAS((yyvsp[(2) - (4)].val), (yyvsp[(4) - (4)].
val));
5276 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].val), (yyvsp[(4) - (4)].
val));
5284 #line 967 "ripper.y"
5289 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
5297 #line 975 "ripper.y"
5302 buf[1] = (char)(yyvsp[(3) - (3)].val)->nd_nth;
5305 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
5313 #line 986 "ripper.y"
5316 yyerror(
"can't make alias for the number variables");
5319 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
5320 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5328 #line 996 "ripper.y"
5331 (yyval.
val) = (yyvsp[(2) - (2)].val);
5333 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].val));
5341 #line 1004 "ripper.y"
5347 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5355 #line 1013 "ripper.y"
5361 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5369 #line 1022 "ripper.y"
5373 (yyval.
val) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val)->nd_body, 0);
5376 (yyval.
val) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val), 1);
5379 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5387 #line 1035 "ripper.y"
5391 (yyval.
val) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val)->nd_body, 0);
5394 (yyval.
val) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val), 1);
5397 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5405 #line 1048 "ripper.y"
5411 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5419 #line 1057 "ripper.y"
5422 rb_warn0(
"END in method; use at_exit");
5426 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].val) , 0 ));
5428 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].val));
5436 #line 1070 "ripper.y"
5440 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5441 (yyval.
val) = (yyvsp[(1) - (3)].val);
5443 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5451 #line 1080 "ripper.y"
5455 if ((yyvsp[(1) - (3)].val)) {
5457 if ((yyvsp[(2) - (3)].val) ==
tOROP) {
5458 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5464 else if ((yyvsp[(2) - (3)].val) ==
tANDOP) {
5465 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5469 (yyval.
val) = (yyvsp[(1) - (3)].val);
5477 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].val));
5485 #line 1109 "ripper.y"
5491 if (!(yyvsp[(3) - (6)].val)) (yyvsp[(3) - (6)].
val) =
NEW_ZARRAY();
5492 args =
arg_concat((yyvsp[(3) - (6)].val), (yyvsp[(6) - (6)].val));
5493 if ((yyvsp[(5) - (6)].val) ==
tOROP) {
5494 (yyvsp[(5) - (6)].
val) = 0;
5496 else if ((yyvsp[(5) - (6)].val) ==
tANDOP) {
5497 (yyvsp[(5) - (6)].
val) = 1;
5502 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].val),
escape_Qundef((yyvsp[(3) - (6)].val)));
5503 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].val));
5511 #line 1130 "ripper.y"
5515 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
5516 (yyvsp[(4) - (5)].
val) = 0;
5518 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
5519 (yyvsp[(4) - (5)].
val) = 1;
5521 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
5524 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
5525 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5533 #line 1147 "ripper.y"
5537 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
5538 (yyvsp[(4) - (5)].
val) = 0;
5540 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
5541 (yyvsp[(4) - (5)].
val) = 1;
5543 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
5546 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
5547 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5555 #line 1164 "ripper.y"
5558 yyerror(
"constant re-assignment");
5561 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val));
5562 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5563 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5571 #line 1175 "ripper.y"
5575 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
5576 (yyvsp[(4) - (5)].
val) = 0;
5578 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
5579 (yyvsp[(4) - (5)].
val) = 1;
5581 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
5584 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_intern(
"::"), (yyvsp[(3) - (5)].
val));
5585 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5593 #line 1192 "ripper.y"
5599 (yyval.
val) = dispatch2(assign, dispatch1(var_field, (yyvsp[(1) - (3)].val)), (yyvsp[(3) - (3)].val));
5600 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5608 #line 1202 "ripper.y"
5614 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5622 #line 1211 "ripper.y"
5625 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5626 (yyval.
val) = (yyvsp[(1) - (3)].val);
5628 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5636 #line 1220 "ripper.y"
5639 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5640 (yyval.
val) = (yyvsp[(1) - (3)].val);
5642 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5650 #line 1232 "ripper.y"
5656 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5664 #line 1241 "ripper.y"
5670 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5678 #line 1254 "ripper.y"
5683 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"and"), (yyvsp[(3) - (3)].
val));
5691 #line 1262 "ripper.y"
5696 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"or"), (yyvsp[(3) - (3)].
val));
5704 #line 1270 "ripper.y"
5717 #line 1278 "ripper.y"
5730 #line 1289 "ripper.y"
5734 (yyval.
val) = (yyvsp[(1) - (1)].val);
5737 (yyval.
val) = (yyvsp[(1) - (1)].val);
5745 #line 1306 "ripper.y"
5748 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5750 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
5751 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5759 #line 1315 "ripper.y"
5762 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5764 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_intern(
"::"), (yyvsp[(3) - (4)].
val));
5765 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5773 #line 1326 "ripper.y"
5786 #line 1336 "ripper.y"
5789 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
5792 (yyval.
val) = dispatch2(brace_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
5801 #line 1348 "ripper.y"
5804 (yyval.
val) =
NEW_FCALL((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
5807 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
5815 #line 1357 "ripper.y"
5820 (yyval.
val) = (yyvsp[(3) - (3)].val);
5823 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
5824 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(3) - (3)].
val));
5832 #line 1369 "ripper.y"
5835 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5846 #line 1378 "ripper.y"
5850 (yyvsp[(5) - (5)].
val)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val));
5851 (yyval.
val) = (yyvsp[(5) - (5)].val);
5855 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5863 #line 1390 "ripper.y"
5866 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5877 #line 1399 "ripper.y"
5881 (yyvsp[(5) - (5)].
val)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val));
5882 (yyval.
val) = (yyvsp[(5) - (5)].val);
5886 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5894 #line 1411 "ripper.y"
5900 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].val));
5908 #line 1420 "ripper.y"
5914 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].val));
5922 #line 1429 "ripper.y"
5927 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].val));
5935 #line 1437 "ripper.y"
5940 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].val));
5948 #line 1445 "ripper.y"
5953 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].val));
5961 #line 1456 "ripper.y"
5964 (yyval.
val) = (yyvsp[(2) - (3)].val);
5966 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
5974 #line 1467 "ripper.y"
5979 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
5987 #line 1477 "ripper.y"
5992 (yyval.
val) = (yyvsp[(1) - (1)].val);
6000 #line 1485 "ripper.y"
6005 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
6013 #line 1493 "ripper.y"
6016 (yyval.
val) =
NEW_MASGN((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6018 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6026 #line 1501 "ripper.y"
6031 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val));
6032 (yyval.
val) = mlhs_add((yyvsp[(1) - (5)].val), (yyvsp[(5) - (5)].
val));
6040 #line 1510 "ripper.y"
6045 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].val),
Qnil);
6053 #line 1518 "ripper.y"
6058 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].val),
Qnil);
6059 (yyval.
val) = mlhs_add((yyvsp[(1) - (4)].val), (yyvsp[(4) - (4)].
val));
6067 #line 1527 "ripper.y"
6072 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6080 #line 1535 "ripper.y"
6085 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6086 (yyval.
val) = mlhs_add((yyvsp[(2) - (4)].val), (yyvsp[(4) - (4)].
val));
6094 #line 1544 "ripper.y"
6099 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6107 #line 1552 "ripper.y"
6112 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6113 (yyval.
val) = mlhs_add((yyval.
val), (yyvsp[(3) - (3)].
val));
6121 #line 1564 "ripper.y"
6124 (yyval.
val) = (yyvsp[(2) - (3)].val);
6126 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
6134 #line 1574 "ripper.y"
6139 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6147 #line 1582 "ripper.y"
6152 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
6160 #line 1592 "ripper.y"
6165 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6173 #line 1600 "ripper.y"
6178 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6186 #line 1610 "ripper.y"
6195 #line 1614 "ripper.y"
6204 #line 1618 "ripper.y"
6207 (yyval.
val) =
aryset((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
6209 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].val),
escape_Qundef((yyvsp[(3) - (4)].val)));
6217 #line 1626 "ripper.y"
6220 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6222 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6230 #line 1634 "ripper.y"
6233 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6235 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6243 #line 1642 "ripper.y"
6246 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6248 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6256 #line 1650 "ripper.y"
6260 yyerror(
"dynamic constant assignment");
6264 yyerror(
"dynamic constant assignment");
6265 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6273 #line 1662 "ripper.y"
6277 yyerror(
"dynamic constant assignment");
6280 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].val));
6288 #line 1672 "ripper.y"
6294 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (1)].val));
6295 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6303 #line 1684 "ripper.y"
6309 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6317 #line 1693 "ripper.y"
6323 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6331 #line 1702 "ripper.y"
6334 (yyval.
val) =
aryset((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
6336 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].val),
escape_Qundef((yyvsp[(3) - (4)].val)));
6344 #line 1710 "ripper.y"
6347 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6349 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6357 #line 1718 "ripper.y"
6360 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6362 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
6370 #line 1726 "ripper.y"
6373 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6375 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6383 #line 1734 "ripper.y"
6387 yyerror(
"dynamic constant assignment");
6390 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6392 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6401 #line 1747 "ripper.y"
6405 yyerror(
"dynamic constant assignment");
6408 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].val));
6410 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6419 #line 1760 "ripper.y"
6425 (yyval.
val) = dispatch1(assign_error, (yyvsp[(1) - (1)].val));
6433 #line 1771 "ripper.y"
6436 yyerror(
"class/module name must be CONSTANT");
6438 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].val));
6446 #line 1782 "ripper.y"
6451 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].val));
6459 #line 1790 "ripper.y"
6464 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].val));
6472 #line 1798 "ripper.y"
6477 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6485 #line 1811 "ripper.y"
6488 (yyval.
val) = (yyvsp[(1) - (1)].val);
6495 #line 1816 "ripper.y"
6499 (yyval.
val) = (yyvsp[(1) - (1)].
id);
6501 (yyval.
val) = (yyvsp[(1) - (1)].val);
6509 #line 1831 "ripper.y"
6514 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].val));
6522 #line 1842 "ripper.y"
6535 #line 1849 "ripper.y"
6542 #line 1850 "ripper.y"
6547 rb_ary_push((yyvsp[(1) - (4)].val), (yyvsp[(4) - (4)].val));
6555 #line 1859 "ripper.y"
6562 #line 1860 "ripper.y"
6569 #line 1861 "ripper.y"
6576 #line 1862 "ripper.y"
6583 #line 1863 "ripper.y"
6590 #line 1864 "ripper.y"
6597 #line 1865 "ripper.y"
6604 #line 1866 "ripper.y"
6611 #line 1867 "ripper.y"
6618 #line 1868 "ripper.y"
6625 #line 1869 "ripper.y"
6632 #line 1870 "ripper.y"
6639 #line 1871 "ripper.y"
6646 #line 1872 "ripper.y"
6653 #line 1873 "ripper.y"
6660 #line 1874 "ripper.y"
6667 #line 1875 "ripper.y"
6674 #line 1876 "ripper.y"
6681 #line 1877 "ripper.y"
6688 #line 1878 "ripper.y"
6695 #line 1879 "ripper.y"
6702 #line 1880 "ripper.y"
6709 #line 1881 "ripper.y"
6716 #line 1882 "ripper.y"
6723 #line 1883 "ripper.y"
6730 #line 1884 "ripper.y"
6737 #line 1885 "ripper.y"
6744 #line 1886 "ripper.y"
6751 #line 1887 "ripper.y"
6758 #line 1905 "ripper.y"
6764 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6772 #line 1914 "ripper.y"
6779 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (5)].val), dispatch2(rescue_mod, (yyvsp[(3) - (5)].val), (yyvsp[(5) - (5)].val)));
6787 #line 1924 "ripper.y"
6791 if ((yyvsp[(1) - (3)].val)) {
6793 if ((yyvsp[(2) - (3)].val) ==
tOROP) {
6794 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
6800 else if ((yyvsp[(2) - (3)].val) ==
tANDOP) {
6801 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
6805 (yyval.
val) = (yyvsp[(1) - (3)].val);
6813 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].val));
6821 #line 1953 "ripper.y"
6826 if ((yyvsp[(1) - (5)].val)) {
6828 if ((yyvsp[(2) - (5)].val) ==
tOROP) {
6829 (yyvsp[(1) - (5)].
val)->
nd_value = (yyvsp[(3) - (5)].val);
6835 else if ((yyvsp[(2) - (5)].val) ==
tANDOP) {
6836 (yyvsp[(1) - (5)].
val)->
nd_value = (yyvsp[(3) - (5)].val);
6840 (yyval.
val) = (yyvsp[(1) - (5)].val);
6848 (yyvsp[(3) - (5)].
val) = dispatch2(rescue_mod, (yyvsp[(3) - (5)].val), (yyvsp[(5) - (5)].
val));
6849 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].val));
6857 #line 1984 "ripper.y"
6863 if (!(yyvsp[(3) - (6)].val)) (yyvsp[(3) - (6)].
val) =
NEW_ZARRAY();
6865 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].val), (yyvsp[(6) - (6)].val));
6868 args =
arg_concat((yyvsp[(3) - (6)].val), (yyvsp[(6) - (6)].val));
6870 if ((yyvsp[(5) - (6)].val) ==
tOROP) {
6871 (yyvsp[(5) - (6)].
val) = 0;
6873 else if ((yyvsp[(5) - (6)].val) ==
tANDOP) {
6874 (yyvsp[(5) - (6)].
val) = 1;
6879 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].val),
escape_Qundef((yyvsp[(3) - (6)].val)));
6880 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].val));
6888 #line 2010 "ripper.y"
6892 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
6893 (yyvsp[(4) - (5)].
val) = 0;
6895 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
6896 (yyvsp[(4) - (5)].
val) = 1;
6898 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
6901 (yyvsp[(1) - (5)].
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
6902 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6910 #line 2027 "ripper.y"
6914 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
6915 (yyvsp[(4) - (5)].
val) = 0;
6917 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
6918 (yyvsp[(4) - (5)].
val) = 1;
6920 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
6923 (yyvsp[(1) - (5)].
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
6924 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6932 #line 2044 "ripper.y"
6936 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
6937 (yyvsp[(4) - (5)].
val) = 0;
6939 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
6940 (yyvsp[(4) - (5)].
val) = 1;
6942 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
6945 (yyvsp[(1) - (5)].
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_intern(
"::"), (yyvsp[(3) - (5)].
val));
6946 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6954 #line 2061 "ripper.y"
6957 yyerror(
"constant re-assignment");
6960 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val));
6961 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6962 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6970 #line 2072 "ripper.y"
6973 yyerror(
"constant re-assignment");
6976 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (4)].val));
6977 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
6978 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6986 #line 2083 "ripper.y"
6992 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (3)].val));
6993 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].val));
6994 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
7002 #line 2094 "ripper.y"
7007 (yyval.
val) =
NEW_DOT2((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7013 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7021 #line 2108 "ripper.y"
7026 (yyval.
val) =
NEW_DOT3((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7032 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7040 #line 2122 "ripper.y"
7045 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'+'), (yyvsp[(3) - (3)].
val));
7053 #line 2130 "ripper.y"
7058 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'-'), (yyvsp[(3) - (3)].
val));
7066 #line 2138 "ripper.y"
7071 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'*'), (yyvsp[(3) - (3)].
val));
7079 #line 2146 "ripper.y"
7084 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'/'), (yyvsp[(3) - (3)].
val));
7092 #line 2154 "ripper.y"
7097 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'%'), (yyvsp[(3) - (3)].
val));
7105 #line 2162 "ripper.y"
7110 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"**"), (yyvsp[(3) - (3)].
val));
7118 #line 2170 "ripper.y"
7123 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].val),
ripper_intern(
"**"), (yyvsp[(4) - (4)].
val));
7132 #line 2179 "ripper.y"
7137 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].val),
ripper_intern(
"**"), (yyvsp[(4) - (4)].
val));
7146 #line 2188 "ripper.y"
7159 #line 2196 "ripper.y"
7172 #line 2204 "ripper.y"
7177 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'|'), (yyvsp[(3) - (3)].
val));
7185 #line 2212 "ripper.y"
7190 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'^'), (yyvsp[(3) - (3)].
val));
7198 #line 2220 "ripper.y"
7203 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'&'), (yyvsp[(3) - (3)].
val));
7211 #line 2228 "ripper.y"
7216 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"<=>"), (yyvsp[(3) - (3)].
val));
7224 #line 2236 "ripper.y"
7229 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'>'), (yyvsp[(3) - (3)].
val));
7237 #line 2244 "ripper.y"
7242 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
">="), (yyvsp[(3) - (3)].
val));
7250 #line 2252 "ripper.y"
7255 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'<'), (yyvsp[(3) - (3)].
val));
7263 #line 2260 "ripper.y"
7268 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"<="), (yyvsp[(3) - (3)].
val));
7276 #line 2268 "ripper.y"
7281 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"=="), (yyvsp[(3) - (3)].
val));
7289 #line 2276 "ripper.y"
7294 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"==="), (yyvsp[(3) - (3)].
val));
7302 #line 2284 "ripper.y"
7307 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"!="), (yyvsp[(3) - (3)].
val));
7315 #line 2292 "ripper.y"
7318 (yyval.
val) =
match_op((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7323 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"=~"), (yyvsp[(3) - (3)].
val));
7331 #line 2303 "ripper.y"
7336 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"!~"), (yyvsp[(3) - (3)].
val));
7344 #line 2311 "ripper.y"
7349 (yyval.
val) = dispatch2(unary,
ID2SYM(
'!'), (yyvsp[(2) - (2)].
val));
7357 #line 2319 "ripper.y"
7362 (yyval.
val) = dispatch2(unary,
ID2SYM(
'~'), (yyvsp[(2) - (2)].
val));
7370 #line 2327 "ripper.y"
7375 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"<<"), (yyvsp[(3) - (3)].
val));
7383 #line 2335 "ripper.y"
7388 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
">>"), (yyvsp[(3) - (3)].
val));
7396 #line 2343 "ripper.y"
7401 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"&&"), (yyvsp[(3) - (3)].
val));
7409 #line 2351 "ripper.y"
7414 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"||"), (yyvsp[(3) - (3)].
val));
7422 #line 2358 "ripper.y"
7429 #line 2359 "ripper.y"
7436 (yyval.
val) = dispatch1(defined, (yyvsp[(4) - (4)].val));
7444 #line 2369 "ripper.y"
7448 (yyval.
val) =
NEW_IF(
cond((yyvsp[(1) - (6)].val)), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].val));
7451 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].val));
7459 #line 2379 "ripper.y"
7461 (yyval.
val) = (yyvsp[(1) - (1)].val);
7468 #line 2385 "ripper.y"
7472 (yyval.
val) = (yyvsp[(1) - (1)].val);
7475 (yyval.
val) = (yyvsp[(1) - (1)].val);
7483 #line 2398 "ripper.y"
7485 (yyval.
val) = (yyvsp[(1) - (2)].val);
7492 #line 2402 "ripper.y"
7497 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
7505 #line 2410 "ripper.y"
7510 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7518 #line 2420 "ripper.y"
7521 (yyval.
val) = (yyvsp[(2) - (3)].val);
7531 #line 2436 "ripper.y"
7533 (yyval.
val) = (yyvsp[(1) - (2)].val);
7540 #line 2440 "ripper.y"
7545 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
7553 #line 2448 "ripper.y"
7558 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7566 #line 2458 "ripper.y"
7572 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7580 #line 2467 "ripper.y"
7585 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
7593 #line 2475 "ripper.y"
7599 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7600 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7608 #line 2485 "ripper.y"
7614 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7622 #line 2496 "ripper.y"
7624 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7631 #line 2502 "ripper.y"
7641 #line 2507 "ripper.y"
7645 (yyval.
val) = (yyvsp[(2) - (2)].val);
7652 #line 2515 "ripper.y"
7657 (yyval.
val) = (yyvsp[(2) - (2)].val);
7665 #line 2525 "ripper.y"
7667 (yyval.
val) = (yyvsp[(2) - (2)].val);
7674 #line 2529 "ripper.y"
7683 #line 2535 "ripper.y"
7688 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7696 #line 2543 "ripper.y"
7701 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
7709 #line 2551 "ripper.y"
7713 if ((n1 =
splat_array((yyvsp[(1) - (3)].val))) != 0) {
7720 (yyval.
val) = arg_add((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7728 #line 2565 "ripper.y"
7739 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].val), (yyvsp[(4) - (4)].
val));
7747 #line 2581 "ripper.y"
7751 if ((n1 =
splat_array((yyvsp[(1) - (3)].val))) != 0) {
7758 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].val)), (yyvsp[(3) - (3)].val));
7766 #line 2595 "ripper.y"
7771 (n1 =
splat_array((yyvsp[(1) - (4)].val))) != 0) {
7778 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].val)), (yyvsp[(4) - (4)].val));
7786 #line 2610 "ripper.y"
7791 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
7799 #line 2628 "ripper.y"
7804 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].val)), arg_new());
7812 #line 2636 "ripper.y"
7824 #line 2644 "ripper.y"
7827 if ((yyvsp[(3) - (4)].val) ==
NULL) {
7833 nd_set_line((yyvsp[(3) - (4)].val), (yyvsp[(2) - (4)].num));
7838 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].val));
7846 #line 2660 "ripper.y"
7853 #line 2661 "ripper.y"
7855 rb_warning0(
"(...) interpreted as grouped expression");
7857 (yyval.
val) = (yyvsp[(2) - (4)].val);
7859 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].val));
7867 #line 2670 "ripper.y"
7870 (yyval.
val) = (yyvsp[(2) - (3)].val);
7872 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].val));
7880 #line 2678 "ripper.y"
7885 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7893 #line 2686 "ripper.y"
7898 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].val));
7906 #line 2694 "ripper.y"
7909 if ((yyvsp[(2) - (3)].val) == 0) {
7913 (yyval.
val) = (yyvsp[(2) - (3)].val);
7924 #line 2707 "ripper.y"
7937 #line 2715 "ripper.y"
7950 #line 2723 "ripper.y"
7955 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].val)));
7963 #line 2731 "ripper.y"
7968 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
7976 #line 2739 "ripper.y"
7989 #line 2746 "ripper.y"
7996 #line 2747 "ripper.y"
8003 (yyval.
val) = dispatch1(defined, (yyvsp[(5) - (6)].val));
8011 #line 2757 "ripper.y"
8024 #line 2765 "ripper.y"
8037 #line 2773 "ripper.y"
8041 (yyval.
val) = (yyvsp[(2) - (2)].val);
8042 fixpos((yyvsp[(2) - (2)].val)->
nd_iter, (yyvsp[(2) - (2)].val));
8044 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].val)), arg_new());
8045 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(2) - (2)].
val));
8053 #line 2785 "ripper.y"
8057 (yyvsp[(2) - (2)].
val)->
nd_iter = (yyvsp[(1) - (2)].val);
8058 (yyval.
val) = (yyvsp[(2) - (2)].val);
8061 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
8069 #line 2796 "ripper.y"
8071 (yyval.
val) = (yyvsp[(2) - (2)].val);
8078 #line 2803 "ripper.y"
8081 (yyval.
val) =
NEW_IF(
cond((yyvsp[(2) - (6)].val)), (yyvsp[(4) - (6)].val), (yyvsp[(5) - (6)].
val));
8084 (yyval.
val) = dispatch3(
if, (yyvsp[(2) - (6)].val), (yyvsp[(4) - (6)].
val),
escape_Qundef((yyvsp[(5) - (6)].val)));
8092 #line 2815 "ripper.y"
8095 (yyval.
val) =
NEW_UNLESS(
cond((yyvsp[(2) - (6)].val)), (yyvsp[(4) - (6)].val), (yyvsp[(5) - (6)].
val));
8098 (yyval.
val) = dispatch3(unless, (yyvsp[(2) - (6)].val), (yyvsp[(4) - (6)].
val),
escape_Qundef((yyvsp[(5) - (6)].val)));
8106 #line 2823 "ripper.y"
8113 #line 2823 "ripper.y"
8120 #line 2826 "ripper.y"
8126 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].val), (yyvsp[(6) - (7)].
val));
8134 #line 2834 "ripper.y"
8141 #line 2834 "ripper.y"
8148 #line 2837 "ripper.y"
8154 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].val), (yyvsp[(6) - (7)].
val));
8162 #line 2848 "ripper.y"
8165 (yyval.
val) =
NEW_CASE((yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val));
8168 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val));
8176 #line 2857 "ripper.y"
8179 (yyval.
val) =
NEW_CASE(0, (yyvsp[(3) - (4)].val));
8181 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].val));
8189 #line 2865 "ripper.y"
8196 #line 2867 "ripper.y"
8203 #line 2870 "ripper.y"
8248 m->nd_next = (yyvsp[(2) - (9)].
val);
8257 tbl[0] = 1; tbl[1] =
id;
8258 (yyval.
val) =
NEW_FOR(0, (yyvsp[(5) - (9)].val), scope);
8261 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].val));
8269 #line 2931 "ripper.y"
8272 yyerror(
"class definition in method body");
8284 #line 2942 "ripper.y"
8287 (yyval.
val) =
NEW_CLASS((yyvsp[(2) - (6)].val), (yyvsp[(5) - (6)].
val), (yyvsp[(3) - (6)].val));
8290 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val));
8299 #line 2952 "ripper.y"
8309 #line 2957 "ripper.y"
8320 #line 2964 "ripper.y"
8326 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (8)].val), (yyvsp[(7) - (8)].
val));
8337 #line 2976 "ripper.y"
8340 yyerror(
"module definition in method body");
8352 #line 2987 "ripper.y"
8358 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val));
8367 #line 2997 "ripper.y"
8379 #line 3006 "ripper.y"
8387 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (6)].val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].val));
8398 #line 3019 "ripper.y"
8405 #line 3020 "ripper.y"
8416 #line 3028 "ripper.y"
8421 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].val), body);
8424 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].val));
8434 #line 3041 "ripper.y"
8439 (yyval.
val) = dispatch1(
break, arg_new());
8447 #line 3049 "ripper.y"
8452 (yyval.
val) = dispatch1(next, arg_new());
8460 #line 3057 "ripper.y"
8473 #line 3065 "ripper.y"
8486 #line 3075 "ripper.y"
8490 (yyval.
val) = (yyvsp[(1) - (1)].val);
8493 (yyval.
val) = (yyvsp[(1) - (1)].val);
8501 #line 3087 "ripper.y"
8510 #line 3093 "ripper.y"
8519 #line 3099 "ripper.y"
8528 #line 3105 "ripper.y"
8537 #line 3111 "ripper.y"
8546 #line 3117 "ripper.y"
8555 #line 3123 "ripper.y"
8564 #line 3129 "ripper.y"
8573 #line 3135 "ripper.y"
8582 #line 3141 "ripper.y"
8595 #line 3151 "ripper.y"
8604 #line 3159 "ripper.y"
8611 #line 3165 "ripper.y"
8612 { (yyval.
val) = (yyvsp[(2) - (2)].val); }
8618 #line 3172 "ripper.y"
8625 #line 3181 "ripper.y"
8628 (yyval.
val) =
NEW_IF(
cond((yyvsp[(2) - (5)].val)), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
8631 (yyval.
val) = dispatch3(elsif, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val),
escape_Qundef((yyvsp[(5) - (5)].val)));
8639 #line 3193 "ripper.y"
8642 (yyval.
val) = (yyvsp[(2) - (2)].val);
8644 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].val));
8652 #line 3207 "ripper.y"
8657 (yyval.
val) = dispatch1(mlhs_paren, (yyval.
val));
8665 #line 3215 "ripper.y"
8668 (yyval.
val) = (yyvsp[(2) - (3)].val);
8670 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
8678 #line 3225 "ripper.y"
8683 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8691 #line 3233 "ripper.y"
8696 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
8704 #line 3243 "ripper.y"
8709 (yyval.
val) = (yyvsp[(1) - (1)].val);
8717 #line 3251 "ripper.y"
8723 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].val), (yyval.
val));
8731 #line 3260 "ripper.y"
8737 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].val), (yyval.
val));
8745 #line 3269 "ripper.y"
8750 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].val),
Qnil);
8758 #line 3277 "ripper.y"
8763 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].val), (yyvsp[(5) - (5)].
val));
8771 #line 3285 "ripper.y"
8777 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8785 #line 3294 "ripper.y"
8794 (yyval.
val) = mlhs_add_star((yyval.
val), (yyvsp[(4) - (4)].
val));
8802 #line 3306 "ripper.y"
8807 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8815 #line 3314 "ripper.y"
8820 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8828 #line 3324 "ripper.y"
8831 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), 0, (yyvsp[(6) - (6)].
val));
8833 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
Qnil,
escape_Qundef((yyvsp[(6) - (6)].val)));
8841 #line 3332 "ripper.y"
8844 (yyval.
val) =
new_args((yyvsp[(1) - (8)].val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].val));
8846 (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)));
8854 #line 3340 "ripper.y"
8857 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, 0, (yyvsp[(4) - (4)].val));
8867 #line 3348 "ripper.y"
8870 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), 0, (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
8872 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val),
Qnil, (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
8880 #line 3356 "ripper.y"
8883 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
8893 #line 3364 "ripper.y"
8896 (yyval.
val) =
new_args((yyvsp[(1) - (2)].val), 0, 1, 0, 0);
8899 dispatch1(excessed_comma, (yyval.
val));
8907 #line 3373 "ripper.y"
8910 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), 0, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
8912 (yyval.
val) = params_new((yyvsp[(1) - (6)].val),
Qnil, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
8920 #line 3381 "ripper.y"
8923 (yyval.
val) =
new_args((yyvsp[(1) - (2)].val), 0, 0, 0, (yyvsp[(2) - (2)].
val));
8933 #line 3389 "ripper.y"
8936 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
8946 #line 3397 "ripper.y"
8949 (yyval.
val) =
new_args(0, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
8951 (yyval.
val) = params_new(
Qnil, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
8959 #line 3405 "ripper.y"
8962 (yyval.
val) =
new_args(0, (yyvsp[(1) - (2)].val), 0, 0, (yyvsp[(2) - (2)].
val));
8972 #line 3413 "ripper.y"
8975 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
8985 #line 3421 "ripper.y"
8988 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (2)].val), 0, (yyvsp[(2) - (2)].
val));
8998 #line 3429 "ripper.y"
9001 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9011 #line 3437 "ripper.y"
9014 (yyval.
val) =
new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].val));
9024 #line 3448 "ripper.y"
9033 #line 3454 "ripper.y"
9047 #line 3463 "ripper.y"
9061 #line 3472 "ripper.y"
9064 (yyval.
val) = (yyvsp[(2) - (4)].val);
9074 #line 3484 "ripper.y"
9079 (yyval.
val) = (yyvsp[(2) - (2)].val);
9087 #line 3496 "ripper.y"
9096 #line 3503 "ripper.y"
9105 #line 3510 "ripper.y"
9118 #line 3518 "ripper.y"
9127 #line 3523 "ripper.y"
9136 #line 3526 "ripper.y"
9146 #line 3532 "ripper.y"
9150 (yyval.
val) = (yyvsp[(3) - (4)].val);
9153 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (4)].val), (yyvsp[(4) - (4)].
val));
9162 #line 3545 "ripper.y"
9167 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].val));
9175 #line 3553 "ripper.y"
9180 (yyval.
val) = (yyvsp[(1) - (1)].val);
9188 #line 3563 "ripper.y"
9190 (yyval.
val) = (yyvsp[(2) - (3)].val);
9197 #line 3567 "ripper.y"
9199 (yyval.
val) = (yyvsp[(2) - (3)].val);
9206 #line 3573 "ripper.y"
9218 #line 3582 "ripper.y"
9221 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
9224 (yyval.
val) = dispatch2(do_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
9233 #line 3594 "ripper.y"
9242 (yyvsp[(2) - (2)].
val)->
nd_iter = (yyvsp[(1) - (2)].val);
9243 (yyval.
val) = (yyvsp[(2) - (2)].val);
9246 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9254 #line 3610 "ripper.y"
9257 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9259 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
9260 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9268 #line 3619 "ripper.y"
9271 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9273 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_intern(
"::"), (yyvsp[(3) - (4)].
val));
9274 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9282 #line 3630 "ripper.y"
9285 (yyval.
val) =
NEW_FCALL((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9288 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].val)), (yyvsp[(2) - (2)].
val));
9296 #line 3639 "ripper.y"
9299 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9302 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
9303 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9311 #line 3649 "ripper.y"
9314 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9317 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
9318 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9326 #line 3659 "ripper.y"
9329 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val), 0);
9331 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (3)].val),
ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
9339 #line 3667 "ripper.y"
9347 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(3) - (3)].
val));
9355 #line 3678 "ripper.y"
9363 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(3) - (3)].
val));
9371 #line 3689 "ripper.y"
9376 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].val));
9384 #line 3697 "ripper.y"
9397 #line 3705 "ripper.y"
9400 if ((yyvsp[(1) - (4)].val) &&
nd_type((yyvsp[(1) - (4)].val)) ==
NODE_SELF)
9403 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val),
tAREF, (yyvsp[(3) - (4)].val));
9406 (yyval.
val) = dispatch2(aref, (yyvsp[(1) - (4)].val),
escape_Qundef((yyvsp[(3) - (4)].val)));
9414 #line 3719 "ripper.y"
9427 #line 3728 "ripper.y"
9430 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
9433 (yyval.
val) = dispatch2(brace_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
9442 #line 3738 "ripper.y"
9455 #line 3747 "ripper.y"
9458 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
9461 (yyval.
val) = dispatch2(do_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
9470 #line 3761 "ripper.y"
9473 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
9475 (yyval.
val) = dispatch3(when, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val),
escape_Qundef((yyvsp[(5) - (5)].val)));
9483 #line 3777 "ripper.y"
9486 if ((yyvsp[(3) - (6)].val)) {
9488 (yyvsp[(5) - (6)].
val) =
block_append((yyvsp[(3) - (6)].val), (yyvsp[(5) - (6)].
val));
9490 (yyval.
val) =
NEW_RESBODY((yyvsp[(2) - (6)].val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].val));
9491 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
9493 (yyval.
val) = dispatch4(rescue,
9505 #line 3797 "ripper.y"
9518 #line 3805 "ripper.y"
9521 if (!((yyval.
val) =
splat_array((yyvsp[(1) - (1)].val)))) (yyval.
val) = (yyvsp[(1) - (1)].val);
9523 (yyval.
val) = (yyvsp[(1) - (1)].val);
9531 #line 3816 "ripper.y"
9533 (yyval.
val) = (yyvsp[(2) - (2)].val);
9540 #line 3823 "ripper.y"
9543 (yyval.
val) = (yyvsp[(2) - (2)].val);
9545 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].val));
9553 #line 3835 "ripper.y"
9558 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].val));
9566 #line 3846 "ripper.y"
9569 NODE *node = (yyvsp[(1) - (1)].
val);
9578 (yyval.
val) = (yyvsp[(1) - (1)].val);
9586 #line 3865 "ripper.y"
9591 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9599 #line 3875 "ripper.y"
9602 (yyval.
val) = (yyvsp[(2) - (3)].val);
9604 (yyval.
val) = dispatch1(string_literal, (yyvsp[(2) - (3)].val));
9612 #line 3885 "ripper.y"
9615 NODE *node = (yyvsp[(2) - (3)].
val);
9634 (yyval.
val) = dispatch1(xstring_literal, (yyvsp[(2) - (3)].val));
9642 #line 3912 "ripper.y"
9646 NODE *node = (yyvsp[(2) - (3)].
val);
9654 VALUE src = node->nd_lit;
9670 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9672 VALUE tail = list->nd_head->nd_lit;
9674 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9680 prev->nd_next = list->nd_next;
9693 if (!node->nd_next) {
9694 VALUE src = node->nd_lit;
9702 (yyval.
val) = dispatch2(regexp_literal, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
9710 #line 3977 "ripper.y"
9716 (yyval.
val) = dispatch1(array, (yyval.
val));
9724 #line 3986 "ripper.y"
9727 (yyval.
val) = (yyvsp[(2) - (3)].val);
9729 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].val));
9737 #line 3996 "ripper.y"
9750 #line 4004 "ripper.y"
9755 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
9763 #line 4016 "ripper.y"
9766 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
9773 #line 4022 "ripper.y"
9778 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9786 #line 4032 "ripper.y"
9792 (yyval.
val) = dispatch1(array, (yyval.
val));
9800 #line 4041 "ripper.y"
9803 (yyval.
val) = (yyvsp[(2) - (3)].val);
9805 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].val));
9813 #line 4051 "ripper.y"
9826 #line 4059 "ripper.y"
9831 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
9839 #line 4069 "ripper.y"
9852 #line 4077 "ripper.y"
9857 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9865 #line 4087 "ripper.y"
9878 #line 4095 "ripper.y"
9883 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9891 #line 4105 "ripper.y"
9904 #line 4113 "ripper.y"
9907 NODE *head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].val);
9928 (yyval.
val) = dispatch2(regexp_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9936 #line 4143 "ripper.y"
9947 #line 4149 "ripper.y"
9954 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].val));
9962 #line 4159 "ripper.y"
9974 #line 4165 "ripper.y"
9985 #line 4171 "ripper.y"
9991 if ((yyvsp[(4) - (5)].val)) (yyvsp[(4) - (5)].val)->flags &= ~
NODE_FL_NEWLINE;
9994 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(4) - (5)].val));
10002 #line 4185 "ripper.y"
10007 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
10015 #line 4193 "ripper.y"
10020 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
10028 #line 4201 "ripper.y"
10033 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
10041 #line 4212 "ripper.y"
10045 (yyval.
val) = (yyvsp[(2) - (2)].val);
10047 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].val));
10055 #line 4229 "ripper.y"
10059 if (!((yyval.
val) = (yyvsp[(2) - (3)].
val))) {
10080 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].val));
10088 #line 4261 "ripper.y"
10101 #line 4269 "ripper.y"
10114 #line 4285 "ripper.y"
10121 #line 4286 "ripper.y"
10128 #line 4287 "ripper.y"
10135 #line 4288 "ripper.y"
10142 #line 4289 "ripper.y"
10149 #line 4290 "ripper.y"
10156 #line 4291 "ripper.y"
10163 #line 4295 "ripper.y"
10168 if (id_is_var(
get_id((yyvsp[(1) - (1)].val)))) {
10169 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
10172 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].val));
10181 #line 4308 "ripper.y"
10186 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
10194 #line 4318 "ripper.y"
10199 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10207 #line 4326 "ripper.y"
10212 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10220 #line 4340 "ripper.y"
10233 #line 4348 "ripper.y"
10242 #line 4352 "ripper.y"
10244 (yyval.
val) = (yyvsp[(3) - (4)].val);
10251 #line 4356 "ripper.y"
10266 #line 4368 "ripper.y"
10269 (yyval.
val) = (yyvsp[(2) - (3)].val);
10271 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].val));
10281 #line 4378 "ripper.y"
10283 (yyval.
val) = (yyvsp[(1) - (2)].val);
10292 #line 4386 "ripper.y"
10295 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), 0, (yyvsp[(6) - (6)].
val));
10297 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
Qnil,
escape_Qundef((yyvsp[(6) - (6)].val)));
10305 #line 4394 "ripper.y"
10308 (yyval.
val) =
new_args((yyvsp[(1) - (8)].val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].val));
10310 (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)));
10318 #line 4402 "ripper.y"
10321 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, 0, (yyvsp[(4) - (4)].val));
10331 #line 4410 "ripper.y"
10334 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), 0, (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
10336 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val),
Qnil, (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
10344 #line 4418 "ripper.y"
10347 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
10357 #line 4426 "ripper.y"
10360 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), 0, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
10362 (yyval.
val) = params_new((yyvsp[(1) - (6)].val),
Qnil, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
10370 #line 4434 "ripper.y"
10373 (yyval.
val) =
new_args((yyvsp[(1) - (2)].val), 0, 0, 0, (yyvsp[(2) - (2)].
val));
10383 #line 4442 "ripper.y"
10386 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
10396 #line 4450 "ripper.y"
10399 (yyval.
val) =
new_args(0, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
10401 (yyval.
val) = params_new(
Qnil, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
10409 #line 4458 "ripper.y"
10412 (yyval.
val) =
new_args(0, (yyvsp[(1) - (2)].val), 0, 0, (yyvsp[(2) - (2)].
val));
10422 #line 4466 "ripper.y"
10425 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
10435 #line 4474 "ripper.y"
10438 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (2)].val), 0, (yyvsp[(2) - (2)].
val));
10448 #line 4482 "ripper.y"
10451 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
10461 #line 4490 "ripper.y"
10464 (yyval.
val) =
new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].val));
10474 #line 4498 "ripper.y"
10487 #line 4508 "ripper.y"
10490 yyerror(
"formal argument cannot be a constant");
10493 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
10501 #line 4517 "ripper.y"
10504 yyerror(
"formal argument cannot be an instance variable");
10507 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
10515 #line 4526 "ripper.y"
10518 yyerror(
"formal argument cannot be a global variable");
10521 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
10529 #line 4535 "ripper.y"
10532 yyerror(
"formal argument cannot be a class variable");
10535 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
10543 #line 4547 "ripper.y"
10546 (yyval.
val) = (yyvsp[(1) - (1)].val);
10553 #line 4554 "ripper.y"
10567 #line 4563 "ripper.y"
10579 (yyval.
val)->
nd_next = (yyvsp[(2) - (3)].val);
10581 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
10589 #line 4584 "ripper.y"
10598 #line 4589 "ripper.y"
10601 (yyval.
val) = (yyvsp[(1) - (3)].val);
10614 #line 4602 "ripper.y"
10629 #line 4614 "ripper.y"
10644 #line 4626 "ripper.y"
10647 (yyval.
val) = (yyvsp[(1) - (1)].val);
10657 #line 4634 "ripper.y"
10660 NODE *opts = (yyvsp[(1) - (3)].
val);
10662 while (opts->nd_next) {
10663 opts = opts->nd_next;
10665 opts->nd_next = (yyvsp[(3) - (3)].
val);
10666 (yyval.
val) = (yyvsp[(1) - (3)].val);
10676 #line 4650 "ripper.y"
10679 (yyval.
val) = (yyvsp[(1) - (1)].val);
10689 #line 4658 "ripper.y"
10692 NODE *opts = (yyvsp[(1) - (3)].
val);
10694 while (opts->nd_next) {
10695 opts = opts->nd_next;
10697 opts->nd_next = (yyvsp[(3) - (3)].
val);
10698 (yyval.
val) = (yyvsp[(1) - (3)].val);
10708 #line 4678 "ripper.y"
10712 yyerror(
"rest argument must be local variable");
10716 (yyval.
val) = (yyvsp[(2) - (2)].val);
10718 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].val));
10726 #line 4691 "ripper.y"
10732 (yyval.
val) = dispatch1(rest_param,
Qnil);
10740 #line 4706 "ripper.y"
10744 yyerror(
"block argument must be local variable");
10746 yyerror(
"duplicated block argument name");
10750 (yyval.
val) = (yyvsp[(2) - (2)].val);
10752 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].val));
10760 #line 4723 "ripper.y"
10762 (yyval.
val) = (yyvsp[(2) - (2)].val);
10769 #line 4727 "ripper.y"
10782 #line 4737 "ripper.y"
10786 (yyval.
val) = (yyvsp[(1) - (1)].val);
10789 (yyval.
val) = (yyvsp[(1) - (1)].val);
10797 #line 4746 "ripper.y"
10804 #line 4747 "ripper.y"
10807 if ((yyvsp[(3) - (4)].val) == 0) {
10808 yyerror(
"can't define singleton method for ().");
10811 switch (
nd_type((yyvsp[(3) - (4)].val))) {
10820 yyerror(
"can't define singleton method for literals");
10826 (yyval.
val) = (yyvsp[(3) - (4)].val);
10828 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].val));
10836 #line 4777 "ripper.y"
10839 (yyval.
val) = (yyvsp[(1) - (2)].val);
10841 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].val));
10849 #line 4789 "ripper.y"
10858 #line 4794 "ripper.y"
10871 #line 4804 "ripper.y"
10876 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
10884 #line 4812 "ripper.y"
10889 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
10897 #line 4840 "ripper.y"
10898 { (yyval.
val) = (yyvsp[(1) - (1)].val); }
10904 #line 4845 "ripper.y"
10905 { (yyval.
val) = (yyvsp[(1) - (1)].val); }
10911 #line 4868 "ripper.y"
10918 #line 4873 "ripper.y"
10925 #line 4877 "ripper.y"
10938 #line 10937 "parse.c"
10966 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
10967 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
10968 yystate = yytable[yystate];
10987 #if ! YYERROR_VERBOSE
10990 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
10993 char const *yymsgp =
YY_(
"syntax error");
10994 int yysyntax_error_status;
10996 if (yysyntax_error_status == 0)
10998 else if (yysyntax_error_status == 1)
11000 if (yymsg != yymsgbuf)
11006 yymsg_alloc =
sizeof yymsgbuf;
11007 yysyntax_error_status = 2;
11016 if (yysyntax_error_status == 2)
11017 goto yyexhaustedlab;
11019 # undef YYSYNTAX_ERROR
11025 if (yyerrstatus == 3)
11030 if (yychar <=
YYEOF)
11033 if (yychar ==
YYEOF)
11039 yytoken, &yylval, parser);
11077 yyn = yypact[yystate];
11083 yyn = yytable[yyn];
11095 yystos[yystate], yyvsp, parser);
11125 #if !defined(yyoverflow) || YYERROR_VERBOSE
11141 yydestruct (
"Cleanup: discarding lookahead",
11142 yytoken, &yylval, parser);
11148 while (yyssp != yyss)
11151 yystos[*yyssp], yyvsp, parser);
11158 #if YYERROR_VERBOSE
11159 if (yymsg != yymsgbuf)
11163 return YYID (yyresult);
11169 #line 4885 "ripper.y"
11174 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
11183 # define nextc() parser_nextc(parser)
11184 # define pushback(c) parser_pushback(parser, (c))
11185 # define newtok() parser_newtok(parser)
11186 # define tokspace(n) parser_tokspace(parser, (n))
11187 # define tokadd(c) parser_tokadd(parser, (c))
11188 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
11189 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
11190 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
11191 # define regx_options() parser_regx_options(parser)
11192 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
11193 # define parse_string(n) parser_parse_string(parser,(n))
11194 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
11195 # define here_document(n) parser_here_document(parser,(n))
11196 # define heredoc_identifier() parser_heredoc_identifier(parser)
11197 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
11198 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
11201 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
11202 # define set_yylval_num(x) (yylval.num = (x))
11203 # define set_yylval_id(x) (yylval.id = (x))
11204 # define set_yylval_name(x) (yylval.id = (x))
11205 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
11206 # define set_yylval_node(x) (yylval.node = (x))
11207 # define yylval_id() (yylval.id)
11209 static inline VALUE
11210 ripper_yylval_id(
ID x)
11214 # define set_yylval_str(x) (void)(x)
11215 # define set_yylval_num(x) (void)(x)
11216 # define set_yylval_id(x) (void)(x)
11217 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
11218 # define set_yylval_literal(x) (void)(x)
11219 # define set_yylval_node(x) (void)(x)
11220 # define yylval_id() yylval.id
11224 #define ripper_flush(p) (void)(p)
11226 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
11228 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
11235 return lex_p > parser->tokp;
11248 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11250 if (!ripper_has_scan_event(parser))
return;
11251 yylval_rval = ripper_scan_event_val(parser, t);
11255 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11257 if (!ripper_has_scan_event(parser))
return;
11258 (void)ripper_scan_event_val(parser, t);
11262 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11265 const char *saved_tokp = parser->tokp;
11268 parser->tokp =
lex_pbeg + parser->delayed_col;
11270 parser->delayed =
Qnil;
11272 parser->tokp = saved_tokp;
11283 #undef SIGN_EXTEND_CHAR
11285 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
11288 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
11291 #define parser_encoding_name() (parser->enc->name)
11292 #define parser_mbclen() mbclen((lex_p-1),lex_pend,parser->enc)
11293 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,parser->enc)
11294 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
11295 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,parser->enc))
11297 #define parser_isascii() ISASCII(*(lex_p-1))
11305 for (p =
lex_pbeg; p < pend; p++) {
11307 column = (((column - 1) / 8) + 1) * 8;
11318 for (p =
lex_pbeg; p < pend; p++) {
11319 if (*p !=
' ' && *p !=
'\t') {
11326 #undef token_info_push
11343 #undef token_info_pop
11350 if (!ptinfo)
return;
11356 if (linenum == ptinfo->
linenum) {
11364 "mismatched indentations at '%s' with '%s' at %d",
11377 const int max_line_margin = 30;
11378 const char *
p, *pe;
11386 if (*p ==
'\n')
break;
11393 if (*pe ==
'\n')
break;
11400 const char *pre =
"", *post =
"";
11402 if (len > max_line_margin * 2 + 10) {
11403 if (
lex_p - p > max_line_margin) {
11407 if (pe -
lex_p > max_line_margin) {
11414 MEMCPY(buf, p,
char, len);
11418 i = (int)(
lex_p - p);
11419 p2 =
buf; pe = buf +
len;
11422 if (*p2 !=
'\t') *p2 =
' ';
11430 dispatch1(parse_error,
STR_NEW2(msg));
11442 CONST_ID(script_lines,
"SCRIPT_LINES__");
11459 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11463 RBASIC(lines)->klass = 0;
11465 RARRAY(lines)->as.heap.len = n;
11513 if (parser->
nerr) {
11523 return (
VALUE)tree;
11548 char *beg, *end, *pend;
11558 while (end < pend) {
11559 if (*end++ ==
'\n')
break;
11569 if (
NIL_P(line))
return line;
11593 volatile VALUE tmp;
11654 volatile VALUE tmp;
11670 #define STR_FUNC_ESCAPE 0x01
11671 #define STR_FUNC_EXPAND 0x02
11672 #define STR_FUNC_REGEXP 0x04
11673 #define STR_FUNC_QWORDS 0x08
11674 #define STR_FUNC_SYMBOL 0x10
11675 #define STR_FUNC_INDENT 0x20
11705 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
11706 #define lex_eol_p() (lex_p >= lex_pend)
11707 #define peek(c) peek_n((c), 0)
11708 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
11731 if (
NIL_P(parser->delayed)) {
11735 parser->tokp,
lex_pend - parser->tokp);
11737 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
11741 parser->tokp,
lex_pend - parser->tokp);
11757 c = (
unsigned char)*
lex_p++;
11758 if (c ==
'\r' &&
peek(
'\n')) {
11769 if (c == -1)
return;
11776 #define was_bol() (lex_p == lex_pbeg + 1)
11778 #define tokfix() (tokenbuf[tokidx]='\0')
11779 #define tok() tokenbuf
11780 #define toklen() tokidx
11781 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
11827 yyerror(
"invalid hex escape");
11834 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
11838 int string_literal,
int symbol_literal,
int regexp_literal)
11858 yyerror(
"invalid Unicode escape");
11861 if (codepoint > 0x10ffff) {
11862 yyerror(
"invalid Unicode codepoint (too large)");
11866 if (regexp_literal) {
11869 else if (codepoint >= 0x80) {
11871 if (string_literal)
tokaddmbc(codepoint, *encp);
11873 else if (string_literal) {
11876 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
11879 yyerror(
"unterminated Unicode escape");
11883 if (regexp_literal) {
tokadd(
'}'); }
11889 yyerror(
"invalid Unicode escape");
11893 if (regexp_literal) {
11896 else if (codepoint >= 0x80) {
11898 if (string_literal)
tokaddmbc(codepoint, *encp);
11900 else if (string_literal) {
11908 #define ESCAPE_CONTROL 1
11909 #define ESCAPE_META 2
11918 switch (c =
nextc()) {
11943 case '0':
case '1':
case '2':
case '3':
11944 case '4':
case '5':
case '6':
case '7':
11952 if (numlen == 0)
return 0;
11963 if ((c =
nextc()) !=
'-') {
11967 if ((c =
nextc()) ==
'\\') {
11968 if (
peek(
'u'))
goto eof;
11969 return read_escape(flags|ESCAPE_META, encp) | 0x80;
11971 else if (c == -1 || !
ISASCII(c))
goto eof;
11973 return ((c & 0xff) | 0x80);
11977 if ((c =
nextc()) !=
'-') {
11983 if ((c =
nextc())==
'\\') {
11984 if (
peek(
'u'))
goto eof;
11989 else if (c == -1 || !
ISASCII(c))
goto eof;
11994 yyerror(
"Invalid escape character syntax");
12017 switch (c =
nextc()) {
12021 case '0':
case '1':
case '2':
case '3':
12022 case '4':
case '5':
case '6':
case '7':
12025 if (numlen == 0)
goto eof;
12034 if (numlen == 0)
return -1;
12041 if ((c =
nextc()) !=
'-') {
12051 if ((c =
nextc()) !=
'-') {
12059 if (flags & ESCAPE_CONTROL)
goto eof;
12063 if ((c =
nextc()) ==
'\\') {
12066 else if (c == -1)
goto eof;
12072 yyerror(
"Invalid escape character syntax");
12141 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
12145 int func,
int term,
int paren,
long *nest,
12149 int has_nonascii = 0;
12152 static const char mixed_msg[] =
"%s mixed within %s source";
12154 #define mixed_error(enc1, enc2) if (!errbuf) { \
12155 size_t len = sizeof(mixed_msg) - 4; \
12156 len += strlen(rb_enc_name(enc1)); \
12157 len += strlen(rb_enc_name(enc2)); \
12158 errbuf = ALLOCA_N(char, len); \
12159 snprintf(errbuf, len, mixed_msg, \
12160 rb_enc_name(enc1), \
12161 rb_enc_name(enc2)); \
12164 #define mixed_escape(beg, enc1, enc2) do { \
12165 const char *pos = lex_p; \
12167 mixed_error((enc1), (enc2)); \
12171 while ((c =
nextc()) != -1) {
12172 if (paren && c == paren) {
12175 else if (c == term) {
12176 if (!nest || !*nest) {
12184 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12189 else if (c ==
'\\') {
12190 const char *beg =
lex_p - 1;
12195 if (func & STR_FUNC_EXPAND)
continue;
12204 if ((func & STR_FUNC_EXPAND) == 0) {
12211 if (has_nonascii && enc != *encp) {
12217 if (c == -1)
return -1;
12219 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12222 if (func & STR_FUNC_REGEXP) {
12226 if (has_nonascii && enc != *encp) {
12231 else if (func & STR_FUNC_EXPAND) {
12233 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12236 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12239 else if (c != term && !(paren && c == paren)) {
12249 if (enc != *encp) {
12262 if (enc != *encp) {
12273 #define NEW_STRTERM(func, term, paren) \
12274 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
12280 if (!
NIL_P(parser->delayed)) {
12281 ptrdiff_t
len =
lex_p - parser->tokp;
12286 parser->tokp =
lex_p;
12290 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
12292 #define flush_string_content(enc) ((void)(enc))
12299 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
12300 #define SPECIAL_PUNCT(idx) ( \
12301 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', 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) | \
12313 #undef SPECIAL_PUNCT
12319 if (c <= 0x20 || 0x7e < c)
return 0;
12320 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
12333 if ((c = *p) ==
'-') {
12342 if ((c = *p) ==
'@') {
12362 int func = (int)quote->nd_func;
12374 if (c == term && !quote->nd_nest) {
12375 if (func & STR_FUNC_QWORDS) {
12376 quote->nd_func = -1;
12438 while ((c =
nextc()) != -1 && c != term) {
12485 line = here->nd_orig;
12499 const char *eos,
long len,
int indent)
12505 while (*p &&
ISSPACE(*p)) p++;
12508 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
12509 return strncmp(eos, p, len) == 0;
12516 if (!
NIL_P(parser->delayed))
12519 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12522 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
12524 #define dispatch_heredoc_end() ((void)0)
12530 int c,
func, indent = 0;
12531 const char *eos, *
p, *pend;
12540 if ((c =
nextc()) == -1) {
12544 if (
NIL_P(parser->delayed)) {
12549 ((len =
lex_p - parser->tokp) > 0 &&
12550 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
12573 switch (pend[-1]) {
12575 if (--pend == p || pend[-1] !=
'\r') {
12589 if (
nextc() == -1) {
12607 if (parser->
eofp)
goto error;
12617 if ((c =
nextc()) == -1)
goto error;
12634 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
12639 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
12646 yyerror(
"formal argument must be local variable");
12664 if (len > 5 && name[nlen = len - 5] ==
'-') {
12665 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
12668 if (len > 4 && name[nlen = len - 4] ==
'-') {
12671 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
12672 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
12687 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
12704 for (i = 0; i < n; ++
i) {
12742 case 't':
case 'T':
12748 case 'f':
case 'F':
12771 static const char *
12779 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
12780 return str + i + 1;
12785 if (i + 1 >= len)
return 0;
12786 if (str[i+1] !=
'-') {
12789 else if (str[i-1] !=
'-') {
12793 return str + i + 2;
12807 VALUE name = 0, val = 0;
12808 const char *beg, *end, *vbeg, *vend;
12809 #define str_copy(_s, _p, _n) ((_s) \
12810 ? (void)(rb_str_resize((_s), (_n)), \
12811 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
12812 : (void)((_s) = STR_NEW((_p), (_n))))
12814 if (len <= 7)
return FALSE;
12818 len = end - beg - 3;
12829 for (; len > 0 && *str; str++, --
len) {
12831 case '\'':
case '"':
case ':':
case ';':
12836 for (beg = str; len > 0; str++, --
len) {
12838 case '\'':
case '"':
case ':':
case ';':
12846 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
12848 if (*str !=
':')
continue;
12850 do str++;
while (--len > 0 &&
ISSPACE(*str));
12853 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
12854 if (*str ==
'\\') {
12866 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
12869 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
12874 for (i = 0; i < n; ++
i) {
12875 if (s[i] ==
'-') s[
i] =
'_';
12882 n = (*p->
length)(parser, vbeg, n);
12888 }
while (++p < magic_comments +
numberof(magic_comments));
12902 const char *beg = str;
12906 if (send - str <= 6)
return;
12908 case 'C':
case 'c': str += 6;
continue;
12909 case 'O':
case 'o': str += 5;
continue;
12910 case 'D':
case 'd': str += 4;
continue;
12911 case 'I':
case 'i': str += 3;
continue;
12912 case 'N':
case 'n': str += 2;
continue;
12913 case 'G':
case 'g': str += 1;
continue;
12914 case '=':
case ':':
12927 if (++str >= send)
return;
12930 if (*str !=
'=' && *str !=
':')
return;
12935 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
12951 (
unsigned char)
lex_p[0] == 0xbb &&
12952 (
unsigned char)
lex_p[1] == 0xbf) {
12966 #define IS_ARG() (lex_state == EXPR_ARG || lex_state == EXPR_CMDARG)
12967 #define IS_END() (lex_state == EXPR_END || lex_state == EXPR_ENDARG || lex_state == EXPR_ENDFN)
12968 #define IS_BEG() (lex_state == EXPR_BEG || lex_state == EXPR_MID || lex_state == EXPR_VALUE || lex_state == EXPR_CLASS)
12969 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
12970 #define IS_LABEL_POSSIBLE() ((lex_state == EXPR_BEG && !cmd_state) || IS_ARG())
12971 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
12974 #define ambiguous_operator(op, syn) ( \
12975 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
12976 rb_warning0("even though it seems like "syn""))
12978 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
12980 #define warn_balanced(op, syn) ((void) \
12981 (last_state != EXPR_CLASS && last_state != EXPR_DOT && \
12982 last_state != EXPR_FNAME && last_state != EXPR_ENDFN && \
12983 last_state != EXPR_ENDARG && \
12984 space_seen && !ISSPACE(c) && \
12985 (ambiguous_operator(op, syn), 0)))
12991 int space_seen = 0;
12997 int fallthru =
FALSE;
13023 switch (c =
nextc()) {
13031 case ' ':
case '\t':
case '\f':
case '\r':
13035 while ((c =
nextc())) {
13037 case ' ':
case '\t':
case '\f':
case '\r':
13046 ripper_dispatch_scan_event(parser,
tSP);
13059 ripper_dispatch_scan_event(parser,
tCOMMENT);
13080 while ((c =
nextc())) {
13082 case ' ':
case '\t':
case '\f':
case '\r':
13087 if ((c =
nextc()) !=
'.') {
13100 parser->tokp =
lex_p;
13103 goto normal_newline;
13112 if ((c =
nextc()) ==
'*') {
13113 if ((c =
nextc()) ==
'=') {
13129 rb_warning0(
"`*' interpreted as argument prefix");
13173 int first_p =
TRUE;
13182 ripper_dispatch_scan_event(parser,
tEMBDOC);
13191 if (c !=
'=')
continue;
13192 if (strncmp(
lex_p,
"end", 3) == 0 &&
13211 if ((c =
nextc()) ==
'=') {
13212 if ((c =
nextc()) ==
'=') {
13221 else if (c ==
'>') {
13234 (!
IS_ARG() || space_seen)) {
13236 if (token)
return token;
13245 if ((c =
nextc()) ==
'>') {
13252 if ((c =
nextc()) ==
'=') {
13271 if ((c =
nextc()) ==
'=') {
13275 if ((c =
nextc()) ==
'=') {
13343 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13360 else if (c ==
'\\') {
13389 if ((c =
nextc()) ==
'&') {
13391 if ((c =
nextc()) ==
'=') {
13399 else if (c ==
'=') {
13406 rb_warning0(
"`&' interpreted as argument prefix");
13425 if ((c =
nextc()) ==
'|') {
13427 if ((c =
nextc()) ==
'=') {
13512 if ((c =
nextc()) ==
'.') {
13513 if ((c =
nextc()) ==
'.') {
13521 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13527 case '0':
case '1':
case '2':
case '3':
case '4':
13528 case '5':
case '6':
case '7':
case '8':
case '9':
13530 int is_float, seen_point, seen_e, nondigit;
13532 is_float = seen_point = seen_e = nondigit = 0;
13535 if (c ==
'-' || c ==
'+') {
13540 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
13543 if (c ==
'x' || c ==
'X') {
13549 if (nondigit)
break;
13556 }
while ((c =
nextc()) != -1);
13560 if (
toklen() == start) {
13563 else if (nondigit)
goto trailing_uc;
13567 if (c ==
'b' || c ==
'B') {
13570 if (c ==
'0' || c ==
'1') {
13573 if (nondigit)
break;
13577 if (c !=
'0' && c !=
'1')
break;
13580 }
while ((c =
nextc()) != -1);
13584 if (
toklen() == start) {
13587 else if (nondigit)
goto trailing_uc;
13591 if (c ==
'd' || c ==
'D') {
13597 if (nondigit)
break;
13604 }
while ((c =
nextc()) != -1);
13608 if (
toklen() == start) {
13611 else if (nondigit)
goto trailing_uc;
13619 if (c ==
'o' || c ==
'O') {
13622 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13626 if (c >=
'0' && c <=
'7') {
13631 if (nondigit)
break;
13635 if (c < '0' || c >
'9')
break;
13636 if (c >
'7')
goto invalid_octal;
13639 }
while ((c =
nextc()) != -1);
13643 if (nondigit)
goto trailing_uc;
13652 if (c >
'7' && c <=
'9') {
13654 yyerror(
"Invalid octal digit");
13656 else if (c ==
'.' || c ==
'e' || c ==
'E') {
13668 case '0':
case '1':
case '2':
case '3':
case '4':
13669 case '5':
case '6':
case '7':
case '8':
case '9':
13675 if (nondigit)
goto trailing_uc;
13676 if (seen_point || seen_e) {
13681 if (c0 == -1 || !
ISDIGIT(c0)) {
13709 if (c !=
'-' && c !=
'+')
continue;
13715 if (nondigit)
goto decode_num;
13730 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
13736 if (
errno == ERANGE) {
13794 if ((c =
nextc()) ==
'=') {
13815 if ((c =
nextc()) ==
'=') {
13840 if ((c =
nextc()) !=
'@') {
13867 if ((c =
nextc()) ==
']') {
13868 if ((c =
nextc()) ==
'=') {
13880 else if (
IS_ARG() && space_seen) {
13914 ripper_dispatch_scan_event(parser,
tSP);
13928 if (c == -1 || !
ISALNUM(c)) {
13935 yyerror(
"unknown type of %string");
13939 if (c == -1 || term == -1) {
13944 if (term ==
'(') term =
')';
13945 else if (term ==
'[') term =
']';
13946 else if (term ==
'{') term =
'}';
13947 else if (term ==
'<') term =
'>';
13985 yyerror(
"unknown type of %string");
13989 if ((c =
nextc()) ==
'=') {
14071 case '1':
case '2':
case '3':
14072 case '4':
case '5':
case '6':
14073 case '7':
case '8':
case '9':
14078 }
while (c != -1 &&
ISDIGIT(c));
14124 ripper_dispatch_scan_event(parser,
k__END__);
14147 switch (
tok()[0]) {
14148 case '@':
case '$':
14152 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14165 switch (
tok()[0]) {
14172 if (
tok()[1] ==
'@')
14239 if (kw->
id[0] != kw->
id[1])
14292 if (!
NIL_P(parser->delayed)) {
14293 ripper_dispatch_delayed_token(parser, t);
14297 ripper_dispatch_scan_event(parser, t);
14339 if (orig == (
NODE*)1)
return;
14348 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
14355 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
14360 NODE *end, *h = head, *nd;
14362 if (tail == 0)
return head;
14364 if (h == 0)
return tail;
14403 tail->nd_end = tail;
14405 end->nd_next = tail;
14406 h->nd_end = tail->nd_end;
14416 if (list == 0)
return NEW_LIST(item);
14417 if (list->nd_next) {
14418 last = list->nd_next->nd_end;
14424 list->nd_alen += 1;
14426 list->nd_next->nd_end = last->nd_next;
14436 if (head->nd_next) {
14437 last = head->nd_next->nd_end;
14443 head->nd_alen += tail->nd_alen;
14444 last->nd_next = tail;
14445 if (tail->nd_next) {
14446 head->nd_next->nd_end = tail->nd_next->nd_end;
14449 head->nd_next->nd_end = tail;
14458 if (
NIL_P(tail))
return 1;
14477 if (!head)
return tail;
14478 if (!tail)
return head;
14505 tail->nd_lit = head->nd_lit;
14509 else if (
NIL_P(tail->nd_lit)) {
14510 head->nd_alen += tail->nd_alen - 1;
14511 head->nd_next->nd_end->nd_next = tail->nd_next;
14512 head->nd_next->nd_end = tail->nd_next->nd_end;
14517 tail->nd_head =
NEW_STR(tail->nd_lit);
14656 switch (
id & ID_SCOPE_MASK) {
14681 # define assignable_result(x) get_value(lhs)
14682 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
14684 # define assignable_result(x) (x)
14688 yyerror(
"Can't change the value of self");
14691 yyerror(
"Can't assign to nil");
14694 yyerror(
"Can't assign to true");
14697 yyerror(
"Can't assign to false");
14700 yyerror(
"Can't assign to __FILE__");
14703 yyerror(
"Can't assign to __LINE__");
14706 yyerror(
"Can't assign to __ENCODING__");
14740 yyerror(
"dynamic constant assignment");
14749 #undef assignable_result
14750 #undef parser_yyerror
14753 #define LVAR_USED ((int)1 << (sizeof(int) * CHAR_BIT - 1))
14758 if (idUScore == name)
return name;
14761 yyerror(
"duplicated argument name");
14773 yyerror(
"duplicated argument name");
14812 id &= ~ID_SCOPE_MASK;
14841 if (!node2)
return node1;
14844 if (node1->nd_head)
14845 node1->nd_head =
arg_concat(node1->nd_head, node2);
14857 node1->nd_body =
list_concat(node1->nd_body, node2);
14866 if (!node1)
return NEW_LIST(node2);
14871 node1->nd_head =
arg_append(node1->nd_head, node2);
14892 if (!lhs)
return 0;
14904 lhs->nd_value = rhs;
14909 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
14940 if (!cond)
yyerror(
"void value expression");
14945 while (node->nd_next) {
14946 node = node->nd_next;
14948 node = node->nd_head;
14952 node = node->nd_body;
14956 if (!node->nd_body) {
14957 node = node->nd_else;
14960 else if (!node->nd_else) {
14961 node = node->nd_body;
14965 node = node->nd_else;
14971 node = node->nd_2nd;
14985 const char *useless = 0;
14992 switch (node->nd_mid) {
15023 useless =
"a variable";
15026 useless =
"a constant";
15033 useless =
"a literal";
15058 useless =
"defined?";
15066 rb_warnS(
"possibly useless use of %s in void context", useless);
15079 if (!node->nd_next)
return;
15081 node = node->nd_next;
15088 NODE **n = &node, *n1 = node;
15090 *n = n1 = n1->nd_body;
15098 NODE *node = *body;
15104 #define subnodes(n1, n2) \
15105 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
15106 (!node->n2) ? (body = &node->n1, 1) : \
15107 (reduce_nodes(&node->n1), body = &node->n2, 1))
15117 *body = node = node->nd_stts;
15121 *body = node = node->nd_body;
15125 body = &node->nd_end->nd_head;
15131 body = &node->nd_body;
15140 if (node->nd_else) {
15141 body = &node->nd_resq;
15161 yyerror(
"multiple assignment in conditional");
15175 if (!node->nd_value)
return 1;
15176 switch (
nd_type(node->nd_value)) {
15183 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15212 NODE *node, *next, *head;
15214 for (node = *rootnode; node; node = next) {
15218 next = node->nd_next;
15219 head = node->nd_head;
15222 switch (type =
nd_type(head)) {
15225 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
15230 head->nd_lit = val;
15245 if (node == 0)
return 0;
15253 return cond0(parser, node);
15259 if (!node)
return 1;
15280 if (node == 0)
return 0;
15287 rb_warn0(
"string literal in condition");
15297 node->nd_1st =
cond0(parser, node->nd_1st);
15298 node->nd_2nd =
cond0(parser, node->nd_2nd);
15303 node->nd_beg =
range_op(parser, node->nd_beg);
15304 node->nd_end =
range_op(parser, node->nd_end);
15337 if (node == 0)
return 0;
15338 return cond0(parser, node);
15346 NODE *node = left, *second;
15347 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
15350 node->nd_2nd =
NEW_NODE(type, second, right, 0);
15353 return NEW_NODE(type, left, right, 0);
15370 if (node->nd_next == 0) {
15371 node = node->nd_head;
15401 switch (
TYPE(node->nd_lit)) {
15421 node2->nd_head = node1;
15434 node =
NEW_ARGS(m ? m->nd_plen : 0, o);
15435 i1 = m ? m->nd_next : 0;
15440 node->nd_next->nd_next =
NEW_ARGS_AUX(p->nd_pid, p->nd_plen);
15459 if (!local->
used)
return;
15463 if (cnt != local->
vars->
pos) {
15464 rb_bug(
"local->used->pos != local->vars->pos");
15466 for (i = 0; i <
cnt; ++
i) {
15467 if (!v[i] || (u[i] &
LVAR_USED))
continue;
15468 if (idUScore == v[i])
continue;
15508 for (i = 0; i <
cnt; i++) {
15509 buf[
i] = src->
tbl[
i];
15522 if (cnt <= 0)
return 0;
15553 vars =
lvtbl->vars;
15554 args =
lvtbl->args;
15555 used =
lvtbl->used;
15560 if (used) used = used->
prev;
15576 static const struct vtable *
15584 return lvtbl->args;
15592 if ((tmp =
lvtbl->used) != 0) {
15608 while (
lvtbl->args != lvargs) {
15610 if (!
lvtbl->args) {
15631 args =
lvtbl->args;
15632 vars =
lvtbl->vars;
15633 used =
lvtbl->used;
15646 if (used) used = used->
prev;
15699 "regexp encoding option '%c' differs from source encoding '%s'",
15728 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
15734 const char *s = (
const char *)name;
15751 rb_warningS(
"named capture conflicts a local variable - %s",
15831 NODE *scope = node;
15834 if (!node)
return node;
15838 node = node->nd_body;
15842 node = node->nd_body;
15849 prelude->nd_body = node;
15850 scope->nd_body = prelude;
15853 scope->nd_body = node;
15863 NODE *scope = node;
15866 if (!node)
return node;
15870 node = node->nd_body;
15874 node = node->nd_body;
15890 prelude->nd_body = node;
15891 scope->nd_body = prelude;
15894 scope->nd_body = node;
15900 static const struct {
15924 #define op_tbl_count numberof(op_tbl)
15926 #ifndef ENABLE_SELECTOR_NAMESPACE
15927 #define ENABLE_SELECTOR_NAMESPACE 0
15934 #if ENABLE_SELECTOR_NAMESPACE
15946 #if ENABLE_SELECTOR_NAMESPACE
15953 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
15955 if (key1->id == key2->id && key1->klass == key2->klass) {
15962 ivar2_hash(
struct ivar2_key *
key)
15964 return (key->id << 8) ^ (key->klass >> 2);
15978 #if ENABLE_SELECTOR_NAMESPACE
16009 if (m >= e)
return 0;
16013 else if (*m ==
'-') {
16027 return m == e ? mb + 1 : 0;
16045 const char *m =
name;
16046 const char *e = m +
len;
16047 int localid =
FALSE;
16049 if (!m || len <= 0)
return FALSE;
16059 if (*++m ==
'@') ++m;
16064 case '<': ++m;
break;
16065 case '=':
if (*++m ==
'>') ++m;
break;
16072 case '>':
case '=': ++m;
break;
16078 case '~': ++m;
break;
16079 case '=':
if (*++m ==
'=') ++m;
break;
16080 default:
return FALSE;
16085 if (*++m ==
'*') ++m;
16088 case '+':
case '-':
16089 if (*++m ==
'@') ++m;
16092 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16097 if (*++m !=
']')
return FALSE;
16098 if (*++m ==
'=') ++m;
16102 if (len == 1)
return TRUE;
16104 case '=':
case '~': ++m;
break;
16105 default:
return FALSE;
16117 case '!':
case '?':
case '=': ++m;
16138 const char *m =
name;
16139 const char *e = m +
len;
16150 fake_str.
as.
heap.ptr = (
char *)name;
16152 str = (
VALUE)&fake_str;
16198 if (*
op_tbl[i].name == *m &&
16199 strcmp(
op_tbl[i].name, m) == 0) {
16206 if (m[last] ==
'=') {
16236 if (m - name < len)
id =
ID_JUNK;
16243 for (; m <= name +
len; ++m) {
16244 if (!
ISASCII(*m))
goto mbstr;
16308 name[0] = (char)
id;
16331 if (
RBASIC(str)->klass == 0)
16342 id2 = (
id & ~ID_SCOPE_MASK) |
ID_CONST;
16349 if (
RBASIC(str)->klass == 0)
16362 if (!str)
return 0;
16464 parser->parser_ruby_sourcefile_string =
Qnil;
16465 parser->delayed =
Qnil;
16467 parser->result =
Qnil;
16468 parser->parsing_thread =
Qnil;
16469 parser->toplevel_p =
TRUE;
16478 #define parser_mark ripper_parser_mark
16479 #define parser_free ripper_parser_free
16497 rb_gc_mark(p->parser_ruby_sourcefile_string);
16519 prev = local->
prev;
16533 size_t size =
sizeof(*p);
16535 if (!ptr)
return 0;
16538 size +=
sizeof(*local);
16563 #undef rb_reserved_word
16647 yydebug =
RTEST(flag);
16652 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
16653 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
16654 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
16655 (n)->u3.cnt = (c), (p))
16672 void *ptr =
xcalloc(nelem, size);
16683 if (ptr && (n = parser->
heap) !=
NULL) {
16685 if (n->
u1.
node == ptr) {
16702 while ((n = *prev) !=
NULL) {
16703 if (n->u1.node == ptr) {
16716 #ifdef RIPPER_DEBUG
16717 extern int rb_is_pointer_to_heap(
VALUE);
16723 if (x ==
Qfalse)
return x;
16724 if (x ==
Qtrue)
return x;
16725 if (x ==
Qnil)
return x;
16730 if (!rb_is_pointer_to_heap(x))
16743 return ((
NODE *)x)->nd_rval;
16752 #define validate(x) ((x) = get_value(x))
16764 return rb_funcall(parser->value, mid, 1, a);
16772 return rb_funcall(parser->value, mid, 2, a, b);
16781 return rb_funcall(parser->value, mid, 3, a, b, c);
16791 return rb_funcall(parser->value, mid, 4, a, b, c, d);
16802 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
16805 static const struct kw_assoc {
16808 } keyword_to_name[] = {
16861 keyword_id_to_str(
ID id)
16863 const struct kw_assoc *a;
16865 for (a = keyword_to_name; a->id; a++) {
16872 #undef ripper_id2sym
16884 if ((name = keyword_id_to_str(
id))) {
16897 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
16915 ripper_get_value(
VALUE v)
16922 return nd->nd_rval;
16926 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
16931 va_start(args, fmt);
16938 ripper_warn0(
struct parser_params *parser,
const char *fmt)
16944 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
16952 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
16960 ripper_warning0(
struct parser_params *parser,
const char *fmt)
16966 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
16979 ripper_s_allocate(
VALUE klass)
16991 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
17007 VALUE src, fname, lineno;
17010 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
17020 if (
NIL_P(fname)) {
17028 parser->parser_ruby_sourcefile_string = fname;
17035 struct ripper_args {
17042 ripper_parse0(
VALUE parser_v)
17048 ripper_yyparse((
void*)parser);
17049 return parser->result;
17053 ripper_ensure(
VALUE parser_v)
17058 parser->parsing_thread =
Qnil;
17069 ripper_parse(
VALUE self)
17074 if (!ripper_initialized_p(parser)) {
17077 if (!
NIL_P(parser->parsing_thread)) {
17084 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17086 return parser->result;
17097 ripper_column(
VALUE self)
17103 if (!ripper_initialized_p(parser)) {
17106 if (
NIL_P(parser->parsing_thread))
return Qnil;
17118 ripper_filename(
VALUE self)
17123 if (!ripper_initialized_p(parser)) {
17126 return parser->parser_ruby_sourcefile_string;
17137 ripper_lineno(
VALUE self)
17142 if (!ripper_initialized_p(parser)) {
17145 if (
NIL_P(parser->parsing_thread))
return Qnil;
17149 #ifdef RIPPER_DEBUG
17171 InitVM_ripper(
void)
17194 #ifdef RIPPER_DEBUG