47 #define YYBISON_VERSION "2.5"
50 #define YYSKELETON_NAME "yacc.c"
62 #define YYLSP_NEEDED 0
73 #define PARSER_DEBUG 0
76 #define YYERROR_VERBOSE 1
77 #define YYSTACK_USE_ALLOCA 0
92 #define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
94 #define YYMALLOC(size) rb_parser_malloc(parser, (size))
95 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size))
96 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size))
97 #define YYFREE(ptr) rb_parser_free(parser, (ptr))
98 #define malloc YYMALLOC
99 #define realloc YYREALLOC
100 #define calloc YYCALLOC
106 #define REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc)
110 #define is_notop_id(id) ((id)>tLAST_OP_ID)
111 #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
112 #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
113 #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
114 #define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
115 #define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
116 #define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
117 #define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
118 #define id_type(id) (is_notop_id(id) ? (int)((id)&ID_SCOPE_MASK) : -1)
120 #define is_asgn_or_id(id) ((is_notop_id(id)) && \
121 (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
122 ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
123 ((id)&ID_SCOPE_MASK) == ID_CLASS))
141 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit)
157 #define IS_lex_state_for(x, ls) ((x) & (ls))
158 #define IS_lex_state(ls) IS_lex_state_for(lex_state, (ls))
161 static const char *lex_state_name(
enum lex_state_e state);
166 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
167 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
168 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
169 # define BITSTACK_SET_P(stack) ((stack)&1)
171 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
172 #define COND_POP() BITSTACK_POP(cond_stack)
173 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
174 #define COND_P() BITSTACK_SET_P(cond_stack)
176 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
177 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
178 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
179 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
195 #define DVARS_INHERIT ((void*)1)
196 #define DVARS_TOPSCOPE NULL
197 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
198 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
221 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
228 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
241 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
258 for (i = 0; i < tbl->
pos; i++) {
259 if (tbl->
tbl[i] ==
id) {
344 VALUE parser_ruby_sourcefile_string;
352 VALUE parsing_thread;
357 #define STR_NEW(p,n) rb_enc_str_new((p),(n),current_enc)
358 #define STR_NEW0() rb_enc_str_new(0,0,current_enc)
359 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc)
360 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),current_enc)
361 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT)
362 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), current_enc)
365 #define yyerror(msg) parser_yyerror(parser, (msg))
367 #define lex_strterm (parser->parser_lex_strterm)
368 #define lex_state (parser->parser_lex_state)
369 #define cond_stack (parser->parser_cond_stack)
370 #define cmdarg_stack (parser->parser_cmdarg_stack)
371 #define class_nest (parser->parser_class_nest)
372 #define paren_nest (parser->parser_paren_nest)
373 #define lpar_beg (parser->parser_lpar_beg)
374 #define brace_nest (parser->parser_brace_nest)
375 #define in_single (parser->parser_in_single)
376 #define in_def (parser->parser_in_def)
377 #define compile_for_eval (parser->parser_compile_for_eval)
378 #define cur_mid (parser->parser_cur_mid)
379 #define in_defined (parser->parser_in_defined)
380 #define tokenbuf (parser->parser_tokenbuf)
381 #define tokidx (parser->parser_tokidx)
382 #define toksiz (parser->parser_toksiz)
383 #define tokline (parser->parser_tokline)
384 #define lex_input (parser->parser_lex_input)
385 #define lex_lastline (parser->parser_lex_lastline)
386 #define lex_nextline (parser->parser_lex_nextline)
387 #define lex_pbeg (parser->parser_lex_pbeg)
388 #define lex_p (parser->parser_lex_p)
389 #define lex_pend (parser->parser_lex_pend)
390 #define heredoc_end (parser->parser_heredoc_end)
391 #define command_start (parser->parser_command_start)
392 #define deferred_nodes (parser->parser_deferred_nodes)
393 #define lex_gets_ptr (parser->parser_lex_gets_ptr)
394 #define lex_gets (parser->parser_lex_gets)
395 #define lvtbl (parser->parser_lvtbl)
396 #define ruby__end__seen (parser->parser_ruby__end__seen)
397 #define ruby_sourceline (parser->parser_ruby_sourceline)
398 #define ruby_sourcefile (parser->parser_ruby_sourcefile)
399 #define current_enc (parser->enc)
400 #define yydebug (parser->parser_yydebug)
403 #define ruby_eval_tree (parser->parser_eval_tree)
404 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
405 #define ruby_debug_lines (parser->debug_lines)
406 #define ruby_coverage (parser->coverage)
410 static int yylex(
void*,
void*);
412 static int yylex(
void*);
416 #define yyparse ruby_yyparse
419 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
422 #define cond(node) cond_gen(parser, (node))
424 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2))
432 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
433 #define void_expr0(node) void_expr_gen(parser, (node))
434 #define void_expr(node) void_expr0((node) = remove_begin(node))
436 #define void_stmts(node) void_stmts_gen(parser, (node))
438 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))
440 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))
443 #define block_append(h,t) block_append_gen(parser,(h),(t))
445 #define list_append(l,i) list_append_gen(parser,(l),(i))
447 #define list_concat(h,t) list_concat_gen(parser,(h),(t))
449 #define arg_append(h,t) arg_append_gen(parser,(h),(t))
451 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t))
453 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t))
456 #define new_evstr(n) new_evstr_gen(parser,(n))
458 #define evstr2dstr(n) evstr2dstr_gen(parser,(n))
462 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
464 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id))
467 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
469 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
473 #define ret_args(node) ret_args_gen(parser, (node))
476 #define new_yield(node) new_yield_gen(parser, (node))
478 #define dsym_node(node) dsym_node_gen(parser, (node))
481 #define gettable(id) gettable_gen(parser,(id))
483 #define assignable(id,node) assignable_gen(parser, (id), (node))
486 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2))
488 #define attrset(node,id) attrset_gen(parser, (node), (id))
491 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))
493 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
497 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs))
499 #define new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs))
502 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2))
505 #define local_tbl() local_tbl_gen(parser)
510 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))
512 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))
514 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))
516 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match))
518 #define get_id(id) (id)
519 #define get_value(val) (val)
521 #define value_expr(node) ((void)(node))
522 #define remove_begin(node) (node)
523 #define rb_dvar_defined(id) 0
524 #define rb_local_defined(id) 0
525 static ID ripper_get_id(
VALUE);
526 #define get_id(id) ripper_get_id(id)
528 #define get_value(val) ripper_get_value(val)
530 #define assignable(lhs,node) assignable_gen(parser, (lhs))
532 #define id_is_var(id) id_is_var_gen(parser, (id))
534 #define node_assign(node1, node2) dispatch2(assign, (node1), (node2))
538 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs))
542 #define new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs))
545 #define formal_argument(id) formal_argument_gen(parser, (id))
547 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
549 #define new_bv(id) new_bv_gen(parser, (id))
552 #define local_push(top) local_push_gen(parser,(top))
554 #define local_pop() local_pop_gen(parser)
556 #define local_var(id) local_var_gen(parser, (id))
558 #define arg_var(id) arg_var_gen(parser, (id))
560 #define local_id(id) local_id_gen(parser, (id))
562 #define internal_id() internal_id_gen(parser)
565 #define dyna_push() dyna_push_gen(parser)
567 #define dyna_pop(node) dyna_pop_gen(parser, (node))
569 #define dyna_in_block() dyna_in_block_gen(parser)
570 #define dyna_var(id) local_var(id)
572 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0)
573 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
575 #define dvar_curr(id) dvar_curr_gen(parser, (id))
578 #define lvar_defined(id) lvar_defined_gen(parser, (id))
580 #define RE_OPTION_ONCE (1<<16)
581 #define RE_OPTION_ENCODING_SHIFT 8
582 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
583 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
584 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
585 #define RE_OPTION_MASK 0xff
586 #define RE_OPTION_ARG_ENCODING_NONE 32
588 #define NODE_STRTERM NODE_ZARRAY
589 #define NODE_HEREDOC NODE_ARRAY
590 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
591 #define nd_func u1.id
592 #if SIZEOF_SHORT == 2
593 #define nd_term(node) ((signed short)(node)->u2.id)
595 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
597 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
598 #define nd_nest u3.cnt
603 #define RIPPER_VERSION "0.1.0"
616 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
617 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))
618 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))
619 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
620 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
621 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
622 #define dispatch7(n,a,b,c,d,e,f,g) ripper_dispatch7(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e), (f), (g))
624 #define yyparse ripper_yyparse
626 #define ripper_intern(s) ID2SYM(rb_intern(s))
627 static VALUE ripper_id2sym(
ID);
629 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
630 ID2SYM(id) : ripper_id2sym(id))
633 #define arg_new() dispatch0(args_new)
634 #define arg_add(l,a) dispatch2(args_add, (l), (a))
635 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))
636 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))
637 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))
638 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))
639 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))
641 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))
642 #define mrhs_new() dispatch0(mrhs_new)
643 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))
644 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))
646 #define mlhs_new() dispatch0(mlhs_new)
647 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))
648 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))
650 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \
651 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk))
653 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))
654 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a))
655 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a))
657 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))
658 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))
659 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))
661 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
668 return params_new(f, o, r, p, k, kr, escape_Qundef(b));
670 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
677 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
685 # define ifndef_ripper(x) (x)
688 # define ifndef_ripper(x)
692 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
693 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
694 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
695 # define rb_warn4S(file,line,fmt,a) rb_compile_warn((file), (line), (fmt), (a))
696 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
697 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
699 # define rb_warn0(fmt) ripper_warn0(parser, (fmt))
700 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a))
701 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a))
702 # define rb_warn4S(file,line,fmt,a) ripper_warnS(parser, (fmt), (a))
703 # define rb_warning0(fmt) ripper_warning0(parser, (fmt))
704 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a))
705 static void ripper_warn0(
struct parser_params*,
const char*);
706 static void ripper_warnI(
struct parser_params*,
const char*,
int);
707 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
708 static void ripper_warning0(
struct parser_params*,
const char*);
709 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
713 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
714 # define rb_compile_error ripper_compile_error
715 # define compile_error ripper_compile_error
716 # define PARSER_ARG parser,
718 # define rb_compile_error rb_compile_error_with_enc
719 # define compile_error parser->nerr++,rb_compile_error_with_enc
720 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
728 #define YYMAXDEPTH 10000
735 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
736 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
738 #define token_info_push(token)
739 #define token_info_pop(token)
752 #ifdef YYERROR_VERBOSE
753 # undef YYERROR_VERBOSE
754 # define YYERROR_VERBOSE 1
756 # define YYERROR_VERBOSE 0
760 #ifndef YYTOKEN_TABLE
761 # define YYTOKEN_TABLE 0
889 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
907 # define YYSTYPE_IS_TRIVIAL 1
908 # define yystype YYSTYPE
909 # define YYSTYPE_IS_DECLARED 1
931 #elif (defined __STDC__ || defined __C99__FUNC__ \
932 || defined __cplusplus || defined _MSC_VER)
951 # ifdef __SIZE_TYPE__
952 # define YYSIZE_T __SIZE_TYPE__
953 # elif defined size_t
954 # define YYSIZE_T size_t
955 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
956 || defined __cplusplus || defined _MSC_VER)
958 # define YYSIZE_T size_t
960 # define YYSIZE_T unsigned int
964 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
967 # if defined YYENABLE_NLS && YYENABLE_NLS
969 # include <libintl.h>
970 # define YY_(msgid) dgettext ("bison-runtime", msgid)
974 # define YY_(msgid) msgid
979 #if ! defined lint || defined __GNUC__
980 # define YYUSE(e) ((void) (e))
989 #if (defined __STDC__ || defined __C99__FUNC__ \
990 || defined __cplusplus || defined _MSC_VER)
1003 #if ! defined yyoverflow || YYERROR_VERBOSE
1007 # ifdef YYSTACK_USE_ALLOCA
1008 # if YYSTACK_USE_ALLOCA
1010 # define YYSTACK_ALLOC __builtin_alloca
1011 # elif defined __BUILTIN_VA_ARG_INCR
1012 # include <alloca.h>
1014 # define YYSTACK_ALLOC __alloca
1015 # elif defined _MSC_VER
1016 # include <malloc.h>
1017 # define alloca _alloca
1019 # define YYSTACK_ALLOC alloca
1020 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1021 || defined __cplusplus || defined _MSC_VER)
1022 # include <stdlib.h>
1023 # ifndef EXIT_SUCCESS
1024 # define EXIT_SUCCESS 0
1031 # ifdef YYSTACK_ALLOC
1033 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
1034 # ifndef YYSTACK_ALLOC_MAXIMUM
1039 # define YYSTACK_ALLOC_MAXIMUM 4032
1042 # define YYSTACK_ALLOC YYMALLOC
1043 # define YYSTACK_FREE YYFREE
1044 # ifndef YYSTACK_ALLOC_MAXIMUM
1045 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1047 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1048 && ! ((defined YYMALLOC || defined malloc) \
1049 && (defined YYFREE || defined free)))
1050 # include <stdlib.h>
1051 # ifndef EXIT_SUCCESS
1052 # define EXIT_SUCCESS 0
1056 # define YYMALLOC malloc
1057 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1058 || defined __cplusplus || defined _MSC_VER)
1063 # define YYFREE free
1064 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1065 || defined __cplusplus || defined _MSC_VER)
1073 #if (! defined yyoverflow \
1074 && (! defined __cplusplus \
1075 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1085 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1089 # define YYSTACK_BYTES(N) \
1090 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1091 + YYSTACK_GAP_MAXIMUM)
1093 # define YYCOPY_NEEDED 1
1100 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1103 YYSIZE_T yynewbytes; \
1104 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1105 Stack = &yyptr->Stack_alloc; \
1106 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1107 yyptr += yynewbytes / sizeof (*yyptr); \
1113 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1117 # if defined __GNUC__ && 1 < __GNUC__
1118 # define YYCOPY(To, From, Count) \
1119 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1121 # define YYCOPY(To, From, Count) \
1125 for (yyi = 0; yyi < (Count); yyi++) \
1126 (To)[yyi] = (From)[yyi]; \
1136 #define YYLAST 11084
1139 #define YYNTOKENS 142
1143 #define YYNRULES 619
1145 #define YYNSTATES 1056
1148 #define YYUNDEFTOK 2
1149 #define YYMAXUTOK 352
1151 #define YYTRANSLATE(YYX) \
1152 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1157 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1158 141, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1160 2, 2, 140, 127, 2, 2, 2, 125, 120, 2,
1161 136, 137, 123, 121, 134, 122, 133, 124, 2, 2,
1162 2, 2, 2, 2, 2, 2, 2, 2, 115, 139,
1163 117, 113, 116, 114, 2, 2, 2, 2, 2, 2,
1164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1166 2, 132, 2, 138, 119, 2, 135, 2, 2, 2,
1167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1169 2, 2, 2, 130, 118, 131, 128, 2, 79, 80,
1170 66, 67, 68, 2, 69, 83, 84, 74, 73, 70,
1171 71, 72, 77, 78, 81, 82, 2, 2, 2, 2,
1172 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1182 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1183 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1184 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1185 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1186 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1187 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1188 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1189 65, 75, 76, 85, 86, 87, 88, 89, 90, 91,
1190 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1191 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1200 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1201 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1202 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1203 91, 95, 99, 104, 106, 110, 114, 121, 127, 133,
1204 139, 145, 149, 153, 157, 161, 163, 167, 171, 173,
1205 177, 181, 185, 188, 190, 192, 194, 196, 198, 203,
1206 204, 210, 212, 215, 219, 224, 230, 235, 241, 244,
1207 247, 250, 253, 256, 258, 262, 264, 268, 270, 273,
1208 277, 283, 286, 291, 294, 299, 301, 305, 307, 311,
1209 314, 318, 320, 324, 326, 328, 333, 337, 341, 345,
1210 349, 352, 354, 356, 358, 363, 367, 371, 375, 379,
1211 382, 384, 386, 388, 391, 393, 397, 399, 401, 403,
1212 405, 407, 409, 411, 413, 415, 417, 418, 423, 425,
1213 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1214 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1215 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1216 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1217 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1218 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1219 547, 549, 551, 553, 555, 557, 559, 561, 563, 565,
1220 569, 575, 579, 585, 592, 598, 604, 610, 616, 621,
1221 625, 629, 633, 637, 641, 645, 649, 653, 657, 662,
1222 667, 670, 673, 677, 681, 685, 689, 693, 697, 701,
1223 705, 709, 713, 717, 721, 725, 728, 731, 735, 739,
1224 743, 747, 748, 753, 760, 762, 764, 766, 769, 774,
1225 777, 781, 783, 785, 787, 789, 792, 797, 800, 802,
1226 805, 808, 813, 815, 816, 819, 822, 825, 827, 829,
1227 832, 836, 841, 845, 850, 853, 855, 857, 859, 861,
1228 863, 865, 867, 869, 871, 873, 875, 876, 881, 882,
1229 886, 887, 892, 896, 900, 903, 907, 911, 913, 918,
1230 922, 924, 925, 932, 937, 941, 944, 946, 949, 952,
1231 959, 966, 967, 968, 976, 977, 978, 986, 992, 997,
1232 998, 999, 1009, 1010, 1017, 1018, 1019, 1028, 1029, 1035,
1233 1036, 1043, 1044, 1045, 1055, 1057, 1059, 1061, 1063, 1065,
1234 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085,
1235 1087, 1089, 1091, 1094, 1096, 1098, 1100, 1106, 1108, 1111,
1236 1113, 1115, 1117, 1121, 1123, 1127, 1129, 1134, 1141, 1145,
1237 1151, 1154, 1159, 1161, 1165, 1170, 1173, 1176, 1178, 1181,
1238 1182, 1189, 1198, 1203, 1210, 1215, 1218, 1225, 1228, 1233,
1239 1240, 1243, 1248, 1251, 1256, 1258, 1260, 1262, 1266, 1268,
1240 1273, 1275, 1280, 1282, 1286, 1288, 1290, 1291, 1292, 1293,
1241 1299, 1304, 1306, 1310, 1314, 1315, 1321, 1324, 1329, 1335,
1242 1341, 1344, 1345, 1351, 1352, 1358, 1362, 1363, 1368, 1369,
1243 1374, 1377, 1379, 1384, 1385, 1391, 1392, 1398, 1404, 1406,
1244 1408, 1415, 1417, 1419, 1421, 1423, 1426, 1428, 1431, 1433,
1245 1435, 1437, 1439, 1441, 1443, 1445, 1448, 1452, 1456, 1460,
1246 1464, 1468, 1469, 1473, 1475, 1478, 1482, 1486, 1487, 1491,
1247 1495, 1499, 1503, 1507, 1508, 1512, 1513, 1517, 1518, 1521,
1248 1522, 1525, 1526, 1529, 1531, 1532, 1536, 1537, 1538, 1539,
1249 1546, 1548, 1550, 1552, 1554, 1557, 1559, 1561, 1563, 1565,
1250 1569, 1571, 1573, 1576, 1579, 1581, 1583, 1585, 1587, 1589,
1251 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609,
1252 1611, 1613, 1615, 1617, 1618, 1623, 1626, 1630, 1633, 1638,
1253 1641, 1644, 1646, 1649, 1650, 1657, 1666, 1671, 1678, 1683,
1254 1690, 1693, 1698, 1705, 1708, 1713, 1716, 1721, 1723, 1724,
1255 1726, 1728, 1730, 1732, 1734, 1736, 1738, 1742, 1744, 1748,
1256 1751, 1754, 1756, 1760, 1762, 1766, 1768, 1770, 1773, 1775,
1257 1779, 1783, 1785, 1789, 1791, 1795, 1797, 1799, 1802, 1804,
1258 1806, 1808, 1811, 1814, 1816, 1818, 1819, 1824, 1826, 1829,
1259 1831, 1835, 1839, 1842, 1845, 1847, 1849, 1851, 1853, 1855,
1260 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1870, 1872, 1873,
1261 1875, 1878, 1881, 1882, 1884, 1886, 1888, 1890, 1892, 1895
1267 143, 0, -1, -1, 144, 145, -1, 146, 332, -1,
1268 339, -1, 147, -1, 146, 338, 147, -1, 1, 147,
1269 -1, 154, -1, -1, 47, 148, 130, 145, 131, -1,
1270 150, 261, 229, 264, -1, 151, 332, -1, 339, -1,
1271 152, -1, 151, 338, 152, -1, 1, 154, -1, 154,
1272 -1, -1, 47, 153, 130, 145, 131, -1, -1, 45,
1273 177, 155, 177, -1, 45, 54, 54, -1, 45, 54,
1274 64, -1, 45, 54, 63, -1, 6, 178, -1, 154,
1275 40, 158, -1, 154, 41, 158, -1, 154, 42, 158,
1276 -1, 154, 43, 158, -1, 154, 44, 154, -1, 48,
1277 130, 150, 131, -1, 156, -1, 165, 113, 159, -1,
1278 296, 87, 159, -1, 214, 132, 188, 335, 87, 159,
1279 -1, 214, 133, 52, 87, 159, -1, 214, 133, 56,
1280 87, 159, -1, 214, 85, 56, 87, 159, -1, 214,
1281 85, 52, 87, 159, -1, 297, 87, 159, -1, 172,
1282 113, 195, -1, 165, 113, 184, -1, 165, 113, 195,
1283 -1, 157, -1, 172, 113, 159, -1, 172, 113, 156,
1284 -1, 159, -1, 157, 37, 157, -1, 157, 38, 157,
1285 -1, 39, 333, 157, -1, 127, 159, -1, 182, -1,
1286 157, -1, 164, -1, 160, -1, 250, -1, 250, 331,
1287 329, 190, -1, -1, 94, 162, 237, 150, 131, -1,
1288 328, -1, 163, 190, -1, 163, 190, 161, -1, 214,
1289 133, 329, 190, -1, 214, 133, 329, 190, 161, -1,
1290 214, 85, 329, 190, -1, 214, 85, 329, 190, 161,
1291 -1, 32, 190, -1, 31, 190, -1, 30, 189, -1,
1292 21, 189, -1, 22, 189, -1, 167, -1, 89, 166,
1293 334, -1, 167, -1, 89, 166, 334, -1, 169, -1,
1294 169, 168, -1, 169, 95, 171, -1, 169, 95, 171,
1295 134, 170, -1, 169, 95, -1, 169, 95, 134, 170,
1296 -1, 95, 171, -1, 95, 171, 134, 170, -1, 95,
1297 -1, 95, 134, 170, -1, 171, -1, 89, 166, 334,
1298 -1, 168, 134, -1, 169, 168, 134, -1, 168, -1,
1299 170, 134, 168, -1, 293, -1, 294, -1, 214, 132,
1300 188, 335, -1, 214, 133, 52, -1, 214, 85, 52,
1301 -1, 214, 133, 56, -1, 214, 85, 56, -1, 86,
1302 56, -1, 297, -1, 293, -1, 294, -1, 214, 132,
1303 188, 335, -1, 214, 133, 52, -1, 214, 85, 52,
1304 -1, 214, 133, 56, -1, 214, 85, 56, -1, 86,
1305 56, -1, 297, -1, 52, -1, 56, -1, 86, 173,
1306 -1, 173, -1, 214, 85, 173, -1, 52, -1, 56,
1307 -1, 53, -1, 180, -1, 181, -1, 175, -1, 289,
1308 -1, 176, -1, 291, -1, 177, -1, -1, 178, 134,
1309 179, 177, -1, 118, -1, 119, -1, 120, -1, 69,
1310 -1, 70, -1, 71, -1, 77, -1, 78, -1, 116,
1311 -1, 73, -1, 117, -1, 74, -1, 72, -1, 83,
1312 -1, 84, -1, 121, -1, 122, -1, 123, -1, 95,
1313 -1, 124, -1, 125, -1, 68, -1, 96, -1, 127,
1314 -1, 128, -1, 66, -1, 67, -1, 81, -1, 82,
1315 -1, 135, -1, 49, -1, 50, -1, 51, -1, 47,
1316 -1, 48, -1, 45, -1, 37, -1, 7, -1, 21,
1317 -1, 16, -1, 3, -1, 5, -1, 46, -1, 26,
1318 -1, 15, -1, 14, -1, 10, -1, 9, -1, 36,
1319 -1, 20, -1, 25, -1, 4, -1, 22, -1, 34,
1320 -1, 39, -1, 38, -1, 23, -1, 8, -1, 24,
1321 -1, 30, -1, 33, -1, 32, -1, 13, -1, 35,
1322 -1, 6, -1, 17, -1, 31, -1, 11, -1, 12,
1323 -1, 18, -1, 19, -1, 172, 113, 182, -1, 172,
1324 113, 182, 44, 182, -1, 296, 87, 182, -1, 296,
1325 87, 182, 44, 182, -1, 214, 132, 188, 335, 87,
1326 182, -1, 214, 133, 52, 87, 182, -1, 214, 133,
1327 56, 87, 182, -1, 214, 85, 52, 87, 182, -1,
1328 214, 85, 56, 87, 182, -1, 86, 56, 87, 182,
1329 -1, 297, 87, 182, -1, 182, 79, 182, -1, 182,
1330 80, 182, -1, 182, 121, 182, -1, 182, 122, 182,
1331 -1, 182, 123, 182, -1, 182, 124, 182, -1, 182,
1332 125, 182, -1, 182, 68, 182, -1, 126, 59, 68,
1333 182, -1, 126, 60, 68, 182, -1, 66, 182, -1,
1334 67, 182, -1, 182, 118, 182, -1, 182, 119, 182,
1335 -1, 182, 120, 182, -1, 182, 69, 182, -1, 182,
1336 116, 182, -1, 182, 73, 182, -1, 182, 117, 182,
1337 -1, 182, 74, 182, -1, 182, 70, 182, -1, 182,
1338 71, 182, -1, 182, 72, 182, -1, 182, 77, 182,
1339 -1, 182, 78, 182, -1, 127, 182, -1, 128, 182,
1340 -1, 182, 83, 182, -1, 182, 84, 182, -1, 182,
1341 75, 182, -1, 182, 76, 182, -1, -1, 46, 333,
1342 183, 182, -1, 182, 114, 182, 333, 115, 182, -1,
1343 196, -1, 182, -1, 339, -1, 194, 336, -1, 194,
1344 134, 326, 336, -1, 326, 336, -1, 136, 188, 334,
1345 -1, 339, -1, 186, -1, 339, -1, 189, -1, 194,
1346 134, -1, 194, 134, 326, 134, -1, 326, 134, -1,
1347 164, -1, 194, 193, -1, 326, 193, -1, 194, 134,
1348 326, 193, -1, 192, -1, -1, 191, 189, -1, 97,
1349 184, -1, 134, 192, -1, 339, -1, 184, -1, 95,
1350 184, -1, 194, 134, 184, -1, 194, 134, 95, 184,
1351 -1, 194, 134, 184, -1, 194, 134, 95, 184, -1,
1352 95, 184, -1, 265, -1, 266, -1, 269, -1, 270,
1353 -1, 271, -1, 276, -1, 274, -1, 277, -1, 295,
1354 -1, 297, -1, 53, -1, -1, 215, 197, 149, 225,
1355 -1, -1, 90, 198, 334, -1, -1, 90, 157, 199,
1356 334, -1, 89, 150, 137, -1, 214, 85, 56, -1,
1357 86, 56, -1, 92, 185, 138, -1, 93, 325, 131,
1358 -1, 30, -1, 31, 136, 189, 334, -1, 31, 136,
1359 334, -1, 31, -1, -1, 46, 333, 136, 200, 157,
1360 334, -1, 39, 136, 157, 334, -1, 39, 136, 334,
1361 -1, 163, 256, -1, 251, -1, 251, 256, -1, 98,
1362 242, -1, 216, 158, 226, 150, 228, 225, -1, 217,
1363 158, 226, 150, 229, 225, -1, -1, -1, 218, 201,
1364 158, 227, 202, 150, 225, -1, -1, -1, 219, 203,
1365 158, 227, 204, 150, 225, -1, 220, 158, 332, 259,
1366 225, -1, 220, 332, 259, 225, -1, -1, -1, 221,
1367 230, 25, 205, 158, 227, 206, 150, 225, -1, -1,
1368 222, 174, 298, 207, 149, 225, -1, -1, -1, 222,
1369 83, 157, 208, 337, 209, 149, 225, -1, -1, 223,
1370 174, 210, 149, 225, -1, -1, 224, 175, 211, 300,
1371 149, 225, -1, -1, -1, 224, 323, 331, 212, 175,
1372 213, 300, 149, 225, -1, 21, -1, 22, -1, 23,
1373 -1, 24, -1, 196, -1, 7, -1, 11, -1, 12,
1374 -1, 18, -1, 19, -1, 16, -1, 20, -1, 3,
1375 -1, 4, -1, 5, -1, 10, -1, 337, -1, 13,
1376 -1, 337, 13, -1, 337, -1, 27, -1, 229, -1,
1377 14, 158, 226, 150, 228, -1, 339, -1, 15, 150,
1378 -1, 172, -1, 165, -1, 305, -1, 89, 233, 334,
1379 -1, 231, -1, 232, 134, 231, -1, 232, -1, 232,
1380 134, 95, 305, -1, 232, 134, 95, 305, 134, 232,
1381 -1, 232, 134, 95, -1, 232, 134, 95, 134, 232,
1382 -1, 95, 305, -1, 95, 305, 134, 232, -1, 95,
1383 -1, 95, 134, 232, -1, 310, 134, 313, 322, -1,
1384 310, 322, -1, 313, 322, -1, 321, -1, 134, 234,
1385 -1, -1, 307, 134, 316, 134, 319, 235, -1, 307,
1386 134, 316, 134, 319, 134, 307, 235, -1, 307, 134,
1387 316, 235, -1, 307, 134, 316, 134, 307, 235, -1,
1388 307, 134, 319, 235, -1, 307, 134, -1, 307, 134,
1389 319, 134, 307, 235, -1, 307, 235, -1, 316, 134,
1390 319, 235, -1, 316, 134, 319, 134, 307, 235, -1,
1391 316, 235, -1, 316, 134, 307, 235, -1, 319, 235,
1392 -1, 319, 134, 307, 235, -1, 234, -1, 339, -1,
1393 238, -1, 118, 239, 118, -1, 76, -1, 118, 236,
1394 239, 118, -1, 333, -1, 333, 139, 240, 333, -1,
1395 241, -1, 240, 134, 241, -1, 52, -1, 304, -1,
1396 -1, -1, -1, 243, 244, 246, 245, 247, -1, 136,
1397 303, 239, 137, -1, 303, -1, 111, 150, 131, -1,
1398 29, 150, 10, -1, -1, 28, 249, 237, 150, 10,
1399 -1, 164, 248, -1, 250, 331, 329, 187, -1, 250,
1400 331, 329, 187, 256, -1, 250, 331, 329, 190, 248,
1401 -1, 163, 186, -1, -1, 214, 133, 329, 252, 187,
1402 -1, -1, 214, 85, 329, 253, 186, -1, 214, 85,
1403 330, -1, -1, 214, 133, 254, 186, -1, -1, 214,
1404 85, 255, 186, -1, 32, 186, -1, 32, -1, 214,
1405 132, 188, 335, -1, -1, 130, 257, 237, 150, 131,
1406 -1, -1, 26, 258, 237, 150, 10, -1, 17, 194,
1407 226, 150, 260, -1, 229, -1, 259, -1, 8, 262,
1408 263, 226, 150, 261, -1, 339, -1, 184, -1, 195,
1409 -1, 339, -1, 88, 172, -1, 339, -1, 9, 150,
1410 -1, 339, -1, 292, -1, 289, -1, 291, -1, 267,
1411 -1, 62, -1, 268, -1, 267, 268, -1, 100, 280,
1412 110, -1, 101, 281, 110, -1, 102, 282, 65, -1,
1413 103, 140, 110, -1, 103, 272, 110, -1, -1, 272,
1414 273, 140, -1, 283, -1, 273, 283, -1, 105, 140,
1415 110, -1, 105, 275, 110, -1, -1, 275, 273, 140,
1416 -1, 104, 140, 110, -1, 104, 278, 110, -1, 106,
1417 140, 110, -1, 106, 279, 110, -1, -1, 278, 61,
1418 140, -1, -1, 279, 61, 140, -1, -1, 280, 283,
1419 -1, -1, 281, 283, -1, -1, 282, 283, -1, 61,
1420 -1, -1, 109, 284, 288, -1, -1, -1, -1, 107,
1421 285, 286, 287, 150, 108, -1, 54, -1, 55, -1,
1422 57, -1, 297, -1, 99, 290, -1, 175, -1, 55,
1423 -1, 54, -1, 57, -1, 99, 281, 110, -1, 59,
1424 -1, 60, -1, 126, 59, -1, 126, 60, -1, 52,
1425 -1, 55, -1, 54, -1, 56, -1, 57, -1, 34,
1426 -1, 33, -1, 35, -1, 36, -1, 50, -1, 49,
1427 -1, 51, -1, 293, -1, 294, -1, 293, -1, 294,
1428 -1, 63, -1, 64, -1, 337, -1, -1, 117, 299,
1429 158, 337, -1, 1, 337, -1, 136, 303, 334, -1,
1430 303, 337, -1, 311, 134, 313, 322, -1, 311, 322,
1431 -1, 313, 322, -1, 321, -1, 134, 301, -1, -1,
1432 307, 134, 317, 134, 319, 302, -1, 307, 134, 317,
1433 134, 319, 134, 307, 302, -1, 307, 134, 317, 302,
1434 -1, 307, 134, 317, 134, 307, 302, -1, 307, 134,
1435 319, 302, -1, 307, 134, 319, 134, 307, 302, -1,
1436 307, 302, -1, 317, 134, 319, 302, -1, 317, 134,
1437 319, 134, 307, 302, -1, 317, 302, -1, 317, 134,
1438 307, 302, -1, 319, 302, -1, 319, 134, 307, 302,
1439 -1, 301, -1, -1, 56, -1, 55, -1, 54, -1,
1440 57, -1, 304, -1, 52, -1, 305, -1, 89, 233,
1441 334, -1, 306, -1, 307, 134, 306, -1, 58, 184,
1442 -1, 58, 214, -1, 309, -1, 310, 134, 309, -1,
1443 308, -1, 311, 134, 308, -1, 68, -1, 96, -1,
1444 312, 52, -1, 312, -1, 52, 113, 184, -1, 52,
1445 113, 214, -1, 315, -1, 316, 134, 315, -1, 314,
1446 -1, 317, 134, 314, -1, 123, -1, 95, -1, 318,
1447 52, -1, 318, -1, 120, -1, 97, -1, 320, 52,
1448 -1, 134, 321, -1, 339, -1, 295, -1, -1, 136,
1449 324, 157, 334, -1, 339, -1, 326, 336, -1, 327,
1450 -1, 326, 134, 327, -1, 184, 88, 184, -1, 58,
1451 184, -1, 96, 184, -1, 52, -1, 56, -1, 53,
1452 -1, 52, -1, 56, -1, 53, -1, 180, -1, 52,
1453 -1, 53, -1, 180, -1, 133, -1, 85, -1, -1,
1454 338, -1, -1, 141, -1, 333, 137, -1, 333, 138,
1455 -1, -1, 141, -1, 134, -1, 139, -1, 141, -1,
1456 337, -1, 338, 139, -1, -1
1462 0, 853, 853, 853, 884, 895, 904, 912, 920, 926,
1463 928, 927, 948, 981, 992, 1001, 1009, 1017, 1023, 1028,
1464 1027, 1048, 1048, 1056, 1064, 1075, 1085, 1093, 1102, 1111,
1465 1124, 1137, 1146, 1158, 1159, 1169, 1174, 1195, 1200, 1205,
1466 1215, 1220, 1230, 1239, 1248, 1257, 1260, 1269, 1281, 1282,
1467 1290, 1298, 1306, 1314, 1317, 1329, 1330, 1333, 1334, 1346,
1468 1345, 1367, 1377, 1386, 1399, 1408, 1420, 1429, 1441, 1450,
1469 1459, 1467, 1475, 1485, 1486, 1496, 1497, 1507, 1515, 1523,
1470 1531, 1540, 1548, 1557, 1565, 1574, 1582, 1593, 1594, 1604,
1471 1612, 1622, 1630, 1640, 1644, 1648, 1656, 1664, 1672, 1680,
1472 1692, 1702, 1714, 1723, 1732, 1740, 1748, 1756, 1764, 1777,
1473 1790, 1801, 1809, 1812, 1820, 1828, 1838, 1839, 1840, 1841,
1474 1846, 1857, 1858, 1861, 1869, 1872, 1880, 1880, 1890, 1891,
1475 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901,
1476 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911,
1477 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1922, 1922,
1478 1922, 1923, 1923, 1924, 1924, 1924, 1925, 1925, 1925, 1925,
1479 1926, 1926, 1926, 1926, 1927, 1927, 1927, 1928, 1928, 1928,
1480 1928, 1929, 1929, 1929, 1929, 1930, 1930, 1930, 1930, 1931,
1481 1931, 1931, 1931, 1932, 1932, 1932, 1932, 1933, 1933, 1936,
1482 1945, 1955, 1960, 1970, 1996, 2001, 2006, 2011, 2021, 2031,
1483 2042, 2056, 2070, 2078, 2086, 2094, 2102, 2110, 2118, 2127,
1484 2136, 2144, 2152, 2160, 2168, 2176, 2184, 2192, 2200, 2208,
1485 2216, 2224, 2232, 2240, 2251, 2259, 2267, 2275, 2283, 2291,
1486 2299, 2307, 2307, 2317, 2327, 2333, 2345, 2346, 2350, 2358,
1487 2368, 2378, 2379, 2382, 2383, 2384, 2388, 2396, 2406, 2415,
1488 2423, 2433, 2442, 2451, 2451, 2463, 2473, 2477, 2483, 2491,
1489 2499, 2513, 2529, 2543, 2558, 2568, 2569, 2570, 2571, 2572,
1490 2573, 2574, 2575, 2576, 2577, 2578, 2587, 2586, 2614, 2614,
1491 2622, 2622, 2630, 2638, 2646, 2654, 2667, 2675, 2683, 2691,
1492 2699, 2707, 2707, 2717, 2725, 2733, 2743, 2744, 2754, 2758,
1493 2770, 2782, 2782, 2782, 2793, 2793, 2793, 2804, 2815, 2824,
1494 2826, 2823, 2890, 2889, 2911, 2916, 2910, 2935, 2934, 2956,
1495 2955, 2978, 2979, 2978, 2999, 3007, 3015, 3023, 3033, 3045,
1496 3051, 3057, 3063, 3069, 3075, 3081, 3087, 3093, 3099, 3109,
1497 3115, 3120, 3121, 3128, 3133, 3136, 3137, 3150, 3151, 3161,
1498 3162, 3165, 3173, 3183, 3191, 3201, 3209, 3218, 3227, 3235,
1499 3243, 3252, 3264, 3272, 3283, 3287, 3291, 3295, 3301, 3306,
1500 3311, 3315, 3319, 3323, 3327, 3331, 3339, 3343, 3347, 3351,
1501 3355, 3359, 3363, 3367, 3371, 3377, 3378, 3384, 3393, 3402,
1502 3413, 3417, 3427, 3434, 3443, 3451, 3457, 3460, 3465, 3457,
1503 3481, 3489, 3499, 3503, 3510, 3509, 3530, 3546, 3555, 3567,
1504 3581, 3591, 3590, 3607, 3606, 3622, 3631, 3630, 3648, 3647,
1505 3664, 3672, 3680, 3695, 3694, 3714, 3713, 3734, 3746, 3747,
1506 3750, 3769, 3772, 3780, 3788, 3791, 3795, 3798, 3806, 3809,
1507 3810, 3818, 3821, 3838, 3839, 3840, 3850, 3860, 3887, 3952,
1508 3961, 3972, 3979, 3989, 3997, 4007, 4016, 4027, 4034, 4046,
1509 4055, 4065, 4074, 4085, 4092, 4103, 4110, 4125, 4132, 4143,
1510 4150, 4161, 4168, 4197, 4199, 4198, 4215, 4221, 4226, 4214,
1511 4245, 4253, 4261, 4269, 4272, 4283, 4284, 4285, 4286, 4289,
1512 4300, 4301, 4302, 4310, 4320, 4321, 4322, 4323, 4324, 4327,
1513 4328, 4329, 4330, 4331, 4332, 4333, 4336, 4349, 4359, 4367,
1514 4377, 4378, 4381, 4390, 4389, 4398, 4410, 4420, 4428, 4432,
1515 4436, 4440, 4446, 4451, 4456, 4460, 4464, 4468, 4472, 4476,
1516 4480, 4484, 4488, 4492, 4496, 4500, 4504, 4508, 4513, 4519,
1517 4528, 4537, 4546, 4557, 4558, 4565, 4574, 4593, 4600, 4613,
1518 4625, 4637, 4645, 4662, 4670, 4686, 4687, 4690, 4695, 4701,
1519 4713, 4725, 4733, 4749, 4757, 4773, 4774, 4777, 4790, 4801,
1520 4802, 4805, 4822, 4826, 4836, 4846, 4846, 4875, 4876, 4886,
1521 4893, 4903, 4911, 4919, 4931, 4932, 4933, 4936, 4937, 4938,
1522 4939, 4942, 4943, 4944, 4947, 4952, 4959, 4960, 4963, 4964,
1523 4967, 4970, 4973, 4974, 4975, 4978, 4979, 4982, 4983, 4987
1527 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1532 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1533 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1534 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1535 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1536 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1537 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1538 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1539 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1540 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1541 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1542 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1543 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1544 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1545 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1546 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
1547 "tCHAR",
"tNTH_REF",
"tBACK_REF",
"tREGEXP_END",
"\"unary+\"",
1548 "\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
"\"===\"",
"\"!=\"",
1549 "\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
"\"!~\"",
"\"..\"",
1550 "\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
"\"::\"",
1551 "\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
"\"( arg\"",
1552 "\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
"\"**arg\"",
"\"&\"",
1553 "\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
1554 "tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
"tQSYMBOLS_BEG",
1555 "tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1556 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1557 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
1558 "'{'",
"'}'",
"'['",
"'.'",
"','",
"'`'",
"'('",
"')'",
"']'",
"';'",
1559 "' '",
"'\\n'",
"$accept",
"program",
"$@1",
"top_compstmt",
"top_stmts",
1560 "top_stmt",
"$@2",
"bodystmt",
"compstmt",
"stmts",
"stmt_or_begin",
1561 "$@3",
"stmt",
"$@4",
"command_asgn",
"expr",
"expr_value",
1562 "command_call",
"block_command",
"cmd_brace_block",
"@5",
"fcall",
1563 "command",
"mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
1564 "mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
1565 "fitem",
"undef_list",
"$@6",
"op",
"reswords",
"arg",
"$@7",
1566 "arg_value",
"aref_args",
"paren_args",
"opt_paren_args",
1567 "opt_call_args",
"call_args",
"command_args",
"@8",
"block_arg",
1568 "opt_block_arg",
"args",
"mrhs",
"primary",
"@9",
"$@10",
"$@11",
"$@12",
1569 "$@13",
"$@14",
"$@15",
"$@16",
"$@17",
"$@18",
"@19",
"@20",
"@21",
1570 "@22",
"@23",
"$@24",
"$@25",
"primary_value",
"k_begin",
"k_if",
1571 "k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
"k_class",
1572 "k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
"opt_else",
1573 "for_var",
"f_marg",
"f_marg_list",
"f_margs",
"block_args_tail",
1574 "opt_block_args_tail",
"block_param",
"opt_block_param",
1575 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@26",
1576 "@27",
"@28",
"f_larglist",
"lambda_body",
"do_block",
"@29",
1577 "block_call",
"method_call",
"@30",
"@31",
"@32",
"@33",
"brace_block",
1578 "@34",
"@35",
"case_body",
"cases",
"opt_rescue",
"exc_list",
"exc_var",
1579 "opt_ensure",
"literal",
"strings",
"string",
"string1",
"xstring",
1580 "regexp",
"words",
"word_list",
"word",
"symbols",
"symbol_list",
1581 "qwords",
"qsymbols",
"qword_list",
"qsym_list",
"string_contents",
1582 "xstring_contents",
"regexp_contents",
"string_content",
"@36",
"@37",
1583 "@38",
"@39",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1584 "user_variable",
"keyword_variable",
"var_ref",
"var_lhs",
"backref",
1585 "superclass",
"$@40",
"f_arglist",
"args_tail",
"opt_args_tail",
1586 "f_args",
"f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_kw",
1587 "f_block_kw",
"f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
1588 "f_opt",
"f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1589 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1590 "singleton",
"$@41",
"assoc_list",
"assocs",
"assoc",
"operation",
1591 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1592 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1599 static const yytype_uint16 yytoknum[] =
1601 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1602 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1603 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1604 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1605 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1606 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1607 315, 316, 317, 318, 319, 320, 130, 131, 132, 134,
1608 139, 140, 141, 138, 137, 321, 322, 142, 143, 128,
1609 129, 144, 145, 135, 136, 323, 324, 325, 326, 327,
1610 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1611 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1612 348, 349, 350, 61, 63, 58, 62, 60, 124, 94,
1613 38, 43, 45, 42, 47, 37, 351, 33, 126, 352,
1614 123, 125, 91, 46, 44, 96, 40, 41, 93, 59,
1620 static const yytype_uint16
yyr1[] =
1622 0, 142, 144, 143, 145, 146, 146, 146, 146, 147,
1623 148, 147, 149, 150, 151, 151, 151, 151, 152, 153,
1624 152, 155, 154, 154, 154, 154, 154, 154, 154, 154,
1625 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1626 154, 154, 154, 154, 154, 154, 156, 156, 157, 157,
1627 157, 157, 157, 157, 158, 159, 159, 160, 160, 162,
1628 161, 163, 164, 164, 164, 164, 164, 164, 164, 164,
1629 164, 164, 164, 165, 165, 166, 166, 167, 167, 167,
1630 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
1631 169, 170, 170, 171, 171, 171, 171, 171, 171, 171,
1632 171, 171, 172, 172, 172, 172, 172, 172, 172, 172,
1633 172, 173, 173, 174, 174, 174, 175, 175, 175, 175,
1634 175, 176, 176, 177, 177, 178, 179, 178, 180, 180,
1635 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1636 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1637 180, 180, 180, 180, 180, 180, 180, 180, 181, 181,
1638 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1639 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1640 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1641 181, 181, 181, 181, 181, 181, 181, 181, 181, 182,
1642 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1643 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1644 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1645 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1646 182, 183, 182, 182, 182, 184, 185, 185, 185, 185,
1647 186, 187, 187, 188, 188, 188, 188, 188, 189, 189,
1648 189, 189, 189, 191, 190, 192, 193, 193, 194, 194,
1649 194, 194, 195, 195, 195, 196, 196, 196, 196, 196,
1650 196, 196, 196, 196, 196, 196, 197, 196, 198, 196,
1651 199, 196, 196, 196, 196, 196, 196, 196, 196, 196,
1652 196, 200, 196, 196, 196, 196, 196, 196, 196, 196,
1653 196, 201, 202, 196, 203, 204, 196, 196, 196, 205,
1654 206, 196, 207, 196, 208, 209, 196, 210, 196, 211,
1655 196, 212, 213, 196, 196, 196, 196, 196, 214, 215,
1656 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1657 226, 226, 226, 227, 227, 228, 228, 229, 229, 230,
1658 230, 231, 231, 232, 232, 233, 233, 233, 233, 233,
1659 233, 233, 233, 233, 234, 234, 234, 234, 235, 235,
1660 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1661 236, 236, 236, 236, 236, 237, 237, 238, 238, 238,
1662 239, 239, 240, 240, 241, 241, 243, 244, 245, 242,
1663 246, 246, 247, 247, 249, 248, 250, 250, 250, 250,
1664 251, 252, 251, 253, 251, 251, 254, 251, 255, 251,
1665 251, 251, 251, 257, 256, 258, 256, 259, 260, 260,
1666 261, 261, 262, 262, 262, 263, 263, 264, 264, 265,
1667 265, 265, 266, 267, 267, 267, 268, 269, 270, 271,
1668 271, 272, 272, 273, 273, 274, 274, 275, 275, 276,
1669 276, 277, 277, 278, 278, 279, 279, 280, 280, 281,
1670 281, 282, 282, 283, 284, 283, 285, 286, 287, 283,
1671 288, 288, 288, 288, 289, 290, 290, 290, 290, 291,
1672 292, 292, 292, 292, 293, 293, 293, 293, 293, 294,
1673 294, 294, 294, 294, 294, 294, 295, 295, 296, 296,
1674 297, 297, 298, 299, 298, 298, 300, 300, 301, 301,
1675 301, 301, 302, 302, 303, 303, 303, 303, 303, 303,
1676 303, 303, 303, 303, 303, 303, 303, 303, 303, 304,
1677 304, 304, 304, 305, 305, 306, 306, 307, 307, 308,
1678 309, 310, 310, 311, 311, 312, 312, 313, 313, 314,
1679 315, 316, 316, 317, 317, 318, 318, 319, 319, 320,
1680 320, 321, 322, 322, 323, 324, 323, 325, 325, 326,
1681 326, 327, 327, 327, 328, 328, 328, 329, 329, 329,
1682 329, 330, 330, 330, 331, 331, 332, 332, 333, 333,
1683 334, 335, 336, 336, 336, 337, 337, 338, 338, 339
1689 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1690 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
1691 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
1692 3, 3, 4, 1, 3, 3, 6, 5, 5, 5,
1693 5, 3, 3, 3, 3, 1, 3, 3, 1, 3,
1694 3, 3, 2, 1, 1, 1, 1, 1, 4, 0,
1695 5, 1, 2, 3, 4, 5, 4, 5, 2, 2,
1696 2, 2, 2, 1, 3, 1, 3, 1, 2, 3,
1697 5, 2, 4, 2, 4, 1, 3, 1, 3, 2,
1698 3, 1, 3, 1, 1, 4, 3, 3, 3, 3,
1699 2, 1, 1, 1, 4, 3, 3, 3, 3, 2,
1700 1, 1, 1, 2, 1, 3, 1, 1, 1, 1,
1701 1, 1, 1, 1, 1, 1, 0, 4, 1, 1,
1702 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1703 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1704 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1705 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1706 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1707 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1708 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
1709 5, 3, 5, 6, 5, 5, 5, 5, 4, 3,
1710 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
1711 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
1712 3, 3, 3, 3, 3, 2, 2, 3, 3, 3,
1713 3, 0, 4, 6, 1, 1, 1, 2, 4, 2,
1714 3, 1, 1, 1, 1, 2, 4, 2, 1, 2,
1715 2, 4, 1, 0, 2, 2, 2, 1, 1, 2,
1716 3, 4, 3, 4, 2, 1, 1, 1, 1, 1,
1717 1, 1, 1, 1, 1, 1, 0, 4, 0, 3,
1718 0, 4, 3, 3, 2, 3, 3, 1, 4, 3,
1719 1, 0, 6, 4, 3, 2, 1, 2, 2, 6,
1720 6, 0, 0, 7, 0, 0, 7, 5, 4, 0,
1721 0, 9, 0, 6, 0, 0, 8, 0, 5, 0,
1722 6, 0, 0, 9, 1, 1, 1, 1, 1, 1,
1723 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1724 1, 1, 2, 1, 1, 1, 5, 1, 2, 1,
1725 1, 1, 3, 1, 3, 1, 4, 6, 3, 5,
1726 2, 4, 1, 3, 4, 2, 2, 1, 2, 0,
1727 6, 8, 4, 6, 4, 2, 6, 2, 4, 6,
1728 2, 4, 2, 4, 1, 1, 1, 3, 1, 4,
1729 1, 4, 1, 3, 1, 1, 0, 0, 0, 5,
1730 4, 1, 3, 3, 0, 5, 2, 4, 5, 5,
1731 2, 0, 5, 0, 5, 3, 0, 4, 0, 4,
1732 2, 1, 4, 0, 5, 0, 5, 5, 1, 1,
1733 6, 1, 1, 1, 1, 2, 1, 2, 1, 1,
1734 1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
1735 3, 0, 3, 1, 2, 3, 3, 0, 3, 3,
1736 3, 3, 3, 0, 3, 0, 3, 0, 2, 0,
1737 2, 0, 2, 1, 0, 3, 0, 0, 0, 6,
1738 1, 1, 1, 1, 2, 1, 1, 1, 1, 3,
1739 1, 1, 2, 2, 1, 1, 1, 1, 1, 1,
1740 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1741 1, 1, 1, 0, 4, 2, 3, 2, 4, 2,
1742 2, 1, 2, 0, 6, 8, 4, 6, 4, 6,
1743 2, 4, 6, 2, 4, 2, 4, 1, 0, 1,
1744 1, 1, 1, 1, 1, 1, 3, 1, 3, 2,
1745 2, 1, 3, 1, 3, 1, 1, 2, 1, 3,
1746 3, 1, 3, 1, 3, 1, 1, 2, 1, 1,
1747 1, 2, 2, 1, 1, 0, 4, 1, 2, 1,
1748 3, 3, 2, 2, 1, 1, 1, 1, 1, 1,
1749 1, 1, 1, 1, 1, 1, 0, 1, 0, 1,
1750 2, 2, 0, 1, 1, 1, 1, 1, 2, 0
1758 2, 0, 0, 1, 0, 346, 347, 348, 0, 339,
1759 340, 341, 344, 342, 343, 345, 334, 335, 336, 337,
1760 297, 263, 263, 510, 509, 511, 512, 608, 0, 608,
1761 10, 0, 514, 513, 515, 594, 596, 506, 505, 595,
1762 508, 500, 501, 453, 520, 521, 0, 0, 0, 0,
1763 288, 619, 619, 85, 406, 479, 477, 479, 481, 461,
1764 473, 467, 475, 0, 0, 0, 3, 606, 6, 9,
1765 33, 45, 48, 56, 263, 55, 0, 73, 0, 77,
1766 87, 0, 53, 244, 0, 286, 0, 0, 311, 314,
1767 606, 0, 0, 0, 0, 57, 306, 275, 276, 452,
1768 454, 277, 278, 279, 281, 280, 282, 450, 451, 449,
1769 516, 517, 283, 0, 284, 61, 5, 8, 168, 179,
1770 169, 192, 165, 185, 175, 174, 195, 196, 190, 173,
1771 172, 167, 193, 197, 198, 177, 166, 180, 184, 186,
1772 178, 171, 187, 194, 189, 188, 181, 191, 176, 164,
1773 183, 182, 163, 170, 161, 162, 158, 159, 160, 116,
1774 118, 117, 153, 154, 149, 131, 132, 133, 140, 137,
1775 139, 134, 135, 155, 156, 141, 142, 146, 150, 136,
1776 138, 128, 129, 130, 143, 144, 145, 147, 148, 151,
1777 152, 157, 121, 123, 125, 26, 119, 120, 122, 124,
1778 0, 0, 0, 0, 0, 0, 0, 0, 258, 0,
1779 245, 268, 71, 262, 619, 0, 516, 517, 0, 284,
1780 619, 589, 72, 70, 608, 69, 0, 619, 430, 68,
1781 608, 609, 0, 0, 21, 241, 0, 0, 334, 335,
1782 297, 300, 431, 0, 220, 0, 221, 294, 0, 19,
1783 0, 0, 606, 15, 18, 608, 75, 14, 290, 608,
1784 0, 612, 612, 246, 0, 0, 612, 587, 608, 0,
1785 0, 0, 83, 338, 0, 93, 94, 101, 308, 407,
1786 497, 496, 498, 495, 0, 494, 0, 0, 0, 0,
1787 0, 0, 0, 0, 0, 0, 0, 502, 503, 52,
1788 235, 236, 615, 616, 4, 617, 607, 0, 0, 0,
1789 0, 0, 0, 0, 435, 433, 420, 62, 305, 414,
1790 416, 0, 89, 0, 81, 78, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 428, 619, 426, 0, 54, 0, 0,
1794 0, 0, 606, 0, 607, 0, 360, 359, 0, 0,
1795 516, 517, 284, 111, 112, 0, 0, 114, 0, 0,
1796 516, 517, 284, 327, 188, 181, 191, 176, 158, 159,
1797 160, 116, 117, 585, 329, 584, 0, 605, 604, 0,
1798 307, 455, 0, 0, 126, 592, 294, 269, 593, 265,
1799 0, 0, 0, 259, 267, 428, 619, 426, 0, 0,
1800 0, 260, 608, 0, 299, 264, 608, 254, 619, 619,
1801 253, 608, 304, 51, 23, 25, 24, 0, 301, 0,
1802 0, 0, 428, 426, 0, 17, 0, 608, 292, 13,
1803 607, 74, 608, 289, 295, 614, 613, 247, 614, 249,
1804 296, 588, 0, 100, 502, 503, 91, 86, 0, 428,
1805 619, 426, 548, 483, 486, 484, 499, 480, 456, 478,
1806 457, 458, 482, 459, 460, 0, 463, 469, 0, 470,
1807 465, 466, 0, 471, 0, 472, 0, 0, 618, 7,
1808 27, 28, 29, 30, 31, 49, 50, 619, 619, 59,
1809 63, 619, 0, 34, 43, 0, 44, 608, 0, 79,
1810 90, 47, 46, 0, 199, 268, 42, 217, 225, 230,
1811 231, 232, 227, 229, 239, 240, 233, 234, 210, 211,
1812 237, 238, 608, 226, 228, 222, 223, 224, 212, 213,
1813 214, 215, 216, 597, 599, 598, 600, 0, 263, 425,
1814 608, 597, 599, 598, 600, 0, 263, 0, 619, 351,
1815 0, 350, 0, 0, 0, 0, 0, 0, 294, 428,
1816 619, 426, 319, 324, 111, 112, 113, 0, 523, 322,
1817 522, 428, 619, 426, 0, 0, 548, 331, 597, 598,
1818 263, 35, 201, 41, 209, 0, 199, 591, 0, 270,
1819 266, 619, 597, 598, 608, 597, 598, 590, 298, 610,
1820 250, 255, 257, 303, 22, 0, 242, 0, 32, 423,
1821 421, 208, 0, 76, 16, 291, 612, 0, 84, 97,
1822 99, 608, 597, 598, 554, 551, 550, 549, 552, 0,
1823 565, 0, 576, 566, 580, 579, 575, 548, 408, 547,
1824 411, 553, 555, 557, 533, 563, 619, 568, 619, 573,
1825 533, 578, 533, 0, 531, 487, 0, 462, 464, 474,
1826 468, 476, 218, 219, 398, 608, 0, 396, 395, 0,
1827 619, 0, 274, 0, 88, 82, 0, 0, 0, 0,
1828 0, 0, 429, 66, 0, 0, 432, 0, 0, 427,
1829 64, 619, 349, 287, 619, 619, 441, 619, 352, 619,
1830 354, 312, 353, 315, 0, 0, 318, 601, 293, 608,
1831 597, 598, 0, 0, 525, 0, 0, 111, 112, 115,
1832 608, 0, 608, 548, 0, 0, 0, 252, 417, 58,
1833 251, 0, 127, 271, 261, 0, 0, 432, 0, 0,
1834 619, 608, 11, 0, 248, 92, 95, 0, 559, 554,
1835 0, 372, 363, 365, 608, 361, 608, 0, 0, 540,
1836 0, 529, 583, 567, 0, 530, 0, 543, 577, 0,
1837 545, 581, 488, 490, 491, 492, 485, 493, 554, 0,
1838 394, 608, 0, 379, 561, 619, 619, 571, 379, 379,
1839 377, 400, 0, 0, 0, 0, 0, 272, 80, 200,
1840 0, 40, 206, 39, 207, 67, 424, 611, 0, 37,
1841 204, 38, 205, 65, 422, 442, 443, 619, 444, 0,
1842 619, 357, 0, 0, 355, 0, 0, 0, 317, 0,
1843 0, 432, 0, 325, 0, 0, 432, 328, 586, 608,
1844 0, 527, 332, 418, 419, 202, 0, 256, 302, 20,
1845 569, 608, 0, 370, 0, 556, 0, 0, 0, 409,
1846 532, 558, 533, 533, 564, 619, 582, 533, 574, 533,
1847 533, 0, 0, 0, 560, 0, 397, 385, 387, 0,
1848 375, 376, 0, 390, 0, 392, 0, 436, 434, 0,
1849 415, 273, 243, 36, 203, 0, 0, 446, 358, 0,
1850 12, 448, 0, 309, 310, 0, 0, 270, 619, 320,
1851 0, 524, 323, 526, 330, 548, 362, 373, 0, 368,
1852 364, 410, 0, 0, 0, 536, 0, 538, 528, 0,
1853 544, 0, 541, 546, 0, 570, 294, 428, 399, 378,
1854 379, 379, 562, 619, 379, 572, 379, 379, 404, 608,
1855 402, 405, 60, 0, 445, 0, 102, 103, 110, 0,
1856 447, 0, 313, 316, 438, 439, 437, 0, 0, 0,
1857 0, 371, 0, 366, 413, 412, 533, 533, 533, 533,
1858 489, 601, 293, 0, 382, 0, 384, 374, 0, 391,
1859 0, 388, 393, 0, 401, 109, 428, 619, 426, 619,
1860 619, 0, 326, 0, 369, 0, 537, 0, 534, 539,
1861 542, 379, 379, 379, 379, 403, 601, 108, 608, 597,
1862 598, 440, 356, 321, 333, 367, 533, 383, 0, 380,
1863 386, 389, 432, 535, 379, 381
1869 -1, 1, 2, 66, 67, 68, 236, 567, 568, 252,
1870 253, 446, 254, 437, 70, 71, 358, 72, 73, 510,
1871 690, 243, 75, 76, 255, 77, 78, 79, 467, 80,
1872 209, 377, 378, 192, 193, 194, 195, 605, 556, 197,
1873 82, 439, 211, 260, 228, 748, 426, 427, 225, 226,
1874 213, 413, 428, 516, 83, 356, 259, 452, 625, 360,
1875 846, 361, 847, 732, 987, 736, 733, 930, 594, 596,
1876 746, 935, 245, 85, 86, 87, 88, 89, 90, 91,
1877 92, 93, 94, 713, 570, 721, 843, 844, 369, 772,
1878 773, 774, 959, 898, 801, 686, 687, 802, 969, 970,
1879 278, 279, 472, 777, 658, 879, 320, 511, 95, 96,
1880 711, 704, 565, 557, 318, 508, 507, 577, 986, 715,
1881 837, 916, 920, 97, 98, 99, 100, 101, 102, 103,
1882 290, 485, 104, 294, 105, 106, 292, 296, 286, 284,
1883 288, 477, 676, 675, 792, 891, 796, 107, 285, 108,
1884 109, 216, 217, 112, 218, 219, 589, 735, 744, 880,
1885 779, 745, 661, 662, 663, 664, 665, 804, 805, 666,
1886 667, 668, 669, 807, 808, 670, 671, 672, 673, 674,
1887 781, 396, 595, 265, 429, 221, 115, 629, 559, 399,
1888 304, 423, 424, 706, 457, 571, 364, 257
1893 #define YYPACT_NINF -810
1896 -810, 102, 2888, -810, 7502, -810, -810, -810, 7025, -810,
1897 -810, -810, -810, -810, -810, -810, 7615, 7615, -810, -810,
1898 7615, 4210, 3805, -810, -810, -810, -810, 190, 6892, -21,
1899 -810, 10, -810, -810, -810, 3130, 3940, -810, -810, 3265,
1900 -810, -810, -810, -810, -810, -810, 8971, 8971, 130, 5262,
1901 9084, 7954, 8293, 7284, -810, 6759, -810, -810, -810, 54,
1902 70, 225, 228, 515, 9197, 8971, -810, 245, -810, 1021,
1903 -810, 269, -810, -810, 73, 120, 87, -810, 98, 9310,
1904 -810, 148, 3109, 44, 359, -810, 9084, 9084, -810, -810,
1905 6149, 9419, 9528, 9637, 6625, 30, 86, -810, -810, 230,
1906 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1907 3, 385, -810, 348, 490, -810, -810, -810, -810, -810,
1908 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1909 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1910 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1911 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1912 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1913 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1914 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1915 -810, -810, -810, -810, -810, 285, -810, -810, -810, -810,
1916 253, 8971, 374, 5401, 8971, 8971, 8971, 8971, -810, 328,
1917 3109, 364, -810, -810, 313, 369, 208, 224, 395, 247,
1918 354, -810, -810, -810, 6036, -810, 7615, 7615, -810, -810,
1919 6262, -810, 9084, 844, -810, 360, 388, 5540, -810, -810,
1920 -810, 379, 400, 73, -810, 464, 463, 501, 7728, -810,
1921 5262, 402, 245, -810, 1021, -21, 437, -810, 269, -21,
1922 415, 8, 317, -810, 364, 440, 317, -810, -21, 525,
1923 615, 9746, 470, -810, 488, 508, 575, 612, -810, -810,
1924 -810, -810, -810, -810, 438, -810, 447, 451, 284, 475,
1925 540, 496, 60, 502, 576, 516, 61, 550, 565, -810,
1926 -810, -810, -810, -810, -810, -810, 6375, 9084, 9084, 9084,
1927 9084, 7728, 9084, 9084, -810, -810, -810, 549, -810, -810,
1928 -810, 8406, -810, 5262, 7393, 527, 8406, 8971, 8971, 8971,
1929 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971,
1930 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971,
1931 8971, 8971, 8971, 10025, 7615, 10102, 4619, 269, 110, 110,
1932 9084, 9084, 245, 654, 538, 631, -810, -810, 645, 668,
1933 85, 93, 108, 405, 410, 9084, 377, -810, 123, 661,
1934 -810, -810, -810, -810, 40, 42, 56, 167, 180, 279,
1935 332, 336, 343, -810, -810, -810, 30, -810, -810, 10179,
1936 -810, -810, 9197, 9197, -810, -810, 394, -810, -810, -810,
1937 8971, 8971, 7841, -810, -810, 10256, 7615, 10333, 8971, 8971,
1938 8067, -810, -21, 558, -810, -810, -21, -810, 564, 566,
1939 -810, 66, -810, -810, -810, -810, -810, 7025, -810, 8971,
1940 5671, 574, 10256, 10333, 8971, 1021, 581, -21, -810, -810,
1941 6488, 572, -21, -810, -810, 8180, -810, -810, 8293, -810,
1942 -810, -810, 360, 678, -810, -810, -810, 588, 9746, 10410,
1943 7615, 10487, 1081, -810, -810, -810, -810, -810, -810, -810,
1944 -810, -810, -810, -810, -810, 302, -810, -810, 594, -810,
1945 -810, -810, 306, -810, 597, -810, 8971, 8971, -810, -810,
1946 -810, -810, -810, -810, -810, -810, -810, 63, 63, -810,
1947 -810, 63, 8971, -810, 605, 607, -810, -21, 9746, 617,
1948 -810, -810, -810, 636, 1231, -810, -810, 463, 2567, 2567,
1949 2567, 2567, 976, 976, 2722, 2633, 2567, 2567, 3244, 3244,
1950 339, 339, 1305, 976, 976, 986, 986, 1119, 255, 255,
1951 463, 463, 463, 4345, 3400, 4480, 3535, 400, 620, -810,
1952 -21, 591, -810, 742, -810, 400, 4075, 747, 754, -810,
1953 4758, 756, 5036, 52, 52, 654, 8519, 747, 121, 10564,
1954 7615, 10641, -810, 269, -810, 678, -810, 245, -810, -810,
1955 -810, 10718, 7615, 10179, 4619, 9084, 1274, -810, -810, -810,
1956 1148, -810, 2322, -810, 3109, 7025, 2974, -810, 8971, 364,
1957 -810, 354, 2995, 3670, -21, 398, 497, -810, -810, -810,
1958 -810, 7841, 8067, -810, -810, 9084, 3109, 644, -810, -810,
1959 -810, 3109, 5671, 212, -810, -810, 317, 9746, 588, 495,
1960 323, -21, 337, 376, 676, -810, -810, -810, -810, 8971,
1961 -810, 896, -810, -810, -810, -810, -810, 1142, -810, -810,
1962 -810, -810, -810, -810, 656, -810, 657, 743, 663, -810,
1963 667, 750, 671, 760, -810, -810, 763, -810, -810, -810,
1964 -810, -810, 463, 463, -810, 793, 5810, -810, -810, 5540,
1965 63, 5810, 679, 8632, -810, 588, 9746, 9197, 8971, 699,
1966 9197, 9197, -810, 549, 400, 681, 759, 9197, 9197, -810,
1967 549, 400, -810, -810, 8745, 810, -810, 718, -810, 810,
1968 -810, -810, -810, -810, 747, 92, -810, 81, 149, -21,
1969 144, 155, 9084, 245, -810, 9084, 4619, 495, 323, -810,
1970 -21, 747, 66, 1142, 4619, 245, 7158, -810, 86, 120,
1971 -810, 8971, -810, -810, -810, 8971, 8971, 504, 8971, 8971,
1972 694, 66, -810, 700, -810, -810, 390, 8971, -810, -810,
1973 896, 473, -810, 702, -21, -810, -21, 124, 1142, -810,
1974 571, -810, -810, -810, 38, -810, 1142, -810, -810, 881,
1975 -810, -810, -810, -810, -810, -810, -810, -810, 720, 9855,
1976 -810, -21, 716, 703, -810, 707, 663, -810, 723, 724,
1977 -810, 725, 856, 737, 5540, 859, 8971, 740, 588, 3109,
1978 8971, -810, 3109, -810, 3109, -810, -810, -810, 9197, -810,
1979 3109, -810, 3109, -810, -810, 605, -810, 797, -810, 5149,
1980 872, -810, 9084, 747, -810, 747, 5810, 5810, -810, 8858,
1981 4897, 159, 52, -810, 245, 747, -810, -810, -810, -21,
1982 747, -810, -810, -810, -810, 3109, 8971, 8067, -810, -810,
1983 -810, -21, 875, 752, 953, -810, 762, 5810, 5540, -810,
1984 -810, -810, 753, 757, -810, 663, -810, 767, -810, 768,
1985 767, 5923, 9855, 848, 689, 787, -810, 1386, -810, 622,
1986 -810, -810, 1386, -810, 1533, -810, 1028, -810, -810, 778,
1987 -810, 784, 3109, -810, 3109, 9964, 110, -810, -810, 5810,
1988 -810, -810, 110, -810, -810, 747, 747, -810, 383, -810,
1989 4619, -810, -810, -810, -810, 1274, -810, 785, 875, 672,
1990 -810, -810, 911, 792, 1142, -810, 881, -810, -810, 881,
1991 -810, 881, -810, -810, 820, 689, -810, 10795, -810, -810,
1992 806, 809, -810, 663, 811, -810, 812, 811, -810, 352,
1993 -810, -810, -810, 891, -810, 691, 508, 575, 612, 4619,
1994 -810, 4758, -810, -810, -810, -810, -810, 5810, 747, 4619,
1995 875, 785, 875, 823, -810, -810, 767, 824, 767, 767,
1996 -810, 818, 826, 1386, -810, 1533, -810, -810, 1533, -810,
1997 1533, -810, -810, 1028, -810, 678, 10872, 7615, 10949, 754,
1998 718, 747, -810, 747, 785, 875, -810, 881, -810, -810,
1999 -810, 811, 825, 811, 811, -810, 49, 323, -21, 179,
2000 215, -810, -810, -810, -810, 785, 767, -810, 1533, -810,
2001 -810, -810, 216, -810, 811, -810
2007 -810, -810, -810, -382, -810, 26, -810, -549, -7, -810,
2008 513, -810, 33, -810, -315, -33, -63, -55, -810, -216,
2009 -810, 766, -13, 874, -164, 20, -73, -810, -409, 29,
2010 1882, -309, 882, -54, -810, -5, -810, -810, 6, -810,
2011 1208, -810, 1366, -810, -41, 256, -344, 78, -14, -810,
2012 -384, -205, -4, -304, -15, -810, -810, -810, -810, -810,
2013 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
2014 -810, -810, 64, -810, -810, -810, -810, -810, -810, -810,
2015 -810, -810, -810, -1, -333, -519, -44, -623, -810, -789,
2016 -771, 211, 297, 71, -810, -437, -810, -693, -810, -29,
2017 -810, -810, -810, -810, -810, -810, 237, -810, -810, -810,
2018 -810, -810, -810, -810, -94, -810, -810, -531, -810, -31,
2019 -810, -810, -810, -810, -810, -810, 890, -810, -810, -810,
2020 -810, 701, -810, -810, -810, -810, -810, -810, -810, 940,
2021 -810, -126, -810, -810, -810, -810, -810, -3, -810, 11,
2022 -810, 1400, 1673, 905, 1898, 1689, -810, -810, 65, -451,
2023 -102, -385, -809, -588, -689, -289, 222, 107, -810, -810,
2024 -810, 18, -721, -764, 115, 235, -810, -634, -810, -37,
2025 -627, -810, -810, -810, 114, -388, -810, -324, -810, 623,
2026 -47, -9, -123, -568, -214, 21, -11, -2
2032 #define YYTABLE_NINF -620
2035 116, 283, 400, 208, 208, 198, 325, 208, 229, 299,
2036 560, 521, 214, 214, 196, 421, 214, 258, 232, 199,
2037 235, 659, 526, 234, 359, 198, 572, 362, 610, 558,
2038 117, 566, 617, 316, 196, 69, 610, 69, 273, 199,
2039 394, 785, 251, 363, 724, 741, 757, 261, 459, 263,
2040 267, 809, 461, 357, 357, 723, 306, 357, 627, 638,
2041 317, 196, -106, 775, 273, 888, 84, 586, 84, 256,
2042 617, 689, 614, 766, 691, 600, 273, 273, 273, 720,
2043 215, 215, 272, 876, 215, 940, 447, 660, 305, 881,
2044 -518, 558, 840, 566, 212, 222, 845, 971, 223, 314,
2045 196, 937, 3, 312, 313, 569, -106, 432, 895, 695,
2046 -102, 305, 314, 84, 215, 397, -102, 274, -103, 630,
2047 231, 488, 494, 569, 587, -510, 641, -509, 215, -338,
2048 220, 220, 451, -110, 220, 654, 453, -93, 965, 684,
2049 237, -511, 455, 274, 883, 659, -109, 630, 319, 456,
2050 215, 215, 889, 877, 215, 368, 379, 379, 655, 517,
2051 479, 851, 482, 398, 486, 262, 266, 991, 486, -105,
2052 489, 495, 856, -510, -108, -509, -338, -338, 900, 901,
2053 -107, 685, 775, 873, -104, -597, 247, 855, -106, -511,
2054 -106, 302, -105, 303, 289, 860, 251, 431, 466, 433,
2055 321, 940, 316, 315, 971, 449, 659, 231, 881, 227,
2056 291, 208, 414, 208, 208, -97, 315, -597, 414, -93,
2057 214, 1024, 214, 888, 421, 430, 849, -94, -107, -104,
2058 441, 302, 322, 303, 617, 878, 729, 610, 610, 965,
2059 588, 450, -101, 251, 500, 501, 502, 503, 740, 302,
2060 763, 303, -512, 814, 1045, -100, 273, 630, 948, 462,
2061 881, 326, 302, 961, 303, -514, 513, 84, 966, 630,
2062 256, 522, 776, 305, 357, 357, 357, 357, -96, 505,
2063 506, 445, 739, -99, 775, -598, 775, 818, 215, -98,
2064 215, 215, 659, -95, 215, -518, 215, 573, 574, 618,
2065 -512, 84, 422, 620, 425, 984, 312, 313, 623, 273,
2066 997, -519, 84, -514, 84, 575, 251, 515, -105, 881,
2067 -105, -102, 515, 327, 633, -74, 230, 357, 357, 635,
2068 56, 231, 499, 929, 419, 274, 1007, -103, 220, 69,
2069 220, 208, 583, 256, 504, 473, -88, 601, 603, 481,
2070 775, 993, 430, 519, -107, -104, -107, -104, 859, 678,
2071 -110, 564, -96, 473, -513, 293, 678, 473, 295, 1032,
2072 84, 215, 215, 215, 215, 84, 215, 215, 350, 351,
2073 352, 988, 521, 305, 302, 215, 303, 84, 274, 230,
2074 215, 474, 850, 475, 694, 466, 803, 985, 839, 590,
2075 576, -98, 775, 208, 775, 564, 754, 327, -293, 474,
2076 836, 475, -513, 474, 430, 475, -432, -515, 215, 404,
2077 84, -504, 764, 564, 215, 215, 414, 414, -507, 584,
2078 406, -594, 624, 585, 198, 402, -595, 775, 116, 215,
2079 1023, 410, 677, 196, 353, 466, 680, 412, 199, 564,
2080 -96, 458, 411, 273, 415, -293, -293, 208, 456, -598,
2081 348, 349, 350, 351, 352, -515, 215, 215, 430, -504,
2082 1052, -96, -519, 69, -96, -432, -507, 564, -96, 617,
2083 215, 444, 418, 610, 659, 758, 1013, 825, 420, -98,
2084 -504, 354, 355, 231, 833, -507, 438, 887, -103, 473,
2085 890, 416, 417, 273, 84, 688, 688, -109, 473, 688,
2086 -98, -105, 473, -98, 84, 224, 702, -98, 440, -94,
2087 -432, -601, -432, -432, 709, 769, 611, 645, 646, 647,
2088 648, 327, 274, 699, 215, -594, 227, -504, -504, 448,
2089 -595, -594, -507, -507, 703, 474, -595, 475, 476, 442,
2090 -73, 705, 710, 454, 474, 754, 475, 478, 474, 747,
2091 475, 480, 742, 717, 765, 719, 716, 208, 787, 636,
2092 790, 460, 725, 469, 297, 298, 726, 403, 430, 208,
2093 -601, 463, 274, 979, 759, 483, 749, 564, 444, 981,
2094 430, 866, 761, -516, 722, 722, 416, 443, 750, 564,
2095 752, 473, 198, -110, 468, 705, 487, 872, 734, 414,
2096 -107, 196, 490, 964, -109, 967, 199, -104, 496, 858,
2097 470, 471, 273, 466, -101, -601, 493, -601, -601, 649,
2098 116, -597, 705, 497, 84, -100, 84, 473, 868, 650,
2099 -516, -516, 522, 509, 215, 821, 823, 474, 810, 475,
2100 484, 875, 829, 831, 863, 996, 215, 998, 84, 215,
2101 -517, 520, 999, 826, 782, 69, 782, 653, 654, 852,
2102 747, 576, 854, 1038, 464, 465, 811, 498, 707, 812,
2103 799, 273, 813, 474, 815, 475, 491, 578, 688, 215,
2104 650, 655, 862, 582, 630, 619, 84, -284, 621, 357,
2105 622, 274, 357, 806, -105, 628, -88, -517, -517, 750,
2106 515, 632, 838, 841, 1031, 841, 1033, 841, 653, 654,
2107 705, 1034, 637, 848, 769, -96, 645, 646, 647, 648,
2108 579, 705, 842, 839, 679, 760, 933, 681, 1046, -268,
2109 857, 693, 655, 886, -284, -284, 591, 886, 936, 697,
2110 84, 696, 196, 84, 853, 84, -423, 712, 414, 1054,
2111 274, 215, 714, -294, 215, 215, 861, 811, 74, 718,
2112 74, 215, 215, 913, 957, 762, 1016, 580, 581, 922,
2113 945, 947, 74, 74, 273, 950, 74, 952, 953, 767,
2114 778, 780, 811, 592, 593, 783, 215, 784, 885, 215,
2115 84, 786, 788, 782, 782, 789, 992, 909, 84, 357,
2116 -294, -294, 791, -269, 820, 74, 74, 793, 794, 827,
2117 795, 592, 593, 1017, 1018, 839, 44, 45, 867, 708,
2118 74, 869, 918, 892, 896, 917, 874, 897, 921, 925,
2119 926, 899, 923, 928, 924, 798, 828, 645, 646, 647,
2120 648, 799, 74, 74, 932, -107, 74, 902, 904, 934,
2121 810, 650, 886, 894, 906, 810, 907, 810, 908, 910,
2122 942, 943, -104, 722, -270, 931, -98, 273, 84, 903,
2123 905, 919, 651, 782, 954, 915, 938, 944, 652, 653,
2124 654, 946, 215, -95, 1026, 1028, 1029, 1030, 434, 941,
2125 273, 949, 951, 84, 956, 958, 215, 435, 436, 972,
2126 84, 84, 980, 655, 84, 806, 656, 963, -271, 990,
2127 806, 994, 806, 995, 982, 983, 841, 769, 1000, 645,
2128 646, 647, 648, 769, 231, 645, 646, 647, 648, 649,
2129 1003, 84, 84, 1005, 1053, 1008, 1010, 1015, 769, 650,
2130 645, 646, 647, 648, -597, 84, 955, 1025, 1027, 1048,
2131 1014, 782, -598, 634, 770, 366, 810, 834, 810, 74,
2132 651, 810, 1019, 810, 1020, 383, 1042, 653, 654, 975,
2133 1021, 871, 800, 84, 1035, 770, 864, 1022, 1041, 401,
2134 74, 771, 74, 74, 84, 492, 74, 287, 74, 395,
2135 989, 655, 884, 74, 208, 769, 962, 645, 646, 647,
2136 648, 810, 960, 882, 74, 430, 74, 716, 841, 597,
2137 1043, 806, 1044, 806, 564, 0, 806, 0, 806, 705,
2138 0, 1004, 1006, 0, 0, 1009, 0, 1011, 1012, 0,
2139 0, 0, 770, 84, 327, 84, 0, 0, 939, 0,
2140 0, 84, 0, 84, 327, 0, 0, 0, 0, 340,
2141 341, 307, 308, 309, 310, 311, 806, 0, 0, 340,
2142 341, 0, 74, 74, 74, 74, 74, 74, 74, 74,
2143 968, 215, 645, 646, 647, 648, 0, 74, 0, 74,
2144 0, 0, 74, 0, 345, 346, 347, 348, 349, 350,
2145 351, 352, 1047, 1049, 1050, 1051, 347, 348, 349, 350,
2146 351, 352, 0, 0, 0, 0, 0, 0, 0, 0,
2147 74, 0, 74, 0, 0, 1055, 74, 74, 0, 0,
2148 0, 0, 0, 644, 0, 645, 646, 647, 648, 649,
2149 0, 74, 0, 0, 0, 0, 0, 0, -619, 650,
2150 0, 0, 0, 0, 0, 0, -619, -619, -619, 0,
2151 0, -619, -619, -619, 0, -619, 0, 0, 74, 74,
2152 651, 0, 0, 0, -619, -619, 652, 653, 654, 0,
2153 0, 0, 74, 0, 0, -619, -619, 327, -619, -619,
2154 -619, -619, -619, 0, 644, 0, 645, 646, 647, 648,
2155 649, 655, 340, 341, 656, 0, 74, 0, 0, 0,
2156 650, 0, 0, 0, 0, 0, 74, 657, 0, 0,
2157 0, 0, 0, 0, 210, 210, 0, 0, 210, 0,
2158 0, 651, 0, -619, 0, 0, 74, 652, 653, 654,
2159 348, 349, 350, 351, 352, 0, 0, 0, 0, 0,
2160 0, 0, 0, 0, 244, 246, -619, 0, 0, 210,
2161 210, 0, 655, 0, 0, 656, 0, 0, 0, 0,
2162 0, 0, 300, 301, 0, 698, 0, 0, -619, -619,
2163 0, -619, 0, 0, 227, -619, 0, -619, 0, -619,
2164 0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
2165 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
2166 338, 339, 0, 0, 340, 341, 0, 0, 0, 0,
2167 0, 0, 0, 0, 0, 0, 644, 0, 645, 646,
2168 647, 648, 649, 0, 0, 0, 74, 0, 74, 0,
2169 0, 0, 650, 0, 0, 342, 74, 343, 344, 345,
2170 346, 347, 348, 349, 350, 351, 352, 0, 74, 0,
2171 74, 74, 0, 651, 0, -245, 0, 0, 0, 652,
2172 653, 654, 0, 327, 328, 329, 330, 331, 332, 333,
2173 334, 335, 336, 337, 338, 339, 0, 0, 340, 341,
2174 0, 74, 0, 0, 655, 0, 0, 656, 74, 0,
2175 0, 0, 110, 0, 110, 0, 0, 0, 0, 210,
2176 743, 0, 210, 210, 210, 300, 0, 0, 264, 342,
2177 0, 343, 344, 345, 346, 347, 348, 349, 350, 351,
2178 352, 0, 210, 0, 210, 210, 0, 0, 798, 0,
2179 645, 646, 647, 648, 799, 0, 231, 0, 0, 110,
2180 0, 0, 74, 275, 650, 74, 0, 74, 0, 0,
2181 0, 0, 0, 74, 0, 0, 74, 74, 0, 0,
2182 0, 0, 0, 74, 74, 651, 0, 0, 0, 275,
2183 0, 652, 653, 654, 0, 0, 0, 0, 0, 0,
2184 0, 370, 380, 380, 380, 0, 0, 0, 74, 0,
2185 0, 74, 74, 0, 0, 0, 655, 0, 0, 656,
2186 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2187 0, 0, 0, 0, 0, 0, 0, 0, 0, 210,
2188 0, 0, 0, 0, 524, 527, 528, 529, 530, 531,
2189 532, 533, 534, 535, 536, 537, 538, 539, 540, 541,
2190 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
2191 552, 0, 210, 0, 0, 0, 0, 405, 0, 0,
2192 407, 408, 409, 0, 0, 0, 0, 0, 0, 0,
2193 74, 0, 0, 0, 0, 769, 0, 645, 646, 647,
2194 648, 799, 0, 0, 74, 0, 0, 0, 0, 0,
2195 0, 650, 0, 110, 0, 74, 0, 0, 74, 0,
2196 602, 604, 74, 74, 0, 0, 74, 0, 606, 210,
2197 210, 0, 651, 0, 210, 0, 602, 604, 210, 653,
2198 654, 0, 0, 0, 0, 0, 0, 110, 0, 0,
2199 0, 0, 0, 74, 74, 0, 0, 626, 110, 0,
2200 110, 0, 631, 655, 0, 0, 0, 74, 0, 0,
2201 0, 0, 0, 210, 0, 0, 210, 0, 0, 0,
2202 0, 275, 0, 0, 0, 111, 0, 111, 210, 0,
2203 0, 0, 0, 0, 0, 74, 0, 514, 0, 0,
2204 0, 114, 525, 114, 0, 0, 74, 0, 0, 0,
2205 0, 0, 0, 0, 682, 683, 110, 0, 0, 0,
2206 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
2207 210, 0, 111, 110, 275, 0, 276, 0, 0, 0,
2208 0, 0, 0, 0, 0, 0, 0, 0, 114, 0,
2209 0, 0, 277, 0, 0, 74, 0, 74, 0, 0,
2210 0, 0, 276, 74, 0, 74, 110, 0, 0, 0,
2211 0, 0, 0, 0, 371, 381, 381, 381, 277, 0,
2212 0, 0, 0, 0, 0, 0, 0, 607, 609, 0,
2213 372, 382, 382, 74, 210, 0, 264, 0, 210, 0,
2214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2215 210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2216 0, 0, 0, 0, 0, 0, 210, 0, 0, 0,
2217 0, 609, 0, 0, 264, 0, 0, 0, 0, 210,
2218 210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2219 110, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2220 110, 0, 0, 0, 0, 0, 0, 210, 0, 0,
2221 0, 0, 0, 0, 0, 0, 0, 0, 275, 0,
2222 0, 0, 0, 0, 0, 0, 111, 0, 692, 0,
2223 0, 0, 0, 0, 81, 0, 81, 0, 0, 0,
2224 0, 0, 114, 0, 0, 0, 0, 0, 0, 0,
2225 113, 210, 113, 0, 0, 606, 819, 0, 822, 824,
2226 111, 0, 0, 0, 0, 830, 832, 0, 275, 0,
2227 0, 111, 210, 111, 0, 0, 114, 0, 0, 0,
2228 0, 81, 0, 0, 0, 0, 0, 114, 0, 114,
2229 0, 0, 525, 0, 276, 0, 0, 113, 0, 0,
2230 0, 0, 0, 0, 0, 0, 0, 0, 0, 865,
2231 277, 0, 0, 822, 824, 0, 830, 832, 0, 0,
2232 110, 0, 110, 367, 753, 210, 0, 0, 0, 111,
2233 0, 0, 0, 0, 111, 0, 0, 609, 264, 0,
2234 0, 0, 0, 0, 110, 114, 111, 276, 0, 0,
2235 114, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2236 0, 0, 114, 277, 0, 768, 0, 0, 0, 0,
2237 0, 0, 0, 0, 210, 0, 0, 0, 912, 111,
2238 0, 0, 110, 0, 0, 0, 914, 275, 0, 0,
2239 0, 0, 0, 0, 0, 114, 0, 0, 0, 0,
2240 0, 0, 0, 0, 0, 0, 0, 210, 0, 817,
2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2242 0, 0, 0, 0, 914, 210, 0, 0, 0, 0,
2243 835, 0, 0, 0, 0, 81, 110, 0, 0, 110,
2244 0, 110, 0, 0, 0, 0, 275, 0, 0, 0,
2245 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2246 0, 0, 0, 111, 0, 0, 0, 0, 0, 81,
2247 0, 0, 0, 111, 0, 0, 0, 0, 0, 114,
2248 81, 0, 81, 870, 0, 113, 110, 0, 0, 114,
2249 0, 276, 0, 0, 110, 0, 113, 0, 113, 0,
2250 0, 0, 0, 0, 0, 0, 0, 277, 0, 0,
2251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 911, 0, 0, 0, 0, 0, 81, 0,
2254 0, 276, 0, 81, 0, 0, 0, 0, 0, 380,
2255 0, 0, 0, 0, 113, 81, 0, 277, 523, 113,
2256 0, 0, 0, 0, 110, 927, 0, 0, 0, 0,
2257 0, 113, 0, 0, 0, 210, 0, 0, 0, 0,
2258 0, 0, 0, 264, 0, 0, 0, 0, 81, 110,
2259 0, 0, 0, 111, 0, 111, 110, 110, 0, 0,
2260 110, 0, 0, 0, 113, 0, 0, 0, 0, 114,
2261 0, 114, 0, 0, 0, 0, 0, 111, 0, 0,
2262 0, 0, 0, 0, 0, 0, 0, 110, 110, 0,
2263 0, 0, 0, 114, 0, 0, 0, 0, 0, 0,
2264 0, 110, 380, 0, 0, 0, 0, 0, 0, 0,
2265 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
2266 276, 0, 0, 0, 0, 976, 0, 0, 0, 110,
2267 0, 114, 81, 0, 0, 0, 277, 0, 0, 0,
2268 110, 0, 81, 0, 0, 0, 0, 0, 113, 0,
2269 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
2270 0, 0, 0, 0, 0, 0, 0, 0, 0, 111,
2271 0, 0, 111, 0, 111, 797, 751, 0, 0, 276,
2272 0, 0, 0, 0, 0, 114, 0, 0, 114, 110,
2273 114, 110, 0, 0, 0, 277, 0, 110, 0, 110,
2274 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
2275 337, 338, 339, 0, 0, 340, 341, 0, 0, 111,
2276 0, 0, 0, 0, 0, 0, 0, 111, 0, 0,
2277 0, 0, 0, 0, 0, 114, 0, 0, 0, 0,
2278 0, 0, 0, 114, 0, 0, 342, 0, 343, 344,
2279 345, 346, 347, 348, 349, 350, 351, 352, 0, 0,
2280 0, 0, 81, 0, 81, 0, 0, 0, 0, 0,
2281 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
2282 113, 0, 381, 0, 0, 0, 81, 0, 0, 0,
2283 0, 0, 0, 0, 0, 0, 0, 111, 382, 0,
2284 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
2285 0, 0, 0, 114, 0, 0, 0, 0, 0, 0,
2286 0, 0, 111, 0, 81, 0, 0, 0, 0, 111,
2287 111, 0, 0, 111, 0, 0, 0, 0, 114, 0,
2288 113, 0, 0, 0, 0, 114, 114, 0, 0, 114,
2289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2290 111, 111, 0, 0, 0, 0, 0, 0, 0, 0,
2291 0, 0, 0, 0, 111, 381, 114, 114, 81, 0,
2292 0, 81, 0, 81, 0, 0, 0, 0, 0, 523,
2293 114, 382, 0, 0, 113, 0, 0, 113, 977, 113,
2294 0, 0, 111, 0, 0, 0, 0, 0, 0, 0,
2295 0, 0, 0, 111, 978, 0, 0, 0, 114, 0,
2296 0, 0, 0, 0, 0, 0, 0, 0, 81, 114,
2297 0, 0, 0, 0, 0, 0, 81, 0, 0, 0,
2298 0, 0, 0, 0, 113, 327, -620, -620, -620, -620,
2299 332, 333, 113, 0, -620, -620, 0, 0, 0, 0,
2300 340, 341, 111, 0, 111, 0, 0, 0, 0, 0,
2301 111, 0, 111, 0, 0, 0, 0, 0, 114, 0,
2302 114, 0, 0, 0, 0, 0, 114, 0, 114, 0,
2303 0, 0, 0, 343, 344, 345, 346, 347, 348, 349,
2304 350, 351, 352, 0, 0, 0, 81, 0, 0, 0,
2305 0, 327, 328, 329, 330, 331, 332, 333, 334, 0,
2306 336, 337, 113, 0, 0, 0, 340, 341, 0, 0,
2307 0, 81, 0, 0, 0, 0, 0, 0, 81, 81,
2308 0, 0, 81, 0, 0, 0, 0, 113, 0, 0,
2309 0, 0, 0, 0, 113, 113, 0, 0, 113, 343,
2310 344, 345, 346, 347, 348, 349, 350, 351, 352, 81,
2311 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2312 0, 0, 0, 81, 0, 113, 113, 0, 0, 0,
2313 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
2314 327, 328, 329, 330, 331, 332, 333, 974, 0, 336,
2315 337, 81, 0, 0, 0, 340, 341, 0, 0, 0,
2316 0, 0, 81, 0, 0, 0, 0, 113, 0, 0,
2317 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
2318 0, 0, 0, 0, 0, 0, 0, 0, 343, 344,
2319 345, 346, 347, 348, 349, 350, 351, 352, 0, 0,
2320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2321 0, 81, 0, 81, 0, 0, 0, 0, 0, 81,
2322 0, 81, 0, 0, 0, 0, 0, 113, 0, 113,
2323 0, 0, 0, 0, 0, 113, 0, 113, -619, 4,
2324 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2325 11, 0, 0, 0, 12, 0, 13, 14, 15, 16,
2326 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2327 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2328 0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
2329 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2330 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2332 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2333 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2334 58, 59, 60, 61, 62, -601, 0, 0, 0, 0,
2335 0, 0, 0, -601, -601, -601, 0, 0, -601, -601,
2336 -601, 0, -601, 0, 63, 64, 65, 0, 698, 0,
2337 0, -601, -601, -601, -601, 0, 0, -619, 0, -619,
2338 0, 0, -601, -601, 0, -601, -601, -601, -601, -601,
2339 0, 0, 327, 328, 329, 330, 331, 332, 333, 334,
2340 335, 336, 337, 338, 339, 0, 0, 340, 341, 0,
2341 0, 0, 0, -601, -601, -601, -601, -601, -601, -601,
2342 -601, -601, -601, -601, -601, -601, 0, 0, -601, -601,
2343 -601, 0, 755, -601, 0, 0, 0, 0, 342, -601,
2344 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2345 0, 0, 0, -601, 0, 0, -601, 0, -106, -601,
2346 -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
2347 -601, 0, 0, 0, 0, -601, -601, -601, -601, -601,
2348 -504, 0, -601, -601, -601, 0, -601, 0, -504, -504,
2349 -504, 0, 0, -504, -504, -504, 0, -504, 0, 0,
2350 0, 0, 0, 0, 0, -504, 0, -504, -504, -504,
2351 0, 0, 0, 0, 0, 0, 0, -504, -504, 0,
2352 -504, -504, -504, -504, -504, 0, 0, 327, 328, 329,
2353 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
2354 0, 0, 340, 341, 0, 0, 0, 0, -504, -504,
2355 -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
2356 -504, 0, 0, -504, -504, -504, 0, -504, -504, 0,
2357 0, 0, 0, 342, -504, 343, 344, 345, 346, 347,
2358 348, 349, 350, 351, 352, 0, 0, 0, -504, 0,
2359 0, -504, 0, -504, -504, -504, -504, -504, -504, -504,
2360 -504, -504, -504, -504, -504, -504, 0, 0, 0, 0,
2361 0, -504, -504, -504, -504, -507, 0, -504, -504, -504,
2362 0, -504, 0, -507, -507, -507, 0, 0, -507, -507,
2363 -507, 0, -507, 0, 0, 0, 0, 0, 0, 0,
2364 -507, 0, -507, -507, -507, 0, 0, 0, 0, 0,
2365 0, 0, -507, -507, 0, -507, -507, -507, -507, -507,
2366 0, 0, 327, 328, 329, 330, 331, 332, 333, 334,
2367 335, 336, 337, -620, -620, 0, 0, 340, 341, 0,
2368 0, 0, 0, -507, -507, -507, -507, -507, -507, -507,
2369 -507, -507, -507, -507, -507, -507, 0, 0, -507, -507,
2370 -507, 0, -507, -507, 0, 0, 0, 0, 0, -507,
2371 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2372 0, 0, 0, -507, 0, 0, -507, 0, -507, -507,
2373 -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
2374 -507, 0, 0, 0, 0, 0, -507, -507, -507, -507,
2375 -602, 0, -507, -507, -507, 0, -507, 0, -602, -602,
2376 -602, 0, 0, -602, -602, -602, 0, -602, 0, 0,
2377 0, 0, 0, 0, 0, 0, -602, -602, -602, -602,
2378 0, 0, 0, 0, 0, 0, 0, -602, -602, 0,
2379 -602, -602, -602, -602, -602, 0, 0, 0, 0, 0,
2380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2381 0, 0, 0, 0, 0, 0, 0, 0, -602, -602,
2382 -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
2383 -602, 0, 0, -602, -602, -602, 0, 0, -602, 0,
2384 0, 0, 0, 0, -602, 0, 0, 0, 0, 0,
2385 0, 0, 0, 0, 0, 0, 0, 0, -602, 0,
2386 0, -602, 0, 0, -602, -602, -602, -602, -602, -602,
2387 -602, -602, -602, -602, -602, -602, 0, 0, 0, 0,
2388 -602, -602, -602, -602, -602, -603, 0, -602, -602, -602,
2389 0, -602, 0, -603, -603, -603, 0, 0, -603, -603,
2390 -603, 0, -603, 0, 0, 0, 0, 0, 0, 0,
2391 0, -603, -603, -603, -603, 0, 0, 0, 0, 0,
2392 0, 0, -603, -603, 0, -603, -603, -603, -603, -603,
2393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2395 0, 0, 0, -603, -603, -603, -603, -603, -603, -603,
2396 -603, -603, -603, -603, -603, -603, 0, 0, -603, -603,
2397 -603, 0, 0, -603, 0, 0, 0, 0, 0, -603,
2398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2399 0, 0, 0, -603, 0, 0, -603, 0, 0, -603,
2400 -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
2401 -603, 0, 0, 0, 0, -603, -603, -603, -603, -603,
2402 -293, 0, -603, -603, -603, 0, -603, 0, -293, -293,
2403 -293, 0, 0, -293, -293, -293, 0, -293, 0, 0,
2404 0, 0, 0, 0, 0, 0, 0, -293, -293, -293,
2405 0, 0, 0, 0, 0, 0, 0, -293, -293, 0,
2406 -293, -293, -293, -293, -293, 0, 0, 0, 0, 0,
2407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, 0, 0, 0, 0, 0, 0, 0, -293, -293,
2409 -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
2410 -293, 0, 0, -293, -293, -293, 0, 756, -293, 0,
2411 0, 0, 0, 0, -293, 0, 0, 0, 0, 0,
2412 0, 0, 0, 0, 0, 0, 0, 0, -293, 0,
2413 0, -293, 0, -108, -293, -293, -293, -293, -293, -293,
2414 -293, -293, -293, -293, -293, -293, 0, 0, 0, 0,
2415 0, -293, -293, -293, -293, -431, 0, -293, -293, -293,
2416 0, -293, 0, -431, -431, -431, 0, 0, -431, -431,
2417 -431, 0, -431, 0, 0, 0, 0, 0, 0, 0,
2418 0, -431, -431, -431, 0, 0, 0, 0, 0, 0,
2419 0, 0, -431, -431, 0, -431, -431, -431, -431, -431,
2420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2422 0, 0, 0, -431, -431, -431, -431, -431, -431, -431,
2423 -431, -431, -431, -431, -431, -431, 0, 0, -431, -431,
2424 -431, 0, 0, -431, 0, 0, 0, 0, 0, -431,
2425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2426 0, 0, 0, -431, 0, 0, 0, 0, 0, -431,
2427 0, -431, -431, -431, -431, -431, -431, -431, -431, -431,
2428 -431, 0, 0, 0, 0, -431, -431, -431, -431, -431,
2429 -285, 227, -431, -431, -431, 0, -431, 0, -285, -285,
2430 -285, 0, 0, -285, -285, -285, 0, -285, 0, 0,
2431 0, 0, 0, 0, 0, 0, 0, -285, -285, -285,
2432 0, 0, 0, 0, 0, 0, 0, -285, -285, 0,
2433 -285, -285, -285, -285, -285, 0, 0, 0, 0, 0,
2434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2435 0, 0, 0, 0, 0, 0, 0, 0, -285, -285,
2436 -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2437 -285, 0, 0, -285, -285, -285, 0, 0, -285, 0,
2438 0, 0, 0, 0, -285, 0, 0, 0, 0, 0,
2439 0, 0, 0, 0, 0, 0, 0, 0, -285, 0,
2440 0, -285, 0, 0, -285, -285, -285, -285, -285, -285,
2441 -285, -285, -285, -285, -285, -285, 0, 0, 0, 0,
2442 0, -285, -285, -285, -285, -421, 0, -285, -285, -285,
2443 0, -285, 0, -421, -421, -421, 0, 0, -421, -421,
2444 -421, 0, -421, 0, 0, 0, 0, 0, 0, 0,
2445 0, -421, -421, -421, 0, 0, 0, 0, 0, 0,
2446 0, 0, -421, -421, 0, -421, -421, -421, -421, -421,
2447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2449 0, 0, 0, -421, -421, -421, -421, -421, -421, -421,
2450 -421, -421, -421, -421, -421, -421, 0, 0, -421, -421,
2451 -421, 0, 0, -421, 0, 0, 0, 0, 0, -421,
2452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2453 0, 0, 0, -421, 0, 0, 0, 0, 0, -421,
2454 0, -421, -421, -421, -421, -421, -421, -421, -421, -421,
2455 -421, 0, 0, 0, 0, -421, -421, -421, -421, -421,
2456 -300, -421, -421, -421, -421, 0, -421, 0, -300, -300,
2457 -300, 0, 0, -300, -300, -300, 0, -300, 0, 0,
2458 0, 0, 0, 0, 0, 0, 0, -300, -300, 0,
2459 0, 0, 0, 0, 0, 0, 0, -300, -300, 0,
2460 -300, -300, -300, -300, -300, 0, 0, 0, 0, 0,
2461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2462 0, 0, 0, 0, 0, 0, 0, 0, -300, -300,
2463 -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
2464 -300, 0, 0, -300, -300, -300, 0, 0, -300, 0,
2465 0, 0, 0, 0, -300, 0, 0, 0, 0, 0,
2466 0, 0, 0, 0, 0, 0, 0, 0, -300, 0,
2467 0, 0, 0, 0, -300, 0, -300, -300, -300, -300,
2468 -300, -300, -300, -300, -300, -300, 0, 0, 0, 0,
2469 0, -300, -300, -300, -300, -601, 224, -300, -300, -300,
2470 0, -300, 0, -601, -601, -601, 0, 0, 0, -601,
2471 -601, 0, -601, 0, 0, 0, 0, 0, 0, 0,
2472 0, -601, 0, 0, 0, 0, 0, 0, 0, 0,
2473 0, 0, -601, -601, 0, -601, -601, -601, -601, -601,
2474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2476 0, 0, 0, -601, -601, -601, -601, -601, -601, -601,
2477 -601, -601, -601, -601, -601, -601, 0, 0, -601, -601,
2478 -601, 0, 700, 0, 0, 0, 0, 0, 0, 0,
2479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2480 0, 0, 0, -601, 0, 0, 0, 0, -106, -601,
2481 0, -601, -601, -601, -601, -601, -601, -601, -601, -601,
2482 -601, 0, 0, 0, 0, -601, -601, -601, -601, -97,
2483 -293, 0, -601, 0, -601, 0, -601, 0, -293, -293,
2484 -293, 0, 0, 0, -293, -293, 0, -293, 0, 0,
2485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2486 0, 0, 0, 0, 0, 0, 0, -293, -293, 0,
2487 -293, -293, -293, -293, -293, 0, 0, 0, 0, 0,
2488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2489 0, 0, 0, 0, 0, 0, 0, 0, -293, -293,
2490 -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
2491 -293, 0, 0, -293, -293, -293, 0, 701, 0, 0,
2492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2493 0, 0, 0, 0, 0, 0, 0, 0, -293, 0,
2494 0, 0, 0, -108, -293, 0, -293, -293, -293, -293,
2495 -293, -293, -293, -293, -293, -293, 0, 0, 0, 0,
2496 0, -293, -293, -293, -99, 0, 0, -293, 0, -293,
2497 248, -293, 5, 6, 7, 8, 9, -619, -619, -619,
2498 10, 11, 0, 0, -619, 12, 0, 13, 14, 15,
2499 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2500 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2501 0, 0, 0, 0, 28, 29, 249, 31, 32, 33,
2502 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2503 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2505 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2506 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2507 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2509 0, 0, 0, 0, 0, 63, 64, 65, 0, 0,
2510 0, 0, 0, 0, 0, 0, 0, 0, -619, 248,
2511 -619, 5, 6, 7, 8, 9, 0, 0, -619, 10,
2512 11, 0, -619, -619, 12, 0, 13, 14, 15, 16,
2513 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2514 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2515 0, 0, 0, 28, 29, 249, 31, 32, 33, 34,
2516 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2517 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2519 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2520 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2521 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2523 0, 0, 0, 0, 63, 64, 65, 0, 0, 0,
2524 0, 0, 0, 0, 0, 0, 0, -619, 248, -619,
2525 5, 6, 7, 8, 9, 0, 0, -619, 10, 11,
2526 0, 0, -619, 12, -619, 13, 14, 15, 16, 17,
2527 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2528 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2529 0, 0, 28, 29, 249, 31, 32, 33, 34, 35,
2530 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2531 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2533 0, 0, 0, 48, 0, 0, 49, 50, 0, 51,
2534 52, 0, 53, 0, 0, 54, 55, 56, 57, 58,
2535 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2537 0, 0, 0, 63, 64, 65, 0, 0, 0, 0,
2538 0, 0, 0, 0, 0, 0, -619, 248, -619, 5,
2539 6, 7, 8, 9, 0, 0, -619, 10, 11, 0,
2540 0, -619, 12, 0, 13, 14, 15, 16, 17, 18,
2541 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2542 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2543 0, 28, 29, 249, 31, 32, 33, 34, 35, 36,
2544 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2545 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2547 0, 0, 48, 0, 0, 49, 50, 0, 51, 52,
2548 0, 53, 0, 0, 54, 55, 56, 57, 58, 59,
2549 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2550 248, 0, 5, 6, 7, 8, 9, 0, -619, -619,
2551 10, 11, 63, 64, 65, 12, 0, 13, 14, 15,
2552 16, 17, 18, 19, 0, -619, 0, -619, 0, 20,
2553 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2554 0, 0, 0, 0, 28, 29, 249, 31, 32, 33,
2555 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2556 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2558 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2559 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2560 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2561 0, 0, 0, 248, 0, 5, 6, 7, 8, 9,
2562 0, 0, 0, 10, 11, 63, 64, 65, 12, 0,
2563 13, 14, 15, 16, 17, 18, 19, 0, -619, 0,
2564 -619, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2565 0, 27, 0, 0, 0, 0, 0, 28, 29, 249,
2566 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2567 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2569 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2570 0, 250, 50, 0, 51, 52, 0, 53, 0, 0,
2571 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2573 0, 0, 0, 0, 0, 0, 0, 0, 63, 64,
2574 65, 0, 0, 0, 0, 0, 0, 0, 0, -619,
2575 0, -619, 248, -619, 5, 6, 7, 8, 9, 0,
2576 0, 0, 10, 11, 0, 0, 0, 12, 0, 13,
2577 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2578 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2579 27, 0, 0, 0, 0, 0, 28, 29, 249, 31,
2580 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2581 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2583 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2584 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2585 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2587 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2588 0, 0, 0, 0, 0, 0, 0, 0, -619, 0,
2589 -619, 248, -619, 5, 6, 7, 8, 9, 0, 0,
2590 0, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2591 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2592 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2593 0, 0, 0, 0, 0, 28, 29, 249, 31, 32,
2594 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2595 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2597 0, 0, 0, 0, 0, 0, 48, 0, 0, 49,
2598 50, 0, 51, 52, 0, 53, 0, 0, 54, 55,
2599 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2601 0, 0, 0, 0, 0, 0, 63, 64, 65, 0,
2602 0, -619, 4, 0, 5, 6, 7, 8, 9, -619,
2603 0, -619, 10, 11, 0, 0, 0, 12, 0, 13,
2604 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2605 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2606 27, 0, 0, 0, 0, 0, 28, 29, 30, 31,
2607 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2608 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2610 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2611 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2612 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2614 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2615 0, 0, -619, 0, 0, 0, 0, 0, 0, 0,
2616 -619, 248, -619, 5, 6, 7, 8, 9, 0, 0,
2617 -619, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2618 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2619 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2620 0, 0, 0, 0, 0, 28, 29, 249, 31, 32,
2621 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2622 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2624 0, 0, 0, 0, 0, 0, 48, 0, 0, 49,
2625 50, 0, 51, 52, 0, 53, 0, 0, 54, 55,
2626 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2627 0, 0, 0, 0, 248, 0, 5, 6, 7, 8,
2628 9, 0, 0, 0, 10, 11, 63, 64, 65, 12,
2629 0, 13, 14, 15, 16, 17, 18, 19, 0, -619,
2630 0, -619, 0, 20, 21, 22, 23, 24, 25, 26,
2631 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2632 249, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2633 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2634 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2635 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2636 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
2637 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2638 0, -619, 0, 0, 0, 0, 0, 0, 0, 5,
2639 6, 7, 0, 9, 0, 0, 0, 10, 11, 63,
2640 64, 65, 12, 0, 13, 14, 15, 16, 17, 18,
2641 19, 0, -619, 0, -619, 0, 20, 21, 22, 23,
2642 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2643 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2644 37, 38, 39, 40, 201, 41, 42, 0, 43, 44,
2645 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2647 0, 0, 202, 0, 0, 203, 50, 0, 51, 52,
2648 0, 204, 205, 206, 54, 55, 56, 57, 58, 59,
2649 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2650 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2651 10, 11, 63, 207, 65, 12, 0, 13, 14, 15,
2652 16, 17, 18, 19, 0, 0, 0, 231, 0, 20,
2653 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2654 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2655 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2656 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2658 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2659 0, 51, 52, 0, 0, 0, 0, 54, 55, 56,
2660 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2661 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2662 0, 0, 0, 10, 11, 63, 64, 65, 12, 0,
2663 13, 14, 15, 16, 17, 18, 19, 0, 302, 0,
2664 303, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2665 0, 27, 0, 0, 0, 0, 0, 0, 29, 0,
2666 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2667 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2669 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2670 0, 203, 50, 0, 51, 52, 0, 0, 0, 0,
2671 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2672 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2673 7, 8, 9, 0, 0, 0, 10, 11, 63, 64,
2674 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2675 0, 0, 0, 231, 0, 20, 21, 22, 23, 24,
2676 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2677 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2678 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2679 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2681 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2682 53, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2683 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2684 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2685 11, 63, 64, 65, 12, 0, 13, 14, 15, 16,
2686 17, 18, 19, 0, 498, 0, 0, 0, 20, 21,
2687 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2688 0, 0, 0, 28, 29, 249, 31, 32, 33, 34,
2689 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2690 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2692 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2693 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2694 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2696 0, 0, 0, 0, 63, 64, 65, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 498, 118, 119,
2698 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2699 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2700 140, 141, 0, 0, 0, 142, 143, 144, 384, 385,
2701 386, 387, 149, 150, 151, 0, 0, 0, 0, 0,
2702 152, 153, 154, 155, 388, 389, 390, 391, 160, 37,
2703 38, 392, 40, 0, 0, 0, 0, 0, 0, 0,
2704 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2705 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
2706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2710 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
2711 191, 393, 118, 119, 120, 121, 122, 123, 124, 125,
2712 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2713 136, 137, 138, 139, 140, 141, 0, 0, 0, 142,
2714 143, 144, 145, 146, 147, 148, 149, 150, 151, 0,
2715 0, 0, 0, 0, 152, 153, 154, 155, 156, 157,
2716 158, 159, 160, 280, 281, 161, 282, 0, 0, 0,
2717 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
2718 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
2719 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
2720 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
2721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2722 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
2723 184, 185, 186, 187, 188, 0, 189, 190, 0, 0,
2724 0, 0, 0, 0, 191, 118, 119, 120, 121, 122,
2725 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2726 133, 134, 135, 136, 137, 138, 139, 140, 141, 0,
2727 0, 0, 142, 143, 144, 145, 146, 147, 148, 149,
2728 150, 151, 0, 0, 0, 0, 0, 152, 153, 154,
2729 155, 156, 157, 158, 159, 160, 233, 0, 161, 0,
2730 0, 0, 0, 0, 0, 0, 0, 0, 162, 163,
2731 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
2732 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
2733 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
2734 0, 55, 0, 0, 0, 0, 0, 0, 0, 0,
2735 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
2736 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
2737 190, 0, 0, 0, 0, 0, 0, 191, 118, 119,
2738 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2739 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2740 140, 141, 0, 0, 0, 142, 143, 144, 145, 146,
2741 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
2742 152, 153, 154, 155, 156, 157, 158, 159, 160, 0,
2743 0, 161, 0, 0, 0, 0, 0, 0, 0, 0,
2744 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2745 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
2746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2747 177, 178, 0, 0, 55, 0, 0, 0, 0, 0,
2748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2749 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2750 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
2751 191, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2752 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2753 137, 138, 139, 140, 141, 0, 0, 0, 142, 143,
2754 144, 145, 146, 147, 148, 149, 150, 151, 0, 0,
2755 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
2756 159, 160, 0, 0, 161, 0, 0, 0, 0, 0,
2757 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
2758 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
2759 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
2760 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
2763 185, 186, 187, 188, 0, 189, 190, 5, 6, 7,
2764 0, 9, 0, 191, 0, 10, 11, 0, 0, 0,
2765 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2766 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2767 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2768 268, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2769 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772 269, 0, 0, 203, 50, 0, 51, 52, 0, 0,
2773 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2774 62, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2775 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
2776 270, 13, 14, 15, 238, 239, 18, 19, 271, 0,
2777 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2778 0, 0, 200, 0, 0, 0, 0, 0, 0, 268,
2779 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2780 40, 0, 41, 42, 0, 43, 44, 45, 0, 0,
2781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2782 0, 0, 0, 0, 0, 0, 0, 0, 0, 269,
2783 0, 0, 203, 50, 0, 51, 52, 0, 0, 0,
2784 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2785 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
2786 0, 0, 0, 10, 11, 0, 0, 0, 12, 270,
2787 13, 14, 15, 16, 17, 18, 19, 518, 0, 0,
2788 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2789 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2790 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2791 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2793 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2794 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2795 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2796 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2797 7, 0, 9, 0, 0, 0, 10, 11, 63, 64,
2798 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2799 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2800 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
2801 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2802 38, 39, 40, 201, 41, 42, 0, 43, 44, 45,
2803 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2805 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2806 204, 205, 206, 54, 55, 56, 57, 58, 59, 60,
2807 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2808 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2809 11, 63, 207, 65, 12, 0, 13, 14, 15, 16,
2810 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2811 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2812 0, 0, 0, 28, 29, 0, 31, 32, 33, 34,
2813 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2814 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2816 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2817 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2818 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2819 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2820 0, 0, 10, 11, 63, 64, 65, 12, 0, 13,
2821 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2822 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2823 200, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2824 32, 33, 34, 35, 36, 37, 38, 39, 40, 201,
2825 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2827 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
2828 203, 50, 0, 51, 52, 0, 608, 205, 206, 54,
2829 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2830 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2831 0, 9, 0, 0, 0, 10, 11, 63, 207, 65,
2832 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2833 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2834 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2835 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2836 39, 40, 201, 41, 42, 0, 43, 44, 45, 0,
2837 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2839 202, 0, 0, 203, 50, 0, 51, 52, 0, 204,
2840 205, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2841 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2842 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2843 63, 207, 65, 12, 0, 13, 14, 15, 238, 239,
2844 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
2845 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2846 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2847 36, 37, 38, 39, 40, 201, 41, 42, 0, 43,
2848 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2850 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2851 52, 0, 0, 205, 206, 54, 55, 56, 57, 58,
2852 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2853 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2854 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2855 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2856 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2857 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2858 33, 34, 35, 36, 37, 38, 39, 40, 201, 41,
2859 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2861 0, 0, 0, 0, 0, 0, 202, 0, 0, 203,
2862 50, 0, 51, 52, 0, 608, 205, 0, 54, 55,
2863 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2864 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2865 9, 0, 0, 0, 10, 11, 63, 207, 65, 12,
2866 0, 13, 14, 15, 238, 239, 18, 19, 0, 0,
2867 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2868 0, 0, 200, 0, 0, 0, 0, 0, 0, 29,
2869 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2870 40, 201, 41, 42, 0, 43, 44, 45, 0, 46,
2871 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2872 0, 0, 0, 0, 0, 0, 0, 0, 0, 202,
2873 0, 0, 203, 50, 0, 51, 52, 0, 0, 205,
2874 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2875 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2876 6, 7, 0, 9, 0, 0, 0, 10, 11, 63,
2877 207, 65, 12, 0, 13, 14, 15, 16, 17, 18,
2878 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2879 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2880 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2881 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2882 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2884 0, 0, 202, 0, 0, 203, 50, 0, 51, 52,
2885 0, 512, 0, 0, 54, 55, 56, 57, 58, 59,
2886 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2887 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2888 10, 11, 63, 207, 65, 12, 0, 13, 14, 15,
2889 238, 239, 18, 19, 0, 0, 0, 0, 0, 240,
2890 241, 242, 23, 24, 25, 26, 0, 0, 200, 0,
2891 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2892 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2893 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2895 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2896 0, 51, 52, 0, 204, 0, 0, 54, 55, 56,
2897 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2898 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2899 0, 0, 0, 10, 11, 63, 207, 65, 12, 0,
2900 13, 14, 15, 238, 239, 18, 19, 0, 0, 0,
2901 0, 0, 240, 241, 242, 23, 24, 25, 26, 0,
2902 0, 200, 0, 0, 0, 0, 0, 0, 29, 0,
2903 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2904 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2906 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2907 0, 203, 50, 0, 51, 52, 0, 816, 0, 0,
2908 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2909 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2910 7, 0, 9, 0, 0, 0, 10, 11, 63, 207,
2911 65, 12, 0, 13, 14, 15, 238, 239, 18, 19,
2912 0, 0, 0, 0, 0, 240, 241, 242, 23, 24,
2913 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
2914 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2915 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2916 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2918 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2919 512, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2920 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2921 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2922 11, 63, 207, 65, 12, 0, 13, 14, 15, 238,
2923 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2924 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2925 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2926 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2927 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 202, 0, 0, 203, 50, 0,
2930 51, 52, 0, 608, 0, 0, 54, 55, 56, 57,
2931 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2932 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2933 0, 0, 10, 11, 63, 207, 65, 12, 0, 13,
2934 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2935 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2936 200, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2937 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2938 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2940 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
2941 203, 50, 0, 51, 52, 0, 0, 0, 0, 54,
2942 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2943 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2944 0, 9, 0, 0, 0, 10, 11, 63, 207, 65,
2945 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2946 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2947 26, 0, 0, 27, 0, 0, 0, 0, 0, 0,
2948 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2949 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2950 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2952 202, 0, 0, 203, 50, 0, 51, 52, 0, 0,
2953 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2954 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2955 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2956 63, 64, 65, 12, 0, 13, 14, 15, 16, 17,
2957 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2958 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2959 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2960 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2961 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2963 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2964 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
2965 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2967 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2968 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2969 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2970 0, 0, 0, 0, 0, 0, 268, 0, 0, 32,
2971 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2972 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
2973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 269, 0, 0, 323,
2975 50, 0, 51, 52, 0, 324, 0, 0, 54, 55,
2976 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2977 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2978 10, 11, 0, 0, 0, 12, 270, 13, 14, 15,
2979 238, 239, 18, 19, 0, 0, 0, 0, 0, 240,
2980 241, 242, 23, 24, 25, 26, 0, 0, 200, 0,
2981 0, 0, 0, 0, 0, 268, 0, 0, 32, 33,
2982 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2983 0, 43, 44, 45, 0, 0, 0, 0, 0, 0,
2984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2985 0, 0, 0, 0, 0, 365, 0, 0, 49, 50,
2986 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2987 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2988 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2989 11, 0, 0, 0, 12, 270, 13, 14, 15, 238,
2990 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2991 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2992 0, 0, 0, 0, 268, 0, 0, 32, 33, 34,
2993 373, 36, 37, 38, 374, 40, 0, 41, 42, 0,
2994 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
2995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2996 0, 375, 0, 0, 376, 0, 0, 203, 50, 0,
2997 51, 52, 0, 0, 0, 0, 54, 55, 56, 57,
2998 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2999 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3000 0, 0, 0, 12, 270, 13, 14, 15, 238, 239,
3001 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
3002 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
3003 0, 0, 0, 268, 0, 0, 32, 33, 34, 373,
3004 36, 37, 38, 374, 40, 0, 41, 42, 0, 43,
3005 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
3006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3007 0, 0, 0, 376, 0, 0, 203, 50, 0, 51,
3008 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
3009 59, 60, 61, 62, 0, 0, 0, 0, 0, 5,
3010 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
3011 0, 0, 12, 270, 13, 14, 15, 238, 239, 18,
3012 19, 0, 0, 0, 0, 0, 240, 241, 242, 23,
3013 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
3014 0, 0, 268, 0, 0, 32, 33, 34, 35, 36,
3015 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
3016 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3018 0, 0, 269, 0, 0, 323, 50, 0, 51, 52,
3019 0, 0, 0, 0, 54, 55, 56, 57, 58, 59,
3020 60, 61, 62, 0, 0, 0, 0, 0, 5, 6,
3021 7, 0, 9, 0, 0, 0, 10, 11, 0, 0,
3022 0, 12, 270, 13, 14, 15, 238, 239, 18, 19,
3023 0, 0, 0, 0, 0, 240, 241, 242, 23, 24,
3024 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
3025 0, 268, 0, 0, 32, 33, 34, 35, 36, 37,
3026 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
3027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3029 0, 893, 0, 0, 203, 50, 0, 51, 52, 0,
3030 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
3031 61, 62, 0, 0, 0, 0, 0, 5, 6, 7,
3032 0, 9, 0, 0, 0, 10, 11, 0, 0, 0,
3033 12, 270, 13, 14, 15, 238, 239, 18, 19, 0,
3034 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
3035 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
3036 268, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3037 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
3038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3040 973, 0, 0, 203, 50, 0, 51, 52, 0, 0,
3041 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
3042 62, 0, 0, 0, 0, 0, 0, 553, 554, 0,
3043 0, 555, 0, 0, 0, 0, 0, 0, 0, 0,
3044 270, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3045 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3047 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3049 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3050 188, 0, 189, 190, 561, 562, 0, 0, 563, 0,
3051 191, 0, 0, 0, 0, 0, 0, 0, 162, 163,
3052 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
3053 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
3054 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
3055 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3056 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
3057 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
3058 190, 598, 562, 0, 0, 599, 0, 191, 0, 0,
3059 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
3060 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
3061 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
3062 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
3063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3064 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
3065 184, 185, 186, 187, 188, 0, 189, 190, 612, 554,
3066 0, 0, 613, 0, 191, 0, 0, 0, 0, 0,
3067 0, 0, 162, 163, 164, 165, 166, 167, 168, 169,
3068 170, 0, 0, 171, 172, 0, 0, 173, 174, 175,
3069 176, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3070 0, 177, 178, 0, 0, 0, 0, 0, 0, 0,
3071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3072 0, 0, 179, 180, 181, 182, 183, 184, 185, 186,
3073 187, 188, 0, 189, 190, 615, 562, 0, 0, 616,
3074 0, 191, 0, 0, 0, 0, 0, 0, 0, 162,
3075 163, 164, 165, 166, 167, 168, 169, 170, 0, 0,
3076 171, 172, 0, 0, 173, 174, 175, 176, 0, 0,
3077 0, 0, 0, 0, 0, 0, 0, 0, 177, 178,
3078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3079 0, 0, 0, 0, 0, 0, 0, 0, 0, 179,
3080 180, 181, 182, 183, 184, 185, 186, 187, 188, 0,
3081 189, 190, 639, 554, 0, 0, 640, 0, 191, 0,
3082 0, 0, 0, 0, 0, 0, 162, 163, 164, 165,
3083 166, 167, 168, 169, 170, 0, 0, 171, 172, 0,
3084 0, 173, 174, 175, 176, 0, 0, 0, 0, 0,
3085 0, 0, 0, 0, 0, 177, 178, 0, 0, 0,
3086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3087 0, 0, 0, 0, 0, 0, 179, 180, 181, 182,
3088 183, 184, 185, 186, 187, 188, 0, 189, 190, 642,
3089 562, 0, 0, 643, 0, 191, 0, 0, 0, 0,
3090 0, 0, 0, 162, 163, 164, 165, 166, 167, 168,
3091 169, 170, 0, 0, 171, 172, 0, 0, 173, 174,
3092 175, 176, 0, 0, 0, 0, 0, 0, 0, 0,
3093 0, 0, 177, 178, 0, 0, 0, 0, 0, 0,
3094 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3095 0, 0, 0, 179, 180, 181, 182, 183, 184, 185,
3096 186, 187, 188, 0, 189, 190, 727, 554, 0, 0,
3097 728, 0, 191, 0, 0, 0, 0, 0, 0, 0,
3098 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
3099 0, 171, 172, 0, 0, 173, 174, 175, 176, 0,
3100 0, 0, 0, 0, 0, 0, 0, 0, 0, 177,
3101 178, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3103 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
3104 0, 189, 190, 730, 562, 0, 0, 731, 0, 191,
3105 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
3106 165, 166, 167, 168, 169, 170, 0, 0, 171, 172,
3107 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
3108 0, 0, 0, 0, 0, 0, 177, 178, 0, 0,
3109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3110 0, 0, 0, 0, 0, 0, 0, 179, 180, 181,
3111 182, 183, 184, 185, 186, 187, 188, 0, 189, 190,
3112 737, 554, 0, 0, 738, 0, 191, 0, 0, 0,
3113 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
3114 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
3115 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
3116 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
3117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3118 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
3119 185, 186, 187, 188, 0, 189, 190, 1001, 554, 0,
3120 0, 1002, 0, 191, 0, 0, 0, 0, 0, 0,
3121 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3122 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3124 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3126 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3127 188, 0, 189, 190, 1036, 554, 0, 0, 1037, 0,
3128 191, 0, 0, 0, 0, 0, 0, 0, 162, 163,
3129 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
3130 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
3131 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
3132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3133 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
3134 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
3135 190, 1039, 562, 0, 0, 1040, 0, 191, 0, 0,
3136 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
3137 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
3138 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
3139 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
3140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3141 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
3142 184, 185, 186, 187, 188, 0, 189, 190, 0, 0,
3146 #define yypact_value_is_default(yystate) \
3147 ((yystate) == (-810))
3149 #define yytable_value_is_error(yytable_value) \
3150 ((yytable_value) == (-620))
3154 2, 55, 96, 16, 17, 8, 79, 20, 22, 64,
3155 354, 326, 16, 17, 8, 220, 20, 50, 27, 8,
3156 29, 472, 326, 28, 87, 28, 359, 90, 412, 353,
3157 4, 355, 420, 74, 28, 2, 420, 4, 53, 28,
3158 94, 668, 49, 90, 575, 594, 614, 51, 262, 51,
3159 52, 685, 266, 86, 87, 574, 67, 90, 440, 468,
3160 74, 55, 13, 651, 79, 786, 2, 376, 4, 49,
3161 458, 508, 416, 641, 511, 399, 91, 92, 93, 27,
3162 16, 17, 53, 776, 20, 874, 250, 472, 67, 778,
3163 87, 415, 715, 417, 16, 17, 719, 906, 20, 26,
3164 94, 872, 0, 37, 38, 13, 25, 230, 801, 518,
3165 25, 90, 26, 49, 50, 85, 113, 53, 25, 443,
3166 141, 61, 61, 13, 1, 85, 470, 85, 64, 85,
3167 16, 17, 255, 25, 20, 97, 259, 134, 902, 76,
3168 130, 85, 134, 79, 778, 596, 25, 471, 28, 141,
3169 86, 87, 786, 29, 90, 91, 92, 93, 120, 323,
3170 286, 729, 288, 133, 290, 51, 52, 938, 294, 25,
3171 110, 110, 740, 133, 25, 133, 132, 133, 805, 806,
3172 25, 118, 770, 771, 25, 136, 56, 736, 139, 133,
3173 141, 139, 13, 141, 140, 744, 203, 230, 271, 232,
3174 113, 990, 243, 130, 1013, 252, 657, 141, 897, 136,
3175 140, 224, 214, 226, 227, 134, 130, 136, 220, 134,
3176 224, 992, 226, 944, 429, 227, 134, 134, 13, 13,
3177 237, 139, 134, 141, 622, 111, 580, 621, 622, 1003,
3178 117, 252, 134, 250, 307, 308, 309, 310, 592, 139,
3179 632, 141, 85, 690, 1025, 134, 271, 581, 885, 268,
3180 949, 113, 139, 897, 141, 85, 321, 203, 902, 593,
3181 250, 326, 657, 252, 307, 308, 309, 310, 134, 312,
3182 313, 248, 591, 134, 872, 136, 874, 696, 224, 134,
3183 226, 227, 743, 134, 230, 87, 232, 360, 361, 422,
3184 133, 237, 224, 426, 226, 928, 37, 38, 431, 324,
3185 944, 87, 248, 133, 250, 362, 323, 321, 139, 1008,
3186 141, 113, 326, 68, 447, 113, 136, 360, 361, 452,
3187 100, 141, 306, 852, 87, 271, 963, 113, 224, 306,
3188 226, 354, 375, 323, 311, 61, 134, 402, 403, 65,
3189 938, 939, 354, 324, 139, 139, 141, 141, 743, 485,
3190 113, 355, 25, 61, 85, 140, 492, 61, 140, 1003,
3191 306, 307, 308, 309, 310, 311, 312, 313, 123, 124,
3192 125, 930, 697, 362, 139, 321, 141, 323, 324, 136,
3193 326, 107, 725, 109, 517, 468, 685, 928, 15, 378,
3194 17, 25, 990, 416, 992, 399, 611, 68, 85, 107,
3195 714, 109, 133, 107, 416, 109, 26, 85, 354, 134,
3196 356, 85, 636, 417, 360, 361, 428, 429, 85, 52,
3197 56, 26, 437, 56, 437, 87, 26, 1025, 440, 375,
3198 989, 113, 140, 437, 85, 518, 140, 134, 437, 443,
3199 113, 134, 88, 468, 85, 132, 133, 470, 141, 136,
3200 121, 122, 123, 124, 125, 133, 402, 403, 470, 133,
3201 1038, 134, 87, 440, 137, 85, 133, 471, 141, 867,
3202 416, 87, 87, 867, 935, 87, 134, 703, 134, 113,
3203 85, 132, 133, 141, 710, 85, 136, 786, 113, 61,
3204 789, 132, 133, 518, 440, 507, 508, 113, 61, 511,
3205 134, 113, 61, 137, 450, 136, 557, 141, 130, 134,
3206 130, 26, 132, 133, 565, 52, 412, 54, 55, 56,
3207 57, 68, 468, 542, 470, 130, 136, 132, 133, 137,
3208 130, 136, 132, 133, 558, 107, 136, 109, 110, 85,
3209 113, 560, 566, 138, 107, 760, 109, 110, 107, 600,
3210 109, 110, 595, 570, 637, 572, 568, 580, 670, 455,
3211 672, 131, 576, 85, 59, 60, 577, 87, 580, 592,
3212 85, 56, 518, 916, 87, 110, 600, 581, 87, 922,
3213 592, 87, 625, 85, 573, 574, 132, 133, 600, 593,
3214 605, 61, 605, 113, 134, 614, 110, 134, 587, 611,
3215 113, 605, 110, 902, 113, 904, 605, 113, 68, 742,
3216 132, 133, 637, 696, 134, 130, 110, 132, 133, 58,
3217 632, 136, 641, 68, 570, 134, 572, 61, 761, 68,
3218 132, 133, 697, 94, 580, 700, 701, 107, 685, 109,
3219 110, 774, 707, 708, 748, 944, 592, 946, 594, 595,
3220 85, 134, 951, 704, 666, 632, 668, 96, 97, 732,
3221 711, 17, 735, 1017, 59, 60, 685, 139, 87, 686,
3222 58, 696, 689, 107, 691, 109, 110, 56, 690, 625,
3223 68, 120, 746, 25, 1018, 137, 632, 85, 134, 732,
3224 134, 637, 735, 685, 113, 131, 134, 132, 133, 711,
3225 714, 130, 714, 715, 1003, 717, 1005, 719, 96, 97,
3226 729, 1010, 134, 724, 52, 134, 54, 55, 56, 57,
3227 85, 740, 14, 15, 140, 621, 859, 140, 1027, 134,
3228 741, 134, 120, 780, 132, 133, 85, 784, 871, 113,
3229 686, 134, 746, 689, 733, 691, 136, 10, 760, 1048,
3230 696, 697, 8, 85, 700, 701, 745, 776, 2, 13,
3231 4, 707, 708, 828, 85, 131, 85, 132, 133, 842,
3232 882, 883, 16, 17, 799, 887, 20, 889, 890, 113,
3233 134, 134, 801, 132, 133, 52, 732, 134, 780, 735,
3234 736, 134, 52, 805, 806, 134, 134, 814, 744, 842,
3235 132, 133, 52, 134, 115, 49, 50, 54, 55, 138,
3236 57, 132, 133, 132, 133, 15, 63, 64, 134, 87,
3237 64, 131, 839, 113, 118, 837, 134, 134, 840, 846,
3238 847, 134, 843, 850, 845, 52, 87, 54, 55, 56,
3239 57, 58, 86, 87, 855, 113, 90, 134, 134, 860,
3240 897, 68, 899, 799, 139, 902, 10, 904, 131, 10,
3241 877, 878, 113, 852, 134, 854, 134, 892, 814, 808,
3242 809, 9, 89, 885, 891, 88, 134, 134, 95, 96,
3243 97, 134, 828, 134, 996, 997, 998, 999, 54, 137,
3244 915, 134, 134, 839, 56, 118, 842, 63, 64, 131,
3245 846, 847, 919, 120, 850, 897, 123, 899, 134, 134,
3246 902, 10, 904, 131, 925, 926, 928, 52, 108, 54,
3247 55, 56, 57, 52, 141, 54, 55, 56, 57, 58,
3248 134, 877, 878, 134, 1046, 134, 134, 56, 52, 68,
3249 54, 55, 56, 57, 136, 891, 892, 134, 134, 134,
3250 969, 963, 136, 450, 89, 91, 1003, 711, 1005, 203,
3251 89, 1008, 979, 1010, 981, 93, 1020, 96, 97, 915,
3252 987, 770, 685, 919, 1013, 89, 749, 988, 1019, 99,
3253 224, 95, 226, 227, 930, 294, 230, 57, 232, 94,
3254 935, 120, 780, 237, 1017, 52, 899, 54, 55, 56,
3255 57, 1048, 897, 778, 248, 1017, 250, 1019, 1020, 396,
3256 1021, 1003, 1023, 1005, 1018, -1, 1008, -1, 1010, 1038,
3257 -1, 960, 961, -1, -1, 964, -1, 966, 967, -1,
3258 -1, -1, 89, 979, 68, 981, -1, -1, 95, -1,
3259 -1, 987, -1, 989, 68, -1, -1, -1, -1, 83,
3260 84, 40, 41, 42, 43, 44, 1048, -1, -1, 83,
3261 84, -1, 306, 307, 308, 309, 310, 311, 312, 313,
3262 52, 1017, 54, 55, 56, 57, -1, 321, -1, 323,
3263 -1, -1, 326, -1, 118, 119, 120, 121, 122, 123,
3264 124, 125, 1031, 1032, 1033, 1034, 120, 121, 122, 123,
3265 124, 125, -1, -1, -1, -1, -1, -1, -1, -1,
3266 354, -1, 356, -1, -1, 1054, 360, 361, -1, -1,
3267 -1, -1, -1, 52, -1, 54, 55, 56, 57, 58,
3268 -1, 375, -1, -1, -1, -1, -1, -1, 0, 68,
3269 -1, -1, -1, -1, -1, -1, 8, 9, 10, -1,
3270 -1, 13, 14, 15, -1, 17, -1, -1, 402, 403,
3271 89, -1, -1, -1, 26, 27, 95, 96, 97, -1,
3272 -1, -1, 416, -1, -1, 37, 38, 68, 40, 41,
3273 42, 43, 44, -1, 52, -1, 54, 55, 56, 57,
3274 58, 120, 83, 84, 123, -1, 440, -1, -1, -1,
3275 68, -1, -1, -1, -1, -1, 450, 136, -1, -1,
3276 -1, -1, -1, -1, 16, 17, -1, -1, 20, -1,
3277 -1, 89, -1, 85, -1, -1, 470, 95, 96, 97,
3278 121, 122, 123, 124, 125, -1, -1, -1, -1, -1,
3279 -1, -1, -1, -1, 46, 47, 108, -1, -1, 51,
3280 52, -1, 120, -1, -1, 123, -1, -1, -1, -1,
3281 -1, -1, 64, 65, -1, 44, -1, -1, 130, 131,
3282 -1, 133, -1, -1, 136, 137, -1, 139, -1, 141,
3283 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3284 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3285 79, 80, -1, -1, 83, 84, -1, -1, -1, -1,
3286 -1, -1, -1, -1, -1, -1, 52, -1, 54, 55,
3287 56, 57, 58, -1, -1, -1, 570, -1, 572, -1,
3288 -1, -1, 68, -1, -1, 114, 580, 116, 117, 118,
3289 119, 120, 121, 122, 123, 124, 125, -1, 592, -1,
3290 594, 595, -1, 89, -1, 134, -1, -1, -1, 95,
3291 96, 97, -1, 68, 69, 70, 71, 72, 73, 74,
3292 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3293 -1, 625, -1, -1, 120, -1, -1, 123, 632, -1,
3294 -1, -1, 2, -1, 4, -1, -1, -1, -1, 201,
3295 136, -1, 204, 205, 206, 207, -1, -1, 52, 114,
3296 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3297 125, -1, 224, -1, 226, 227, -1, -1, 52, -1,
3298 54, 55, 56, 57, 58, -1, 141, -1, -1, 49,
3299 -1, -1, 686, 53, 68, 689, -1, 691, -1, -1,
3300 -1, -1, -1, 697, -1, -1, 700, 701, -1, -1,
3301 -1, -1, -1, 707, 708, 89, -1, -1, -1, 79,
3302 -1, 95, 96, 97, -1, -1, -1, -1, -1, -1,
3303 -1, 91, 92, 93, 94, -1, -1, -1, 732, -1,
3304 -1, 735, 736, -1, -1, -1, 120, -1, -1, 123,
3305 744, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3306 -1, -1, -1, -1, -1, -1, -1, -1, -1, 321,
3307 -1, -1, -1, -1, 326, 327, 328, 329, 330, 331,
3308 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
3309 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
3310 352, -1, 354, -1, -1, -1, -1, 201, -1, -1,
3311 204, 205, 206, -1, -1, -1, -1, -1, -1, -1,
3312 814, -1, -1, -1, -1, 52, -1, 54, 55, 56,
3313 57, 58, -1, -1, 828, -1, -1, -1, -1, -1,
3314 -1, 68, -1, 203, -1, 839, -1, -1, 842, -1,
3315 402, 403, 846, 847, -1, -1, 850, -1, 410, 411,
3316 412, -1, 89, -1, 416, -1, 418, 419, 420, 96,
3317 97, -1, -1, -1, -1, -1, -1, 237, -1, -1,
3318 -1, -1, -1, 877, 878, -1, -1, 439, 248, -1,
3319 250, -1, 444, 120, -1, -1, -1, 891, -1, -1,
3320 -1, -1, -1, 455, -1, -1, 458, -1, -1, -1,
3321 -1, 271, -1, -1, -1, 2, -1, 4, 470, -1,
3322 -1, -1, -1, -1, -1, 919, -1, 321, -1, -1,
3323 -1, 2, 326, 4, -1, -1, 930, -1, -1, -1,
3324 -1, -1, -1, -1, 496, 497, 306, -1, -1, -1,
3325 -1, 311, -1, -1, -1, -1, -1, -1, -1, -1,
3326 512, -1, 49, 323, 324, -1, 53, -1, -1, -1,
3327 -1, -1, -1, -1, -1, -1, -1, -1, 49, -1,
3328 -1, -1, 53, -1, -1, 979, -1, 981, -1, -1,
3329 -1, -1, 79, 987, -1, 989, 356, -1, -1, -1,
3330 -1, -1, -1, -1, 91, 92, 93, 94, 79, -1,
3331 -1, -1, -1, -1, -1, -1, -1, 411, 412, -1,
3332 91, 92, 93, 1017, 576, -1, 420, -1, 580, -1,
3333 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3334 592, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3335 -1, -1, -1, -1, -1, -1, 608, -1, -1, -1,
3336 -1, 455, -1, -1, 458, -1, -1, -1, -1, 621,
3337 622, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3338 440, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3339 450, -1, -1, -1, -1, -1, -1, 649, -1, -1,
3340 -1, -1, -1, -1, -1, -1, -1, -1, 468, -1,
3341 -1, -1, -1, -1, -1, -1, 203, -1, 512, -1,
3342 -1, -1, -1, -1, 2, -1, 4, -1, -1, -1,
3343 -1, -1, 203, -1, -1, -1, -1, -1, -1, -1,
3344 2, 693, 4, -1, -1, 697, 698, -1, 700, 701,
3345 237, -1, -1, -1, -1, 707, 708, -1, 518, -1,
3346 -1, 248, 714, 250, -1, -1, 237, -1, -1, -1,
3347 -1, 49, -1, -1, -1, -1, -1, 248, -1, 250,
3348 -1, -1, 576, -1, 271, -1, -1, 49, -1, -1,
3349 -1, -1, -1, -1, -1, -1, -1, -1, -1, 751,
3350 271, -1, -1, 755, 756, -1, 758, 759, -1, -1,
3351 570, -1, 572, 91, 608, 767, -1, -1, -1, 306,
3352 -1, -1, -1, -1, 311, -1, -1, 621, 622, -1,
3353 -1, -1, -1, -1, 594, 306, 323, 324, -1, -1,
3354 311, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3355 -1, -1, 323, 324, -1, 649, -1, -1, -1, -1,
3356 -1, -1, -1, -1, 816, -1, -1, -1, 820, 356,
3357 -1, -1, 632, -1, -1, -1, 828, 637, -1, -1,
3358 -1, -1, -1, -1, -1, 356, -1, -1, -1, -1,
3359 -1, -1, -1, -1, -1, -1, -1, 849, -1, 693,
3360 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3361 -1, -1, -1, -1, 866, 867, -1, -1, -1, -1,
3362 714, -1, -1, -1, -1, 203, 686, -1, -1, 689,
3363 -1, 691, -1, -1, -1, -1, 696, -1, -1, -1,
3364 -1, 203, -1, -1, -1, -1, -1, -1, -1, -1,
3365 -1, -1, -1, 440, -1, -1, -1, -1, -1, 237,
3366 -1, -1, -1, 450, -1, -1, -1, -1, -1, 440,
3367 248, -1, 250, 767, -1, 237, 736, -1, -1, 450,
3368 -1, 468, -1, -1, 744, -1, 248, -1, 250, -1,
3369 -1, -1, -1, -1, -1, -1, -1, 468, -1, -1,
3370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3372 -1, -1, 816, -1, -1, -1, -1, -1, 306, -1,
3373 -1, 518, -1, 311, -1, -1, -1, -1, -1, 799,
3374 -1, -1, -1, -1, 306, 323, -1, 518, 326, 311,
3375 -1, -1, -1, -1, 814, 849, -1, -1, -1, -1,
3376 -1, 323, -1, -1, -1, 1017, -1, -1, -1, -1,
3377 -1, -1, -1, 867, -1, -1, -1, -1, 356, 839,
3378 -1, -1, -1, 570, -1, 572, 846, 847, -1, -1,
3379 850, -1, -1, -1, 356, -1, -1, -1, -1, 570,
3380 -1, 572, -1, -1, -1, -1, -1, 594, -1, -1,
3381 -1, -1, -1, -1, -1, -1, -1, 877, 878, -1,
3382 -1, -1, -1, 594, -1, -1, -1, -1, -1, -1,
3383 -1, 891, 892, -1, -1, -1, -1, -1, -1, -1,
3384 -1, -1, -1, -1, -1, 632, -1, -1, -1, -1,
3385 637, -1, -1, -1, -1, 915, -1, -1, -1, 919,
3386 -1, 632, 440, -1, -1, -1, 637, -1, -1, -1,
3387 930, -1, 450, -1, -1, -1, -1, -1, 440, -1,
3388 -1, -1, -1, -1, -1, -1, -1, -1, 450, -1,
3389 -1, -1, -1, -1, -1, -1, -1, -1, -1, 686,
3390 -1, -1, 689, -1, 691, 676, 44, -1, -1, 696,
3391 -1, -1, -1, -1, -1, 686, -1, -1, 689, 979,
3392 691, 981, -1, -1, -1, 696, -1, 987, -1, 989,
3393 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3394 78, 79, 80, -1, -1, 83, 84, -1, -1, 736,
3395 -1, -1, -1, -1, -1, -1, -1, 744, -1, -1,
3396 -1, -1, -1, -1, -1, 736, -1, -1, -1, -1,
3397 -1, -1, -1, 744, -1, -1, 114, -1, 116, 117,
3398 118, 119, 120, 121, 122, 123, 124, 125, -1, -1,
3399 -1, -1, 570, -1, 572, -1, -1, -1, -1, -1,
3400 -1, -1, -1, -1, -1, -1, -1, -1, 570, -1,
3401 572, -1, 799, -1, -1, -1, 594, -1, -1, -1,
3402 -1, -1, -1, -1, -1, -1, -1, 814, 799, -1,
3403 -1, -1, 594, -1, -1, -1, -1, -1, -1, -1,
3404 -1, -1, -1, 814, -1, -1, -1, -1, -1, -1,
3405 -1, -1, 839, -1, 632, -1, -1, -1, -1, 846,
3406 847, -1, -1, 850, -1, -1, -1, -1, 839, -1,
3407 632, -1, -1, -1, -1, 846, 847, -1, -1, 850,
3408 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3409 877, 878, -1, -1, -1, -1, -1, -1, -1, -1,
3410 -1, -1, -1, -1, 891, 892, 877, 878, 686, -1,
3411 -1, 689, -1, 691, -1, -1, -1, -1, -1, 697,
3412 891, 892, -1, -1, 686, -1, -1, 689, 915, 691,
3413 -1, -1, 919, -1, -1, -1, -1, -1, -1, -1,
3414 -1, -1, -1, 930, 915, -1, -1, -1, 919, -1,
3415 -1, -1, -1, -1, -1, -1, -1, -1, 736, 930,
3416 -1, -1, -1, -1, -1, -1, 744, -1, -1, -1,
3417 -1, -1, -1, -1, 736, 68, 69, 70, 71, 72,
3418 73, 74, 744, -1, 77, 78, -1, -1, -1, -1,
3419 83, 84, 979, -1, 981, -1, -1, -1, -1, -1,
3420 987, -1, 989, -1, -1, -1, -1, -1, 979, -1,
3421 981, -1, -1, -1, -1, -1, 987, -1, 989, -1,
3422 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122,
3423 123, 124, 125, -1, -1, -1, 814, -1, -1, -1,
3424 -1, 68, 69, 70, 71, 72, 73, 74, 75, -1,
3425 77, 78, 814, -1, -1, -1, 83, 84, -1, -1,
3426 -1, 839, -1, -1, -1, -1, -1, -1, 846, 847,
3427 -1, -1, 850, -1, -1, -1, -1, 839, -1, -1,
3428 -1, -1, -1, -1, 846, 847, -1, -1, 850, 116,
3429 117, 118, 119, 120, 121, 122, 123, 124, 125, 877,
3430 878, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3431 -1, -1, -1, 891, -1, 877, 878, -1, -1, -1,
3432 -1, -1, -1, -1, -1, -1, -1, -1, -1, 891,
3433 68, 69, 70, 71, 72, 73, 74, 915, -1, 77,
3434 78, 919, -1, -1, -1, 83, 84, -1, -1, -1,
3435 -1, -1, 930, -1, -1, -1, -1, 919, -1, -1,
3436 -1, -1, -1, -1, -1, -1, -1, -1, 930, -1,
3437 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
3438 118, 119, 120, 121, 122, 123, 124, 125, -1, -1,
3439 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3440 -1, 979, -1, 981, -1, -1, -1, -1, -1, 987,
3441 -1, 989, -1, -1, -1, -1, -1, 979, -1, 981,
3442 -1, -1, -1, -1, -1, 987, -1, 989, 0, 1,
3443 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3444 12, -1, -1, -1, 16, -1, 18, 19, 20, 21,
3445 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3446 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3447 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3448 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3449 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3451 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3452 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3453 102, 103, 104, 105, 106, 0, -1, -1, -1, -1,
3454 -1, -1, -1, 8, 9, 10, -1, -1, 13, 14,
3455 15, -1, 17, -1, 126, 127, 128, -1, 44, -1,
3456 -1, 26, 27, 28, 29, -1, -1, 139, -1, 141,
3457 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3458 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3459 76, 77, 78, 79, 80, -1, -1, 83, 84, -1,
3460 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3461 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3462 85, -1, 87, 88, -1, -1, -1, -1, 114, 94,
3463 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3464 -1, -1, -1, 108, -1, -1, 111, -1, 113, 114,
3465 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3466 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3467 0, -1, 137, 138, 139, -1, 141, -1, 8, 9,
3468 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3469 -1, -1, -1, -1, -1, 25, -1, 27, 28, 29,
3470 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3471 40, 41, 42, 43, 44, -1, -1, 68, 69, 70,
3472 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3473 -1, -1, 83, 84, -1, -1, -1, -1, 68, 69,
3474 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3475 80, -1, -1, 83, 84, 85, -1, 87, 88, -1,
3476 -1, -1, -1, 114, 94, 116, 117, 118, 119, 120,
3477 121, 122, 123, 124, 125, -1, -1, -1, 108, -1,
3478 -1, 111, -1, 113, 114, 115, 116, 117, 118, 119,
3479 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3480 -1, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3481 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3482 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3483 25, -1, 27, 28, 29, -1, -1, -1, -1, -1,
3484 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3485 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3486 76, 77, 78, 79, 80, -1, -1, 83, 84, -1,
3487 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3488 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3489 85, -1, 87, 88, -1, -1, -1, -1, -1, 94,
3490 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3491 -1, -1, -1, 108, -1, -1, 111, -1, 113, 114,
3492 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3493 125, -1, -1, -1, -1, -1, 131, 132, 133, 134,
3494 0, -1, 137, 138, 139, -1, 141, -1, 8, 9,
3495 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3496 -1, -1, -1, -1, -1, -1, 26, 27, 28, 29,
3497 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3498 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3499 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3500 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3501 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3502 80, -1, -1, 83, 84, 85, -1, -1, 88, -1,
3503 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3504 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3505 -1, 111, -1, -1, 114, 115, 116, 117, 118, 119,
3506 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3507 130, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3508 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3509 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3510 -1, 26, 27, 28, 29, -1, -1, -1, -1, -1,
3511 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3514 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3515 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3516 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3518 -1, -1, -1, 108, -1, -1, 111, -1, -1, 114,
3519 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3520 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3521 0, -1, 137, 138, 139, -1, 141, -1, 8, 9,
3522 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3523 -1, -1, -1, -1, -1, -1, -1, 27, 28, 29,
3524 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3525 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3527 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3528 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3529 80, -1, -1, 83, 84, 85, -1, 87, 88, -1,
3530 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3531 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3532 -1, 111, -1, 113, 114, 115, 116, 117, 118, 119,
3533 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3534 -1, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3535 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3536 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3537 -1, 26, 27, 28, -1, -1, -1, -1, -1, -1,
3538 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3541 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3542 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3543 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3545 -1, -1, -1, 108, -1, -1, -1, -1, -1, 114,
3546 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3547 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3548 0, 136, 137, 138, 139, -1, 141, -1, 8, 9,
3549 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3550 -1, -1, -1, -1, -1, -1, -1, 27, 28, 29,
3551 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3552 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3553 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3554 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3555 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3556 80, -1, -1, 83, 84, 85, -1, -1, 88, -1,
3557 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3558 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3559 -1, 111, -1, -1, 114, 115, 116, 117, 118, 119,
3560 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3561 -1, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3562 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3563 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3564 -1, 26, 27, 28, -1, -1, -1, -1, -1, -1,
3565 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3566 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3568 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3569 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3570 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3571 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3572 -1, -1, -1, 108, -1, -1, -1, -1, -1, 114,
3573 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3574 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3575 0, 136, 137, 138, 139, -1, 141, -1, 8, 9,
3576 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3577 -1, -1, -1, -1, -1, -1, -1, 27, 28, -1,
3578 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3579 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3581 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3582 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3583 80, -1, -1, 83, 84, 85, -1, -1, 88, -1,
3584 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3585 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3586 -1, -1, -1, -1, 114, -1, 116, 117, 118, 119,
3587 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3588 -1, 131, 132, 133, 134, 0, 136, 137, 138, 139,
3589 -1, 141, -1, 8, 9, 10, -1, -1, -1, 14,
3590 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3591 -1, 26, -1, -1, -1, -1, -1, -1, -1, -1,
3592 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3595 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3596 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3597 85, -1, 87, -1, -1, -1, -1, -1, -1, -1,
3598 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3599 -1, -1, -1, 108, -1, -1, -1, -1, 113, 114,
3600 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3601 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3602 0, -1, 137, -1, 139, -1, 141, -1, 8, 9,
3603 10, -1, -1, -1, 14, 15, -1, 17, -1, -1,
3604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3605 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3606 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3607 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3608 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3609 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3610 80, -1, -1, 83, 84, 85, -1, 87, -1, -1,
3611 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3612 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3613 -1, -1, -1, 113, 114, -1, 116, 117, 118, 119,
3614 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3615 -1, 131, 132, 133, 134, -1, -1, 137, -1, 139,
3616 1, 141, 3, 4, 5, 6, 7, 8, 9, 10,
3617 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3618 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3619 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3620 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3621 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3622 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3624 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3625 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3626 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3627 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3628 -1, -1, -1, -1, -1, 126, 127, 128, -1, -1,
3629 -1, -1, -1, -1, -1, -1, -1, -1, 139, 1,
3630 141, 3, 4, 5, 6, 7, -1, -1, 10, 11,
3631 12, -1, 14, 15, 16, -1, 18, 19, 20, 21,
3632 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3633 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3634 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3635 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3636 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3638 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3639 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3640 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3642 -1, -1, -1, -1, 126, 127, 128, -1, -1, -1,
3643 -1, -1, -1, -1, -1, -1, -1, 139, 1, 141,
3644 3, 4, 5, 6, 7, -1, -1, 10, 11, 12,
3645 -1, -1, 15, 16, 17, 18, 19, 20, 21, 22,
3646 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3647 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3648 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3649 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3650 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3651 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3652 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3653 93, -1, 95, -1, -1, 98, 99, 100, 101, 102,
3654 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
3655 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3656 -1, -1, -1, 126, 127, 128, -1, -1, -1, -1,
3657 -1, -1, -1, -1, -1, -1, 139, 1, 141, 3,
3658 4, 5, 6, 7, -1, -1, 10, 11, 12, -1,
3659 -1, 15, 16, -1, 18, 19, 20, 21, 22, 23,
3660 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3661 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3662 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3663 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3664 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3666 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3667 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
3668 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
3669 1, -1, 3, 4, 5, 6, 7, -1, 9, 10,
3670 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3671 21, 22, 23, 24, -1, 139, -1, 141, -1, 30,
3672 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3673 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3674 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3675 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3676 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3677 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3678 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3679 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3680 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
3681 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3682 18, 19, 20, 21, 22, 23, 24, -1, 139, -1,
3683 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3684 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3685 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3686 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3688 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3689 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3690 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3692 -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
3693 128, -1, -1, -1, -1, -1, -1, -1, -1, 137,
3694 -1, 139, 1, 141, 3, 4, 5, 6, 7, -1,
3695 -1, -1, 11, 12, -1, -1, -1, 16, -1, 18,
3696 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3697 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3698 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3699 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3700 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3701 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3702 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3703 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3704 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3706 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3707 -1, -1, -1, -1, -1, -1, -1, -1, 137, -1,
3708 139, 1, 141, 3, 4, 5, 6, 7, -1, -1,
3709 -1, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3710 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3711 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3712 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3713 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3714 60, -1, 62, 63, 64, -1, 66, 67, -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, 95, -1, -1, 98, 99,
3718 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3719 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3720 -1, -1, -1, -1, -1, -1, 126, 127, 128, -1,
3721 -1, 131, 1, -1, 3, 4, 5, 6, 7, 139,
3722 -1, 141, 11, 12, -1, -1, -1, 16, -1, 18,
3723 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3724 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3725 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3726 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3727 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3728 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3729 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3730 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3731 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3732 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3733 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3734 -1, -1, 131, -1, -1, -1, -1, -1, -1, -1,
3735 139, 1, 141, 3, 4, 5, 6, 7, -1, -1,
3736 10, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3737 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3738 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3739 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3740 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3741 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3743 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3744 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
3745 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3746 -1, -1, -1, -1, 1, -1, 3, 4, 5, 6,
3747 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
3748 -1, 18, 19, 20, 21, 22, 23, 24, -1, 139,
3749 -1, 141, -1, 30, 31, 32, 33, 34, 35, 36,
3750 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3751 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3752 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3753 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3754 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3755 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3756 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3757 -1, 108, -1, -1, -1, -1, -1, -1, -1, 3,
3758 4, 5, -1, 7, -1, -1, -1, 11, 12, 126,
3759 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3760 24, -1, 139, -1, 141, -1, 30, 31, 32, 33,
3761 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3762 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3763 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
3764 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3766 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3767 -1, 95, 96, 97, 98, 99, 100, 101, 102, 103,
3768 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
3769 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3770 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3771 21, 22, 23, 24, -1, -1, -1, 141, -1, 30,
3772 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3773 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3774 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3775 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3776 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3777 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3778 -1, 92, 93, -1, -1, -1, -1, 98, 99, 100,
3779 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3780 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3781 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3782 18, 19, 20, 21, 22, 23, 24, -1, 139, -1,
3783 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3784 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3785 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3786 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3788 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3789 -1, 89, 90, -1, 92, 93, -1, -1, -1, -1,
3790 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3791 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3792 5, 6, 7, -1, -1, -1, 11, 12, 126, 127,
3793 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3794 -1, -1, -1, 141, -1, 30, 31, 32, 33, 34,
3795 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3796 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3797 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3798 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3800 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3801 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3802 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3803 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3804 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3805 22, 23, 24, -1, 139, -1, -1, -1, 30, 31,
3806 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3807 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3808 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3809 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3811 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3812 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3813 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3814 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3815 -1, -1, -1, -1, 126, 127, 128, -1, -1, -1,
3816 -1, -1, -1, -1, -1, -1, -1, 139, 3, 4,
3817 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3818 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3819 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3820 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3821 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3822 55, 56, 57, -1, -1, -1, -1, -1, -1, -1,
3823 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3824 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3826 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
3827 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3828 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3829 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
3830 135, 136, 3, 4, 5, 6, 7, 8, 9, 10,
3831 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3832 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
3833 31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
3834 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3835 51, 52, 53, 54, 55, 56, 57, -1, -1, -1,
3836 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
3837 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
3838 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
3839 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
3840 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3841 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
3842 121, 122, 123, 124, 125, -1, 127, 128, -1, -1,
3843 -1, -1, -1, -1, 135, 3, 4, 5, 6, 7,
3844 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3845 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
3846 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
3847 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3848 48, 49, 50, 51, 52, 53, 54, -1, 56, -1,
3849 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
3850 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3851 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
3852 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
3853 -1, 99, -1, -1, -1, -1, -1, -1, -1, -1,
3854 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
3855 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
3856 128, -1, -1, -1, -1, -1, -1, 135, 3, 4,
3857 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3858 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3859 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3860 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3861 45, 46, 47, 48, 49, 50, 51, 52, 53, -1,
3862 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3863 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3864 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3866 95, 96, -1, -1, 99, -1, -1, -1, -1, -1,
3867 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3868 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3869 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
3870 135, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3871 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3872 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3873 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3874 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3875 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
3876 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3877 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3878 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3879 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
3880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3881 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
3882 122, 123, 124, 125, -1, 127, 128, 3, 4, 5,
3883 -1, 7, -1, 135, -1, 11, 12, -1, -1, -1,
3884 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3885 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3886 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3887 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3888 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3891 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
3892 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3893 106, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3894 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
3895 126, 18, 19, 20, 21, 22, 23, 24, 134, -1,
3896 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3897 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3898 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3899 57, -1, 59, 60, -1, 62, 63, 64, -1, -1,
3900 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3901 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3902 -1, -1, 89, 90, -1, 92, 93, -1, -1, -1,
3903 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3904 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
3905 -1, -1, -1, 11, 12, -1, -1, -1, 16, 126,
3906 18, 19, 20, 21, 22, 23, 24, 134, -1, -1,
3907 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3908 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3909 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3910 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3911 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3912 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3913 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3914 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3915 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3916 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
3917 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3918 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3919 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3920 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3921 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3922 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3923 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3924 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3925 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
3926 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3927 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3928 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3929 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3930 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3931 -1, -1, -1, 45, 46, -1, 48, 49, 50, 51,
3932 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3933 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3934 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3935 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3936 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3937 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3938 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3939 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3940 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3941 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3942 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3943 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
3944 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3945 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3946 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3947 89, 90, -1, 92, 93, -1, 95, 96, 97, 98,
3948 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3949 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3950 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
3951 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3952 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3953 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3954 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3955 56, 57, 58, 59, 60, -1, 62, 63, 64, -1,
3956 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3957 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3958 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3959 96, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3960 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3961 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3962 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
3963 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3964 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3965 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3966 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3967 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3968 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3969 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3970 93, -1, -1, 96, 97, 98, 99, 100, 101, 102,
3971 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
3972 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3973 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
3974 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3975 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3976 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3977 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3978 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3979 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3980 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3981 90, -1, 92, 93, -1, 95, 96, -1, 98, 99,
3982 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3983 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3984 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
3985 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3986 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3987 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3988 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3989 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
3990 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3991 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3992 -1, -1, 89, 90, -1, 92, 93, -1, -1, 96,
3993 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3994 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3995 4, 5, -1, 7, -1, -1, -1, 11, 12, 126,
3996 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3997 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3998 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3999 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4000 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4001 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
4002 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4003 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4004 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
4005 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
4006 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4007 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
4008 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4009 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4010 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4011 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4012 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
4013 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4014 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
4015 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
4016 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
4017 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4018 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
4019 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4020 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4021 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4022 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4023 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
4024 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4025 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
4026 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
4027 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
4028 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4029 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
4030 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4031 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4032 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4033 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4034 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
4035 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
4036 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4037 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
4038 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
4039 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
4040 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4041 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
4042 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4043 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4044 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4045 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
4046 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
4047 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4048 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
4049 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
4050 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
4051 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4052 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
4053 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4054 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4055 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4056 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4057 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
4058 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4059 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
4060 89, 90, -1, 92, 93, -1, -1, -1, -1, 98,
4061 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
4062 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4063 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
4064 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4065 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4066 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4067 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4068 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
4069 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
4070 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4071 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
4072 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
4073 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4074 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4075 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
4076 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4077 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4078 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4079 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4080 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
4081 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4082 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4083 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4084 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4085 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4086 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
4087 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4088 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4089 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4090 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4091 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
4092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4093 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4094 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
4095 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4096 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4097 11, 12, -1, -1, -1, 16, 126, 18, 19, 20,
4098 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4099 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4100 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4101 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4102 -1, 62, 63, 64, -1, -1, -1, -1, -1, -1,
4103 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4104 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
4105 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
4106 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
4107 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4108 12, -1, -1, -1, 16, 126, 18, 19, 20, 21,
4109 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4110 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4111 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4112 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
4113 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
4114 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4115 -1, 83, -1, -1, 86, -1, -1, 89, 90, -1,
4116 92, 93, -1, -1, -1, -1, 98, 99, 100, 101,
4117 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
4118 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4119 -1, -1, -1, 16, 126, 18, 19, 20, 21, 22,
4120 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4121 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4122 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4123 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4124 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
4125 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4126 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4127 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4128 103, 104, 105, 106, -1, -1, -1, -1, -1, 3,
4129 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4130 -1, -1, 16, 126, 18, 19, 20, 21, 22, 23,
4131 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4132 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4133 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4134 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4135 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4136 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4137 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4138 -1, -1, -1, -1, 98, 99, 100, 101, 102, 103,
4139 104, 105, 106, -1, -1, -1, -1, -1, 3, 4,
4140 5, -1, 7, -1, -1, -1, 11, 12, -1, -1,
4141 -1, 16, 126, 18, 19, 20, 21, 22, 23, 24,
4142 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4143 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4144 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4145 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
4146 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4148 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
4149 -1, -1, -1, 98, 99, 100, 101, 102, 103, 104,
4150 105, 106, -1, -1, -1, -1, -1, 3, 4, 5,
4151 -1, 7, -1, -1, -1, 11, 12, -1, -1, -1,
4152 16, 126, 18, 19, 20, 21, 22, 23, 24, -1,
4153 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4154 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4155 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4156 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
4157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4159 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
4160 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
4161 106, -1, -1, -1, -1, -1, -1, 52, 53, -1,
4162 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
4163 126, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4164 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4165 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4166 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4167 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4168 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4169 125, -1, 127, 128, 52, 53, -1, -1, 56, -1,
4170 135, -1, -1, -1, -1, -1, -1, -1, 66, 67,
4171 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4172 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4173 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
4174 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4175 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
4176 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
4177 128, 52, 53, -1, -1, 56, -1, 135, -1, -1,
4178 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
4179 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4180 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4181 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
4182 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4183 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
4184 121, 122, 123, 124, 125, -1, 127, 128, 52, 53,
4185 -1, -1, 56, -1, 135, -1, -1, -1, -1, -1,
4186 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
4187 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4188 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4189 -1, 95, 96, -1, -1, -1, -1, -1, -1, -1,
4190 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4191 -1, -1, 116, 117, 118, 119, 120, 121, 122, 123,
4192 124, 125, -1, 127, 128, 52, 53, -1, -1, 56,
4193 -1, 135, -1, -1, -1, -1, -1, -1, -1, 66,
4194 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4195 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4196 -1, -1, -1, -1, -1, -1, -1, -1, 95, 96,
4197 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4198 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
4199 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
4200 127, 128, 52, 53, -1, -1, 56, -1, 135, -1,
4201 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
4202 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4203 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4204 -1, -1, -1, -1, -1, 95, 96, -1, -1, -1,
4205 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4206 -1, -1, -1, -1, -1, -1, 116, 117, 118, 119,
4207 120, 121, 122, 123, 124, 125, -1, 127, 128, 52,
4208 53, -1, -1, 56, -1, 135, -1, -1, -1, -1,
4209 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
4210 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4211 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4212 -1, -1, 95, 96, -1, -1, -1, -1, -1, -1,
4213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4214 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122,
4215 123, 124, 125, -1, 127, 128, 52, 53, -1, -1,
4216 56, -1, 135, -1, -1, -1, -1, -1, -1, -1,
4217 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4218 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4219 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4220 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4221 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4222 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
4223 -1, 127, 128, 52, 53, -1, -1, 56, -1, 135,
4224 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
4225 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4226 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4227 -1, -1, -1, -1, -1, -1, 95, 96, -1, -1,
4228 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4229 -1, -1, -1, -1, -1, -1, -1, 116, 117, 118,
4230 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
4231 52, 53, -1, -1, 56, -1, 135, -1, -1, -1,
4232 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
4233 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4234 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4235 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
4236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4237 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
4238 122, 123, 124, 125, -1, 127, 128, 52, 53, -1,
4239 -1, 56, -1, 135, -1, -1, -1, -1, -1, -1,
4240 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4241 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4242 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4243 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4244 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4245 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4246 125, -1, 127, 128, 52, 53, -1, -1, 56, -1,
4247 135, -1, -1, -1, -1, -1, -1, -1, 66, 67,
4248 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4249 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4250 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
4251 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4252 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
4253 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
4254 128, 52, 53, -1, -1, 56, -1, 135, -1, -1,
4255 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
4256 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4257 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4258 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
4259 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4260 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
4261 121, 122, 123, 124, 125, -1, 127, 128, -1, -1,
4269 0, 143, 144, 0, 1, 3, 4, 5, 6, 7,
4270 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4271 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4272 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4273 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4274 90, 92, 93, 95, 98, 99, 100, 101, 102, 103,
4275 104, 105, 106, 126, 127, 128, 145, 146, 147, 154,
4276 156, 157, 159, 160, 163, 164, 165, 167, 168, 169,
4277 171, 172, 182, 196, 214, 215, 216, 217, 218, 219,
4278 220, 221, 222, 223, 224, 250, 251, 265, 266, 267,
4279 268, 269, 270, 271, 274, 276, 277, 289, 291, 292,
4280 293, 294, 295, 296, 297, 328, 339, 147, 3, 4,
4281 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
4282 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
4283 25, 26, 30, 31, 32, 33, 34, 35, 36, 37,
4284 38, 39, 45, 46, 47, 48, 49, 50, 51, 52,
4285 53, 56, 66, 67, 68, 69, 70, 71, 72, 73,
4286 74, 77, 78, 81, 82, 83, 84, 95, 96, 116,
4287 117, 118, 119, 120, 121, 122, 123, 124, 125, 127,
4288 128, 135, 175, 176, 177, 178, 180, 181, 289, 291,
4289 39, 58, 86, 89, 95, 96, 97, 127, 164, 172,
4290 182, 184, 189, 192, 194, 214, 293, 294, 296, 297,
4291 326, 327, 189, 189, 136, 190, 191, 136, 186, 190,
4292 136, 141, 333, 54, 177, 333, 148, 130, 21, 22,
4293 30, 31, 32, 163, 182, 214, 182, 56, 1, 47,
4294 89, 150, 151, 152, 154, 166, 167, 339, 157, 198,
4295 185, 194, 326, 339, 184, 325, 326, 339, 46, 86,
4296 126, 134, 171, 196, 214, 293, 294, 297, 242, 243,
4297 54, 55, 57, 175, 281, 290, 280, 281, 282, 140,
4298 272, 140, 278, 140, 275, 140, 279, 59, 60, 159,
4299 182, 182, 139, 141, 332, 337, 338, 40, 41, 42,
4300 43, 44, 37, 38, 26, 130, 186, 190, 256, 28,
4301 248, 113, 134, 89, 95, 168, 113, 68, 69, 70,
4302 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4303 83, 84, 114, 116, 117, 118, 119, 120, 121, 122,
4304 123, 124, 125, 85, 132, 133, 197, 157, 158, 158,
4305 201, 203, 158, 332, 338, 86, 165, 172, 214, 230,
4306 293, 294, 297, 52, 56, 83, 86, 173, 174, 214,
4307 293, 294, 297, 174, 33, 34, 35, 36, 49, 50,
4308 51, 52, 56, 136, 175, 295, 323, 85, 133, 331,
4309 256, 268, 87, 87, 134, 184, 56, 184, 184, 184,
4310 113, 88, 134, 193, 339, 85, 132, 133, 87, 87,
4311 134, 193, 189, 333, 334, 189, 188, 189, 194, 326,
4312 339, 157, 334, 157, 54, 63, 64, 155, 136, 183,
4313 130, 150, 85, 133, 87, 154, 153, 166, 137, 332,
4314 338, 334, 199, 334, 138, 134, 141, 336, 134, 336,
4315 131, 336, 333, 56, 59, 60, 168, 170, 134, 85,
4316 132, 133, 244, 61, 107, 109, 110, 283, 110, 283,
4317 110, 65, 283, 110, 110, 273, 283, 110, 61, 110,
4318 110, 110, 273, 110, 61, 110, 68, 68, 139, 147,
4319 158, 158, 158, 158, 154, 157, 157, 258, 257, 94,
4320 161, 249, 95, 159, 184, 194, 195, 166, 134, 171,
4321 134, 156, 159, 172, 182, 184, 195, 182, 182, 182,
4322 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4323 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4324 182, 182, 182, 52, 53, 56, 180, 255, 329, 330,
4325 188, 52, 53, 56, 180, 254, 329, 149, 150, 13,
4326 226, 337, 226, 158, 158, 332, 17, 259, 56, 85,
4327 132, 133, 25, 157, 52, 56, 173, 1, 117, 298,
4328 337, 85, 132, 133, 210, 324, 211, 331, 52, 56,
4329 329, 159, 182, 159, 182, 179, 182, 184, 95, 184,
4330 192, 326, 52, 56, 188, 52, 56, 327, 334, 137,
4331 334, 134, 134, 334, 177, 200, 182, 145, 131, 329,
4332 329, 182, 130, 334, 152, 334, 326, 134, 170, 52,
4333 56, 188, 52, 56, 52, 54, 55, 56, 57, 58,
4334 68, 89, 95, 96, 97, 120, 123, 136, 246, 301,
4335 303, 304, 305, 306, 307, 308, 311, 312, 313, 314,
4336 317, 318, 319, 320, 321, 285, 284, 140, 283, 140,
4337 140, 140, 182, 182, 76, 118, 237, 238, 339, 237,
4338 162, 237, 184, 134, 334, 170, 134, 113, 44, 333,
4339 87, 87, 186, 190, 253, 333, 335, 87, 87, 186,
4340 190, 252, 10, 225, 8, 261, 339, 150, 13, 150,
4341 27, 227, 337, 227, 259, 194, 225, 52, 56, 188,
4342 52, 56, 205, 208, 337, 299, 207, 52, 56, 173,
4343 188, 149, 157, 136, 300, 303, 212, 186, 187, 190,
4344 339, 44, 177, 184, 193, 87, 87, 335, 87, 87,
4345 326, 157, 131, 145, 336, 168, 335, 113, 184, 52,
4346 89, 95, 231, 232, 233, 305, 303, 245, 134, 302,
4347 134, 322, 339, 52, 134, 322, 134, 302, 52, 134,
4348 302, 52, 286, 54, 55, 57, 288, 297, 52, 58,
4349 234, 236, 239, 307, 309, 310, 313, 315, 316, 319,
4350 321, 333, 150, 150, 237, 150, 95, 184, 170, 182,
4351 115, 159, 182, 159, 182, 161, 186, 138, 87, 159,
4352 182, 159, 182, 161, 187, 184, 195, 262, 339, 15,
4353 229, 339, 14, 228, 229, 229, 202, 204, 225, 134,
4354 226, 335, 158, 337, 158, 149, 335, 225, 334, 303,
4355 149, 337, 175, 256, 248, 182, 87, 134, 334, 131,
4356 184, 233, 134, 305, 134, 334, 239, 29, 111, 247,
4357 301, 306, 317, 319, 308, 313, 321, 307, 314, 319,
4358 307, 287, 113, 86, 214, 239, 118, 134, 235, 134,
4359 322, 322, 134, 235, 134, 235, 139, 10, 131, 150,
4360 10, 184, 182, 159, 182, 88, 263, 339, 150, 9,
4361 264, 339, 158, 225, 225, 150, 150, 184, 150, 227,
4362 209, 337, 225, 334, 225, 213, 334, 232, 134, 95,
4363 231, 137, 150, 150, 134, 302, 134, 302, 322, 134,
4364 302, 134, 302, 302, 150, 214, 56, 85, 118, 234,
4365 316, 319, 309, 313, 307, 315, 319, 307, 52, 240,
4366 241, 304, 131, 86, 172, 214, 293, 294, 297, 226,
4367 150, 226, 225, 225, 229, 259, 260, 206, 149, 300,
4368 134, 232, 134, 305, 10, 131, 307, 319, 307, 307,
4369 108, 52, 56, 134, 235, 134, 235, 322, 134, 235,
4370 134, 235, 235, 134, 333, 56, 85, 132, 133, 150,
4371 150, 150, 225, 149, 232, 134, 302, 134, 302, 302,
4372 302, 307, 319, 307, 307, 241, 52, 56, 188, 52,
4373 56, 261, 228, 225, 225, 232, 307, 235, 134, 235,
4374 235, 235, 335, 302, 307, 235
4377 #define yyerrok (yyerrstatus = 0)
4378 #define yyclearin (yychar = YYEMPTY)
4379 #define YYEMPTY (-2)
4382 #define YYACCEPT goto yyacceptlab
4383 #define YYABORT goto yyabortlab
4384 #define YYERROR goto yyerrorlab
4394 #define YYFAIL goto yyerrlab
4402 #define YYRECOVERING() (!!yyerrstatus)
4404 #define YYBACKUP(Token, Value) \
4406 if (yychar == YYEMPTY && yylen == 1) \
4415 parser_yyerror (parser, YY_("syntax error: cannot back up")); \
4422 #define YYERRCODE 256
4429 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4430 #ifndef YYLLOC_DEFAULT
4431 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4435 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4436 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4437 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4438 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4442 (Current).first_line = (Current).last_line = \
4443 YYRHSLOC (Rhs, 0).last_line; \
4444 (Current).first_column = (Current).last_column = \
4445 YYRHSLOC (Rhs, 0).last_column; \
4453 #ifndef YY_LOCATION_PRINT
4454 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4461 # define YYLEX yylex (&yylval, YYLEX_PARAM)
4463 # define YYLEX yylex (&yylval, parser)
4471 # define YYFPRINTF fprintf
4474 # define YYDPRINTF(Args) \
4480 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4484 YYFPRINTF (stderr, "%s ", Title); \
4485 yy_symbol_print (stderr, \
4486 Type, Value, parser); \
4487 YYFPRINTF (stderr, "\n"); \
4497 #if (defined __STDC__ || defined __C99__FUNC__ \
4498 || defined __cplusplus || defined _MSC_VER)
4515 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4531 #if (defined __STDC__ || defined __C99__FUNC__ \
4532 || defined __cplusplus || defined _MSC_VER)
4545 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4547 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4558 #if (defined __STDC__ || defined __C99__FUNC__ \
4559 || defined __cplusplus || defined _MSC_VER)
4565 yytype_int16 *yybottom;
4566 yytype_int16 *yytop;
4570 for (; yybottom <= yytop; yybottom++)
4572 int yybot = *yybottom;
4578 # define YY_STACK_PRINT(Bottom, Top) \
4581 yy_stack_print ((Bottom), (Top)); \
4589 #if (defined __STDC__ || defined __C99__FUNC__ \
4590 || defined __cplusplus || defined _MSC_VER)
4601 int yynrhs = yyr2[yyrule];
4603 unsigned long int yylno = yyrline[yyrule];
4604 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4607 for (yyi = 0; yyi < yynrhs; yyi++)
4611 &(yyvsp[(yyi + 1) - (yynrhs)])
4617 # define YY_REDUCE_PRINT(Rule) \
4620 yy_reduce_print (yyvsp, Rule, parser); \
4629 # define YYDPRINTF(Args)
4630 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4631 # define YY_STACK_PRINT(Bottom, Top)
4632 # define YY_REDUCE_PRINT(Rule)
4638 # define YYINITDEPTH 200
4649 # define YYMAXDEPTH 10000
4656 # if defined __GLIBC__ && defined _STRING_H
4657 # define yystrlen strlen
4660 #if (defined __STDC__ || defined __C99__FUNC__ \
4661 || defined __cplusplus || defined _MSC_VER)
4671 for (yylen = 0; yystr[yylen]; yylen++)
4679 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4680 # define yystpcpy stpcpy
4684 #if (defined __STDC__ || defined __C99__FUNC__ \
4685 || defined __cplusplus || defined _MSC_VER)
4687 yystpcpy (
char *yydest,
const char *yysrc)
4696 const char *yys = yysrc;
4698 while ((*yyd++ = *yys++) !=
'\0')
4720 char const *yyp = yystr;
4727 goto do_not_strip_quotes;
4731 goto do_not_strip_quotes;
4744 do_not_strip_quotes: ;
4750 return yystpcpy (yyres, yystr) - yyres;
4764 yytype_int16 *yyssp,
int yytoken)
4769 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4771 const char *yyformat = 0;
4773 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4807 int yyn = yypact[*yyssp];
4808 yyarg[yycount++] = yytname[yytoken];
4814 int yyxbegin = yyn < 0 ? -yyn : 0;
4816 int yychecklim =
YYLAST - yyn + 1;
4820 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4821 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR
4824 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4830 yyarg[yycount++] = yytname[yyx];
4831 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
4832 if (! (yysize <= yysize1
4842 # define YYCASE_(N, S) \
4847 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
4848 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4849 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4850 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4851 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4855 yysize1 = yysize +
yystrlen (yyformat);
4860 if (*yymsg_alloc < yysize)
4862 *yymsg_alloc = 2 * yysize;
4863 if (! (yysize <= *yymsg_alloc
4875 while ((*yyp = *yyformat) !=
'\0')
4876 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
4896 #if (defined __STDC__ || defined __C99__FUNC__ \
4897 || defined __cplusplus || defined _MSC_VER)
4926 #ifdef YYPARSE_PARAM
4927 #if defined __STDC__ || defined __cplusplus
4928 int yyparse (
void *YYPARSE_PARAM);
4933 #if defined __STDC__ || defined __cplusplus
4945 #ifdef YYPARSE_PARAM
4946 #if (defined __STDC__ || defined __C99__FUNC__ \
4947 || defined __cplusplus || defined _MSC_VER)
4953 void *YYPARSE_PARAM;
4956 #if (defined __STDC__ || defined __C99__FUNC__ \
4957 || defined __cplusplus || defined _MSC_VER)
4990 yytype_int16 *yyssp;
5010 char *yymsg = yymsgbuf;
5011 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
5014 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
5025 YYDPRINTF ((stderr,
"Starting parse\n"));
5052 if (yyss + yystacksize - 1 <= yyssp)
5055 YYSIZE_T yysize = yyssp - yyss + 1;
5063 yytype_int16 *yyss1 = yyss;
5069 yyoverflow (
YY_(
"memory exhausted"),
5070 &yyss1, yysize *
sizeof (*yyssp),
5071 &yyvs1, yysize *
sizeof (*yyvsp),
5078 # ifndef YYSTACK_RELOCATE
5079 goto yyexhaustedlab;
5083 goto yyexhaustedlab;
5089 yytype_int16 *yyss1 = yyss;
5093 goto yyexhaustedlab;
5096 # undef YYSTACK_RELOCATE
5103 yyssp = yyss + yysize - 1;
5104 yyvsp = yyvs + yysize - 1;
5106 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
5107 (
unsigned long int) yystacksize));
5109 if (yyss + yystacksize - 1 <= yyssp)
5113 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
5129 yyn = yypact[yystate];
5138 YYDPRINTF ((stderr,
"Reading a token: "));
5142 if (yychar <=
YYEOF)
5144 yychar = yytoken =
YYEOF;
5145 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5156 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5188 yyn = yydefact[yystate];
5209 yyval = yyvsp[1-yylen];
5218 #line 853 "ripper.y"
5232 #line 862 "ripper.y"
5239 NODE *node = (yyvsp[(2) - (2)].
val);
5240 while (node->nd_next) {
5241 node = node->nd_next;
5248 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5249 parser->result = dispatch1(program, (yyval.
val));
5258 #line 885 "ripper.y"
5265 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5272 #line 896 "ripper.y"
5277 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
5278 dispatch0(void_stmt));
5286 #line 905 "ripper.y"
5291 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5299 #line 913 "ripper.y"
5304 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5312 #line 921 "ripper.y"
5321 #line 928 "ripper.y"
5333 #line 935 "ripper.y"
5337 (yyvsp[(4) - (5)].
val));
5342 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5350 #line 952 "ripper.y"
5353 (yyval.
val) = (yyvsp[(1) - (4)].
val);
5354 if ((yyvsp[(2) - (4)].
val)) {
5357 else if ((yyvsp[(3) - (4)].
val)) {
5358 rb_warn0(
"else without rescue is useless");
5361 if ((yyvsp[(4) - (4)].
val)) {
5371 (yyval.
val) = dispatch4(bodystmt,
5372 escape_Qundef((yyvsp[(1) - (4)].
val)),
5373 escape_Qundef((yyvsp[(2) - (4)].
val)),
5374 escape_Qundef((yyvsp[(3) - (4)].
val)),
5375 escape_Qundef((yyvsp[(4) - (4)].
val)));
5383 #line 982 "ripper.y"
5390 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5397 #line 993 "ripper.y"
5402 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
5403 dispatch0(void_stmt));
5411 #line 1002 "ripper.y"
5416 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5424 #line 1010 "ripper.y"
5429 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5437 #line 1018 "ripper.y"
5446 #line 1024 "ripper.y"
5448 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5455 #line 1028 "ripper.y"
5457 yyerror(
"BEGIN is permitted only at toplevel");
5468 #line 1036 "ripper.y"
5472 (yyvsp[(4) - (5)].
val));
5477 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5485 #line 1048 "ripper.y"
5492 #line 1049 "ripper.y"
5497 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
5505 #line 1057 "ripper.y"
5510 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5518 #line 1065 "ripper.y"
5523 buf[1] = (char)(yyvsp[(3) - (3)].
val)->nd_nth;
5526 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5534 #line 1076 "ripper.y"
5537 yyerror(
"can't make alias for the number variables");
5540 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5541 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5549 #line 1086 "ripper.y"
5552 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5554 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].
val));
5562 #line 1094 "ripper.y"
5568 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5576 #line 1103 "ripper.y"
5582 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5590 #line 1112 "ripper.y"
5600 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5608 #line 1125 "ripper.y"
5618 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5626 #line 1138 "ripper.y"
5632 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5640 #line 1147 "ripper.y"
5643 rb_warn0(
"END in method; use at_exit");
5649 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].
val));
5657 #line 1160 "ripper.y"
5662 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5664 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5672 #line 1170 "ripper.y"
5682 #line 1175 "ripper.y"
5690 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
5691 (yyvsp[(5) - (6)].
val) = 0;
5693 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
5694 (yyvsp[(5) - (6)].
val) = 1;
5699 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
5700 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
5708 #line 1196 "ripper.y"
5718 #line 1201 "ripper.y"
5728 #line 1206 "ripper.y"
5734 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
5735 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
5743 #line 1216 "ripper.y"
5753 #line 1221 "ripper.y"
5759 (yyval.
val) = dispatch2(assign, dispatch1(var_field, (yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
5760 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5768 #line 1231 "ripper.y"
5774 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5782 #line 1240 "ripper.y"
5786 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5788 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5796 #line 1249 "ripper.y"
5800 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5802 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5810 #line 1261 "ripper.y"
5816 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5824 #line 1270 "ripper.y"
5830 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5838 #line 1283 "ripper.y"
5843 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"and"), (yyvsp[(3) - (3)].
val));
5851 #line 1291 "ripper.y"
5856 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"or"), (yyvsp[(3) - (3)].
val));
5864 #line 1299 "ripper.y"
5869 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"), (yyvsp[(3) - (3)].
val));
5877 #line 1307 "ripper.y"
5882 (yyval.
val) = dispatch2(unary, ripper_id2sym(
'!'), (yyvsp[(2) - (2)].
val));
5890 #line 1318 "ripper.y"
5894 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5897 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5905 #line 1335 "ripper.y"
5908 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5910 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
5911 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5919 #line 1346 "ripper.y"
5932 #line 1356 "ripper.y"
5938 (yyval.
val) = dispatch2(brace_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
5947 #line 1368 "ripper.y"
5960 #line 1378 "ripper.y"
5963 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5966 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
5974 #line 1387 "ripper.y"
5980 (yyval.
val) = (yyvsp[(3) - (3)].
val);
5983 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
5984 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(3) - (3)].
val));
5992 #line 1400 "ripper.y"
5995 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5998 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6006 #line 1409 "ripper.y"
6011 (yyval.
val) = (yyvsp[(5) - (5)].
val);
6014 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
6015 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
6023 #line 1421 "ripper.y"
6026 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6029 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (4)].
val), ripper_intern(
"::"), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
6037 #line 1430 "ripper.y"
6042 (yyval.
val) = (yyvsp[(5) - (5)].
val);
6045 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), ripper_intern(
"::"), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
6046 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
6054 #line 1442 "ripper.y"
6060 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
6068 #line 1451 "ripper.y"
6074 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].
val));
6082 #line 1460 "ripper.y"
6087 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].
val));
6095 #line 1468 "ripper.y"
6100 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].
val));
6108 #line 1476 "ripper.y"
6113 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].
val));
6121 #line 1487 "ripper.y"
6124 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6126 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6134 #line 1498 "ripper.y"
6139 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6147 #line 1508 "ripper.y"
6152 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6160 #line 1516 "ripper.y"
6165 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
6173 #line 1524 "ripper.y"
6178 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6186 #line 1532 "ripper.y"
6191 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6192 (yyval.
val) = mlhs_add((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
6200 #line 1541 "ripper.y"
6205 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].
val),
Qnil);
6213 #line 1549 "ripper.y"
6218 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].
val),
Qnil);
6219 (yyval.
val) = mlhs_add((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
6227 #line 1558 "ripper.y"
6232 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6240 #line 1566 "ripper.y"
6245 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6246 (yyval.
val) = mlhs_add((yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
6254 #line 1575 "ripper.y"
6259 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6267 #line 1583 "ripper.y"
6272 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6273 (yyval.
val) = mlhs_add((yyval.
val), (yyvsp[(3) - (3)].
val));
6281 #line 1595 "ripper.y"
6284 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6286 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6294 #line 1605 "ripper.y"
6299 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6307 #line 1613 "ripper.y"
6312 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
6320 #line 1623 "ripper.y"
6325 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6333 #line 1631 "ripper.y"
6338 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6346 #line 1641 "ripper.y"
6355 #line 1645 "ripper.y"
6364 #line 1649 "ripper.y"
6369 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
6377 #line 1657 "ripper.y"
6382 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6390 #line 1665 "ripper.y"
6395 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6403 #line 1673 "ripper.y"
6408 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6416 #line 1681 "ripper.y"
6420 yyerror(
"dynamic constant assignment");
6424 yyerror(
"dynamic constant assignment");
6425 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6433 #line 1693 "ripper.y"
6437 yyerror(
"dynamic constant assignment");
6440 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6448 #line 1703 "ripper.y"
6454 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (1)].
val));
6455 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6463 #line 1715 "ripper.y"
6469 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6477 #line 1724 "ripper.y"
6483 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6491 #line 1733 "ripper.y"
6496 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
6504 #line 1741 "ripper.y"
6509 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6517 #line 1749 "ripper.y"
6522 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
6530 #line 1757 "ripper.y"
6535 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6543 #line 1765 "ripper.y"
6547 yyerror(
"dynamic constant assignment");
6550 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6552 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6561 #line 1778 "ripper.y"
6565 yyerror(
"dynamic constant assignment");
6568 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6570 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6579 #line 1791 "ripper.y"
6585 (yyval.
val) = dispatch1(assign_error, (yyvsp[(1) - (1)].
val));
6593 #line 1802 "ripper.y"
6596 yyerror(
"class/module name must be CONSTANT");
6598 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].
val));
6606 #line 1813 "ripper.y"
6611 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
6619 #line 1821 "ripper.y"
6624 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].
val));
6632 #line 1829 "ripper.y"
6637 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6645 #line 1842 "ripper.y"
6648 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6655 #line 1847 "ripper.y"
6659 (yyval.
val) = (yyvsp[(1) - (1)].
id);
6661 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6669 #line 1862 "ripper.y"
6674 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
6682 #line 1873 "ripper.y"
6695 #line 1880 "ripper.y"
6702 #line 1881 "ripper.y"
6715 #line 1890 "ripper.y"
6722 #line 1891 "ripper.y"
6729 #line 1892 "ripper.y"
6736 #line 1893 "ripper.y"
6743 #line 1894 "ripper.y"
6750 #line 1895 "ripper.y"
6757 #line 1896 "ripper.y"
6764 #line 1897 "ripper.y"
6771 #line 1898 "ripper.y"
6778 #line 1899 "ripper.y"
6785 #line 1900 "ripper.y"
6792 #line 1901 "ripper.y"
6799 #line 1902 "ripper.y"
6806 #line 1903 "ripper.y"
6813 #line 1904 "ripper.y"
6820 #line 1905 "ripper.y"
6827 #line 1906 "ripper.y"
6834 #line 1907 "ripper.y"
6841 #line 1908 "ripper.y"
6848 #line 1909 "ripper.y"
6855 #line 1910 "ripper.y"
6862 #line 1911 "ripper.y"
6869 #line 1912 "ripper.y"
6876 #line 1913 "ripper.y"
6883 #line 1914 "ripper.y"
6890 #line 1915 "ripper.y"
6897 #line 1916 "ripper.y"
6904 #line 1917 "ripper.y"
6911 #line 1918 "ripper.y"
6918 #line 1919 "ripper.y"
6925 #line 1937 "ripper.y"
6931 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6939 #line 1946 "ripper.y"
6946 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (5)].
val), dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val)));
6954 #line 1956 "ripper.y"
6964 #line 1961 "ripper.y"
6970 (yyvsp[(3) - (5)].
val) = dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
6979 #line 1971 "ripper.y"
6992 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
6993 (yyvsp[(5) - (6)].
val) = 0;
6995 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
6996 (yyvsp[(5) - (6)].
val) = 1;
7001 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
7002 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
7010 #line 1997 "ripper.y"
7020 #line 2002 "ripper.y"
7030 #line 2007 "ripper.y"
7040 #line 2012 "ripper.y"
7046 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
7047 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
7055 #line 2022 "ripper.y"
7061 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (4)].
val));
7062 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
7070 #line 2032 "ripper.y"
7076 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (3)].
val));
7077 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
7078 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
7086 #line 2043 "ripper.y"
7097 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7105 #line 2057 "ripper.y"
7116 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7124 #line 2071 "ripper.y"
7129 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'+'), (yyvsp[(3) - (3)].
val));
7137 #line 2079 "ripper.y"
7142 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'-'), (yyvsp[(3) - (3)].
val));
7150 #line 2087 "ripper.y"
7155 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'*'), (yyvsp[(3) - (3)].
val));
7163 #line 2095 "ripper.y"
7168 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'/'), (yyvsp[(3) - (3)].
val));
7176 #line 2103 "ripper.y"
7181 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'%'), (yyvsp[(3) - (3)].
val));
7189 #line 2111 "ripper.y"
7194 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"**"), (yyvsp[(3) - (3)].
val));
7202 #line 2119 "ripper.y"
7207 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].
val), ripper_intern(
"**"), (yyvsp[(4) - (4)].
val));
7208 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyval.
val));
7216 #line 2128 "ripper.y"
7221 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].
val), ripper_intern(
"**"), (yyvsp[(4) - (4)].
val));
7222 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyval.
val));
7230 #line 2137 "ripper.y"
7235 (yyval.
val) = dispatch2(unary, ripper_intern(
"+@"), (yyvsp[(2) - (2)].
val));
7243 #line 2145 "ripper.y"
7248 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyvsp[(2) - (2)].
val));
7256 #line 2153 "ripper.y"
7261 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'|'), (yyvsp[(3) - (3)].
val));
7269 #line 2161 "ripper.y"
7274 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'^'), (yyvsp[(3) - (3)].
val));
7282 #line 2169 "ripper.y"
7287 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'&'), (yyvsp[(3) - (3)].
val));
7295 #line 2177 "ripper.y"
7300 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"<=>"), (yyvsp[(3) - (3)].
val));
7308 #line 2185 "ripper.y"
7313 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'>'), (yyvsp[(3) - (3)].
val));
7321 #line 2193 "ripper.y"
7326 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
">="), (yyvsp[(3) - (3)].
val));
7334 #line 2201 "ripper.y"
7339 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'<'), (yyvsp[(3) - (3)].
val));
7347 #line 2209 "ripper.y"
7352 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"<="), (yyvsp[(3) - (3)].
val));
7360 #line 2217 "ripper.y"
7365 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"=="), (yyvsp[(3) - (3)].
val));
7373 #line 2225 "ripper.y"
7378 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"==="), (yyvsp[(3) - (3)].
val));
7386 #line 2233 "ripper.y"
7391 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"!="), (yyvsp[(3) - (3)].
val));
7399 #line 2241 "ripper.y"
7407 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"=~"), (yyvsp[(3) - (3)].
val));
7415 #line 2252 "ripper.y"
7420 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"!~"), (yyvsp[(3) - (3)].
val));
7428 #line 2260 "ripper.y"
7433 (yyval.
val) = dispatch2(unary,
ID2SYM(
'!'), (yyvsp[(2) - (2)].
val));
7441 #line 2268 "ripper.y"
7446 (yyval.
val) = dispatch2(unary,
ID2SYM(
'~'), (yyvsp[(2) - (2)].
val));
7454 #line 2276 "ripper.y"
7459 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"<<"), (yyvsp[(3) - (3)].
val));
7467 #line 2284 "ripper.y"
7472 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
">>"), (yyvsp[(3) - (3)].
val));
7480 #line 2292 "ripper.y"
7485 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"&&"), (yyvsp[(3) - (3)].
val));
7493 #line 2300 "ripper.y"
7498 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val), ripper_intern(
"||"), (yyvsp[(3) - (3)].
val));
7506 #line 2307 "ripper.y"
7513 #line 2308 "ripper.y"
7520 (yyval.
val) = dispatch1(defined, (yyvsp[(4) - (4)].
val));
7528 #line 2318 "ripper.y"
7535 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
7543 #line 2328 "ripper.y"
7545 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7552 #line 2334 "ripper.y"
7556 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7559 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7567 #line 2347 "ripper.y"
7569 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7576 #line 2351 "ripper.y"
7581 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7589 #line 2359 "ripper.y"
7594 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7602 #line 2369 "ripper.y"
7605 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7607 (yyval.
val) = dispatch1(arg_paren, escape_Qundef((yyvsp[(2) - (3)].
val)));
7615 #line 2385 "ripper.y"
7617 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7624 #line 2389 "ripper.y"
7629 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7637 #line 2397 "ripper.y"
7642 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7650 #line 2407 "ripper.y"
7656 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7664 #line 2416 "ripper.y"
7669 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
7677 #line 2424 "ripper.y"
7683 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7684 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7692 #line 2434 "ripper.y"
7698 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7706 #line 2445 "ripper.y"
7708 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7715 #line 2451 "ripper.y"
7725 #line 2456 "ripper.y"
7729 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7736 #line 2464 "ripper.y"
7741 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7749 #line 2474 "ripper.y"
7751 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7758 #line 2478 "ripper.y"
7767 #line 2484 "ripper.y"
7772 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7780 #line 2492 "ripper.y"
7785 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
7793 #line 2500 "ripper.y"
7804 (yyval.
val) = arg_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7812 #line 2514 "ripper.y"
7823 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
7831 #line 2530 "ripper.y"
7842 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
7850 #line 2544 "ripper.y"
7862 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7870 #line 2559 "ripper.y"
7875 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
7883 #line 2579 "ripper.y"
7888 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].
val)), arg_new());
7896 #line 2587 "ripper.y"
7910 #line 2597 "ripper.y"
7914 if ((yyvsp[(3) - (4)].
val) ==
NULL) {
7925 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].
val));
7933 #line 2614 "ripper.y"
7940 #line 2615 "ripper.y"
7945 (yyval.
val) = dispatch1(paren, 0);
7953 #line 2622 "ripper.y"
7960 #line 2623 "ripper.y"
7963 (yyval.
val) = (yyvsp[(2) - (4)].
val);
7965 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
7973 #line 2631 "ripper.y"
7976 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7978 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
7986 #line 2639 "ripper.y"
7991 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7999 #line 2647 "ripper.y"
8004 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
8012 #line 2655 "ripper.y"
8015 if ((yyvsp[(2) - (3)].
val) == 0) {
8019 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8022 (yyval.
val) = dispatch1(array, escape_Qundef((yyvsp[(2) - (3)].
val)));
8030 #line 2668 "ripper.y"
8035 (yyval.
val) = dispatch1(
hash, escape_Qundef((yyvsp[(2) - (3)].
val)));
8043 #line 2676 "ripper.y"
8048 (yyval.
val) = dispatch0(return0);
8056 #line 2684 "ripper.y"
8061 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].
val)));
8069 #line 2692 "ripper.y"
8074 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
8082 #line 2700 "ripper.y"
8087 (yyval.
val) = dispatch0(yield0);
8095 #line 2707 "ripper.y"
8102 #line 2708 "ripper.y"
8109 (yyval.
val) = dispatch1(defined, (yyvsp[(5) - (6)].
val));
8117 #line 2718 "ripper.y"
8122 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"), (yyvsp[(3) - (4)].
val));
8130 #line 2726 "ripper.y"
8135 (yyval.
val) = dispatch2(unary, ripper_intern(
"not"),
Qnil);
8143 #line 2734 "ripper.y"
8147 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8149 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), arg_new());
8150 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(2) - (2)].
val));
8158 #line 2745 "ripper.y"
8163 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8165 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
8173 #line 2755 "ripper.y"
8175 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8182 #line 2762 "ripper.y"
8188 (yyval.
val) = dispatch3(
if, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
8196 #line 2774 "ripper.y"
8202 (yyval.
val) = dispatch3(unless, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
8210 #line 2782 "ripper.y"
8217 #line 2782 "ripper.y"
8224 #line 2785 "ripper.y"
8230 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8238 #line 2793 "ripper.y"
8245 #line 2793 "ripper.y"
8252 #line 2796 "ripper.y"
8258 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8266 #line 2807 "ripper.y"
8272 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8280 #line 2816 "ripper.y"
8285 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].
val));
8293 #line 2824 "ripper.y"
8300 #line 2826 "ripper.y"
8307 #line 2829 "ripper.y"
8352 m->nd_next = (yyvsp[(2) - (9)].
val);
8361 tbl[0] = 1; tbl[1] =
id;
8365 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].
val));
8373 #line 2890 "ripper.y"
8376 yyerror(
"class definition in method body");
8388 #line 2901 "ripper.y"
8394 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val));
8403 #line 2911 "ripper.y"
8413 #line 2916 "ripper.y"
8424 #line 2923 "ripper.y"
8430 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (8)].
val), (yyvsp[(7) - (8)].
val));
8441 #line 2935 "ripper.y"
8444 yyerror(
"module definition in method body");
8456 #line 2946 "ripper.y"
8462 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8471 #line 2956 "ripper.y"
8483 #line 2965 "ripper.y"
8491 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val));
8502 #line 2978 "ripper.y"
8509 #line 2979 "ripper.y"
8520 #line 2987 "ripper.y"
8525 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), body);
8528 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].
val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].
val));
8538 #line 3000 "ripper.y"
8543 (yyval.
val) = dispatch1(
break, arg_new());
8551 #line 3008 "ripper.y"
8556 (yyval.
val) = dispatch1(next, arg_new());
8564 #line 3016 "ripper.y"
8569 (yyval.
val) = dispatch0(redo);
8577 #line 3024 "ripper.y"
8582 (yyval.
val) = dispatch0(retry);
8590 #line 3034 "ripper.y"
8594 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8597 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8605 #line 3046 "ripper.y"
8614 #line 3052 "ripper.y"
8623 #line 3058 "ripper.y"
8632 #line 3064 "ripper.y"
8641 #line 3070 "ripper.y"
8650 #line 3076 "ripper.y"
8659 #line 3082 "ripper.y"
8668 #line 3088 "ripper.y"
8677 #line 3094 "ripper.y"
8686 #line 3100 "ripper.y"
8699 #line 3110 "ripper.y"
8708 #line 3118 "ripper.y"
8715 #line 3124 "ripper.y"
8716 { (yyval.
val) = (yyvsp[(2) - (2)].
val); }
8722 #line 3131 "ripper.y"
8729 #line 3140 "ripper.y"
8735 (yyval.
val) = dispatch3(elsif, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
8743 #line 3152 "ripper.y"
8746 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8748 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].
val));
8756 #line 3166 "ripper.y"
8761 (yyval.
val) = dispatch1(mlhs_paren, (yyval.
val));
8769 #line 3174 "ripper.y"
8772 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8774 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
8782 #line 3184 "ripper.y"
8787 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8795 #line 3192 "ripper.y"
8800 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8808 #line 3202 "ripper.y"
8813 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8821 #line 3210 "ripper.y"
8827 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].
val), (yyval.
val));
8835 #line 3219 "ripper.y"
8841 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].
val), (yyval.
val));
8849 #line 3228 "ripper.y"
8854 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val),
Qnil);
8862 #line 3236 "ripper.y"
8867 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
8875 #line 3244 "ripper.y"
8881 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8889 #line 3253 "ripper.y"
8898 (yyval.
val) = mlhs_add_star((yyval.
val), (yyvsp[(4) - (4)].
val));
8906 #line 3265 "ripper.y"
8911 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8919 #line 3273 "ripper.y"
8924 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8932 #line 3284 "ripper.y"
8941 #line 3288 "ripper.y"
8950 #line 3292 "ripper.y"
8959 #line 3296 "ripper.y"
8968 #line 3302 "ripper.y"
8970 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8977 #line 3306 "ripper.y"
8986 #line 3312 "ripper.y"
8995 #line 3316 "ripper.y"
8997 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
9004 #line 3320 "ripper.y"
9013 #line 3324 "ripper.y"
9022 #line 3328 "ripper.y"
9031 #line 3332 "ripper.y"
9036 dispatch1(excessed_comma, (yyval.
val));
9044 #line 3340 "ripper.y"
9053 #line 3344 "ripper.y"
9062 #line 3348 "ripper.y"
9071 #line 3352 "ripper.y"
9080 #line 3356 "ripper.y"
9089 #line 3360 "ripper.y"
9098 #line 3364 "ripper.y"
9107 #line 3368 "ripper.y"
9116 #line 3372 "ripper.y"
9125 #line 3379 "ripper.y"
9134 #line 3385 "ripper.y"
9140 escape_Qundef((yyvsp[(2) - (3)].
val)));
9148 #line 3394 "ripper.y"
9162 #line 3403 "ripper.y"
9165 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9167 (yyval.
val) = blockvar_new(escape_Qundef((yyvsp[(2) - (4)].
val)), escape_Qundef((yyvsp[(3) - (4)].
val)));
9175 #line 3414 "ripper.y"
9184 #line 3418 "ripper.y"
9189 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9197 #line 3430 "ripper.y"
9206 #line 3437 "ripper.y"
9215 #line 3444 "ripper.y"
9228 #line 3452 "ripper.y"
9237 #line 3457 "ripper.y"
9246 #line 3460 "ripper.y"
9256 #line 3465 "ripper.y"
9265 #line 3469 "ripper.y"
9272 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9281 #line 3482 "ripper.y"
9284 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9286 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
9294 #line 3490 "ripper.y"
9297 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9299 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9307 #line 3500 "ripper.y"
9309 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9316 #line 3504 "ripper.y"
9318 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9325 #line 3510 "ripper.y"
9337 #line 3519 "ripper.y"
9343 (yyval.
val) = dispatch2(do_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
9352 #line 3531 "ripper.y"
9362 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9365 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9373 #line 3547 "ripper.y"
9376 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
9378 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
9379 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9387 #line 3556 "ripper.y"
9392 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9395 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9396 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9404 #line 3568 "ripper.y"
9409 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9412 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9413 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9421 #line 3582 "ripper.y"
9424 (yyval.
val) = (yyvsp[(1) - (2)].
val);
9427 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), (yyvsp[(2) - (2)].
val));
9435 #line 3591 "ripper.y"
9446 #line 3597 "ripper.y"
9449 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9452 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9453 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9461 #line 3607 "ripper.y"
9472 #line 3613 "ripper.y"
9475 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9478 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9479 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9487 #line 3623 "ripper.y"
9492 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (3)].
val), ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
9500 #line 3631 "ripper.y"
9511 #line 3637 "ripper.y"
9517 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'),
9518 ripper_intern(
"call"));
9519 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9527 #line 3648 "ripper.y"
9538 #line 3654 "ripper.y"
9544 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), ripper_intern(
"::"),
9545 ripper_intern(
"call"));
9546 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9554 #line 3665 "ripper.y"
9559 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
9567 #line 3673 "ripper.y"
9572 (yyval.
val) = dispatch0(zsuper);
9580 #line 3681 "ripper.y"
9589 (yyval.
val) = dispatch2(aref, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
9597 #line 3695 "ripper.y"
9610 #line 3704 "ripper.y"
9616 (yyval.
val) = dispatch2(brace_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
9625 #line 3714 "ripper.y"
9638 #line 3723 "ripper.y"
9644 (yyval.
val) = dispatch2(do_block, escape_Qundef((yyvsp[(3) - (5)].
val)), (yyvsp[(4) - (5)].
val));
9653 #line 3737 "ripper.y"
9656 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
9658 (yyval.
val) = dispatch3(when, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
9666 #line 3753 "ripper.y"
9669 if ((yyvsp[(3) - (6)].
val)) {
9674 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
9676 (yyval.
val) = dispatch4(rescue,
9677 escape_Qundef((yyvsp[(2) - (6)].
val)),
9678 escape_Qundef((yyvsp[(3) - (6)].
val)),
9679 escape_Qundef((yyvsp[(5) - (6)].
val)),
9680 escape_Qundef((yyvsp[(6) - (6)].
val)));
9688 #line 3773 "ripper.y"
9701 #line 3781 "ripper.y"
9706 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9714 #line 3792 "ripper.y"
9716 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9723 #line 3799 "ripper.y"
9726 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9728 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].
val));
9736 #line 3811 "ripper.y"
9741 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
9749 #line 3822 "ripper.y"
9752 NODE *node = (yyvsp[(1) - (1)].
val);
9761 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9769 #line 3841 "ripper.y"
9774 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9782 #line 3851 "ripper.y"
9785 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9787 (yyval.
val) = dispatch1(string_literal, (yyvsp[(2) - (3)].
val));
9795 #line 3861 "ripper.y"
9798 NODE *node = (yyvsp[(2) - (3)].
val);
9817 (yyval.
val) = dispatch1(xstring_literal, (yyvsp[(2) - (3)].
val));
9825 #line 3888 "ripper.y"
9829 NODE *node = (yyvsp[(2) - (3)].
val);
9837 VALUE src = node->nd_lit;
9853 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9855 VALUE tail = list->nd_head->nd_lit;
9857 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9863 prev->nd_next = list->nd_next;
9876 if (!node->nd_next) {
9877 VALUE src = node->nd_lit;
9885 (yyval.
val) = dispatch2(regexp_literal, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
9893 #line 3953 "ripper.y"
9898 (yyval.
val) = dispatch0(words_new);
9899 (yyval.
val) = dispatch1(array, (yyval.
val));
9907 #line 3962 "ripper.y"
9910 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9912 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9920 #line 3972 "ripper.y"
9925 (yyval.
val) = dispatch0(words_new);
9933 #line 3980 "ripper.y"
9938 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9946 #line 3992 "ripper.y"
9948 (yyval.
val) = dispatch0(word_new);
9949 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
9956 #line 3998 "ripper.y"
9961 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9969 #line 4008 "ripper.y"
9974 (yyval.
val) = dispatch0(symbols_new);
9975 (yyval.
val) = dispatch1(array, (yyval.
val));
9983 #line 4017 "ripper.y"
9986 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9988 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9996 #line 4027 "ripper.y"
10001 (yyval.
val) = dispatch0(symbols_new);
10009 #line 4035 "ripper.y"
10016 (yyval.
val) = dispatch2(symbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10024 #line 4047 "ripper.y"
10029 (yyval.
val) = dispatch0(qwords_new);
10030 (yyval.
val) = dispatch1(array, (yyval.
val));
10038 #line 4056 "ripper.y"
10041 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10043 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10051 #line 4066 "ripper.y"
10056 (yyval.
val) = dispatch0(qsymbols_new);
10057 (yyval.
val) = dispatch1(array, (yyval.
val));
10065 #line 4075 "ripper.y"
10068 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10070 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10078 #line 4085 "ripper.y"
10083 (yyval.
val) = dispatch0(qwords_new);
10091 #line 4093 "ripper.y"
10096 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10104 #line 4103 "ripper.y"
10109 (yyval.
val) = dispatch0(qsymbols_new);
10117 #line 4111 "ripper.y"
10126 (yyval.
val) = dispatch2(qsymbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10134 #line 4125 "ripper.y"
10139 (yyval.
val) = dispatch0(string_content);
10147 #line 4133 "ripper.y"
10152 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10160 #line 4143 "ripper.y"
10165 (yyval.
val) = dispatch0(xstring_new);
10173 #line 4151 "ripper.y"
10178 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10186 #line 4161 "ripper.y"
10191 (yyval.
val) = dispatch0(regexp_new);
10199 #line 4169 "ripper.y"
10202 NODE *
head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].
val);
10204 (yyval.
val) = tail;
10207 (yyval.
val) = head;
10223 (yyval.
val) = dispatch2(regexp_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10231 #line 4199 "ripper.y"
10242 #line 4205 "ripper.y"
10249 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].
val));
10257 #line 4215 "ripper.y"
10269 #line 4221 "ripper.y"
10280 #line 4226 "ripper.y"
10290 #line 4231 "ripper.y"
10300 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(5) - (6)].
val));
10308 #line 4246 "ripper.y"
10313 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10321 #line 4254 "ripper.y"
10326 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10334 #line 4262 "ripper.y"
10339 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10347 #line 4273 "ripper.y"
10351 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10353 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].
val));
10361 #line 4290 "ripper.y"
10367 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].
val));
10375 #line 4303 "ripper.y"
10380 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyvsp[(2) - (2)].
val));
10388 #line 4311 "ripper.y"
10393 (yyval.
val) = dispatch2(unary, ripper_intern(
"-@"), (yyvsp[(2) - (2)].
val));
10401 #line 4327 "ripper.y"
10408 #line 4328 "ripper.y"
10415 #line 4329 "ripper.y"
10422 #line 4330 "ripper.y"
10429 #line 4331 "ripper.y"
10436 #line 4332 "ripper.y"
10443 #line 4333 "ripper.y"
10450 #line 4337 "ripper.y"
10455 if (id_is_var(
get_id((yyvsp[(1) - (1)].
val)))) {
10456 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10459 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].
val));
10468 #line 4350 "ripper.y"
10473 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10481 #line 4360 "ripper.y"
10486 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10494 #line 4368 "ripper.y"
10499 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10507 #line 4382 "ripper.y"
10520 #line 4390 "ripper.y"
10530 #line 4395 "ripper.y"
10532 (yyval.
val) = (yyvsp[(3) - (4)].
val);
10539 #line 4399 "ripper.y"
10554 #line 4411 "ripper.y"
10557 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10559 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
10569 #line 4421 "ripper.y"
10571 (yyval.
val) = (yyvsp[(1) - (2)].
val);
10580 #line 4429 "ripper.y"
10589 #line 4433 "ripper.y"
10598 #line 4437 "ripper.y"
10607 #line 4441 "ripper.y"
10616 #line 4447 "ripper.y"
10618 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10625 #line 4451 "ripper.y"
10634 #line 4457 "ripper.y"
10643 #line 4461 "ripper.y"
10645 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
10652 #line 4465 "ripper.y"
10661 #line 4469 "ripper.y"
10670 #line 4473 "ripper.y"
10679 #line 4477 "ripper.y"
10688 #line 4481 "ripper.y"
10697 #line 4485 "ripper.y"
10706 #line 4489 "ripper.y"
10715 #line 4493 "ripper.y"
10724 #line 4497 "ripper.y"
10733 #line 4501 "ripper.y"
10742 #line 4505 "ripper.y"
10751 #line 4509 "ripper.y"
10760 #line 4513 "ripper.y"
10770 #line 4520 "ripper.y"
10773 yyerror(
"formal argument cannot be a constant");
10776 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10784 #line 4529 "ripper.y"
10787 yyerror(
"formal argument cannot be an instance variable");
10790 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10798 #line 4538 "ripper.y"
10801 yyerror(
"formal argument cannot be a global variable");
10804 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10812 #line 4547 "ripper.y"
10815 yyerror(
"formal argument cannot be a class variable");
10818 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10826 #line 4559 "ripper.y"
10829 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10836 #line 4566 "ripper.y"
10850 #line 4575 "ripper.y"
10864 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
10872 #line 4596 "ripper.y"
10881 #line 4601 "ripper.y"
10884 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10897 #line 4614 "ripper.y"
10912 #line 4626 "ripper.y"
10927 #line 4638 "ripper.y"
10930 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10940 #line 4646 "ripper.y"
10943 NODE *kws = (yyvsp[(1) - (3)].
val);
10945 while (kws->nd_next) {
10946 kws = kws->nd_next;
10948 kws->nd_next = (yyvsp[(3) - (3)].
val);
10949 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10959 #line 4663 "ripper.y"
10962 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10972 #line 4671 "ripper.y"
10975 NODE *kws = (yyvsp[(1) - (3)].
val);
10977 while (kws->nd_next) {
10978 kws = kws->nd_next;
10980 kws->nd_next = (yyvsp[(3) - (3)].
val);
10981 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10991 #line 4691 "ripper.y"
10994 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11001 #line 4696 "ripper.y"
11010 #line 4702 "ripper.y"
11025 #line 4714 "ripper.y"
11040 #line 4726 "ripper.y"
11043 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11053 #line 4734 "ripper.y"
11056 NODE *opts = (yyvsp[(1) - (3)].
val);
11058 while (opts->nd_next) {
11059 opts = opts->nd_next;
11061 opts->nd_next = (yyvsp[(3) - (3)].
val);
11062 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11072 #line 4750 "ripper.y"
11075 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11085 #line 4758 "ripper.y"
11088 NODE *opts = (yyvsp[(1) - (3)].
val);
11090 while (opts->nd_next) {
11091 opts = opts->nd_next;
11093 opts->nd_next = (yyvsp[(3) - (3)].
val);
11094 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11104 #line 4778 "ripper.y"
11108 yyerror(
"rest argument must be local variable");
11112 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11114 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].
val));
11122 #line 4791 "ripper.y"
11128 (yyval.
val) = dispatch1(rest_param,
Qnil);
11136 #line 4806 "ripper.y"
11140 yyerror(
"block argument must be local variable");
11142 yyerror(
"duplicated block argument name");
11146 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11148 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].
val));
11156 #line 4823 "ripper.y"
11158 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11165 #line 4827 "ripper.y"
11178 #line 4837 "ripper.y"
11182 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11185 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11193 #line 4846 "ripper.y"
11200 #line 4847 "ripper.y"
11203 if ((yyvsp[(3) - (4)].
val) == 0) {
11204 yyerror(
"can't define singleton method for ().");
11216 yyerror(
"can't define singleton method for literals");
11222 (yyval.
val) = (yyvsp[(3) - (4)].
val);
11224 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].
val));
11232 #line 4877 "ripper.y"
11235 (yyval.
val) = (yyvsp[(1) - (2)].
val);
11237 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].
val));
11245 #line 4889 "ripper.y"
11254 #line 4894 "ripper.y"
11267 #line 4904 "ripper.y"
11272 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
11280 #line 4912 "ripper.y"
11285 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
11293 #line 4920 "ripper.y"
11298 (yyval.
val) = dispatch1(assoc_splat, (yyvsp[(2) - (2)].
val));
11306 #line 4950 "ripper.y"
11307 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11313 #line 4955 "ripper.y"
11314 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11320 #line 4978 "ripper.y"
11327 #line 4983 "ripper.y"
11334 #line 4987 "ripper.y"
11347 #line 11346 "parse.c"
11375 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
11376 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
11377 yystate = yytable[yystate];
11396 #if ! YYERROR_VERBOSE
11399 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
11402 char const *yymsgp =
YY_(
"syntax error");
11403 int yysyntax_error_status;
11405 if (yysyntax_error_status == 0)
11407 else if (yysyntax_error_status == 1)
11409 if (yymsg != yymsgbuf)
11415 yymsg_alloc =
sizeof yymsgbuf;
11416 yysyntax_error_status = 2;
11425 if (yysyntax_error_status == 2)
11426 goto yyexhaustedlab;
11428 # undef YYSYNTAX_ERROR
11434 if (yyerrstatus == 3)
11439 if (yychar <=
YYEOF)
11442 if (yychar ==
YYEOF)
11448 yytoken, &yylval, parser);
11486 yyn = yypact[yystate];
11492 yyn = yytable[yyn];
11504 yystos[yystate], yyvsp, parser);
11534 #if !defined(yyoverflow) || YYERROR_VERBOSE
11550 yydestruct (
"Cleanup: discarding lookahead",
11551 yytoken, &yylval, parser);
11557 while (yyssp != yyss)
11560 yystos[*yyssp], yyvsp, parser);
11567 #if YYERROR_VERBOSE
11568 if (yymsg != yymsgbuf)
11572 return YYID (yyresult);
11578 #line 4995 "ripper.y"
11583 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
11592 # define nextc() parser_nextc(parser)
11593 # define pushback(c) parser_pushback(parser, (c))
11594 # define newtok() parser_newtok(parser)
11595 # define tokspace(n) parser_tokspace(parser, (n))
11596 # define tokadd(c) parser_tokadd(parser, (c))
11597 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
11598 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
11599 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
11600 # define regx_options() parser_regx_options(parser)
11601 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
11602 # define parse_string(n) parser_parse_string(parser,(n))
11603 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
11604 # define here_document(n) parser_here_document(parser,(n))
11605 # define heredoc_identifier() parser_heredoc_identifier(parser)
11606 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
11607 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
11610 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
11611 # define set_yylval_num(x) (yylval.num = (x))
11612 # define set_yylval_id(x) (yylval.id = (x))
11613 # define set_yylval_name(x) (yylval.id = (x))
11614 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
11615 # define set_yylval_node(x) (yylval.node = (x))
11616 # define yylval_id() (yylval.id)
11618 static inline VALUE
11619 ripper_yylval_id(
ID x)
11623 # define set_yylval_str(x) (void)(x)
11624 # define set_yylval_num(x) (void)(x)
11625 # define set_yylval_id(x) (void)(x)
11626 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
11627 # define set_yylval_literal(x) (void)(x)
11628 # define set_yylval_node(x) (void)(x)
11629 # define yylval_id() yylval.id
11633 #define ripper_flush(p) (void)(p)
11635 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
11637 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
11644 return lex_p > parser->tokp;
11657 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11659 if (!ripper_has_scan_event(parser))
return;
11660 yylval_rval = ripper_scan_event_val(parser, t);
11664 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11666 if (!ripper_has_scan_event(parser))
return;
11667 (void)ripper_scan_event_val(parser, t);
11671 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11674 const char *saved_tokp = parser->tokp;
11677 parser->tokp =
lex_pbeg + parser->delayed_col;
11679 parser->delayed =
Qnil;
11681 parser->tokp = saved_tokp;
11692 #undef SIGN_EXTEND_CHAR
11694 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
11697 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
11700 #define parser_encoding_name() (current_enc->name)
11701 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
11702 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
11703 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
11704 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
11706 #define parser_isascii() ISASCII(*(lex_p-1))
11714 for (p =
lex_pbeg; p < pend; p++) {
11716 column = (((column - 1) / 8) + 1) * 8;
11727 for (p =
lex_pbeg; p < pend; p++) {
11728 if (*p !=
' ' && *p !=
'\t') {
11735 #undef token_info_push
11752 #undef token_info_pop
11759 if (!ptinfo)
return;
11765 if (linenum == ptinfo->
linenum) {
11773 "mismatched indentations at '%s' with '%s' at %d",
11786 const int max_line_margin = 30;
11787 const char *
p, *pe;
11795 if (*p ==
'\n')
break;
11802 if (*pe ==
'\n')
break;
11809 const char *pre =
"", *post =
"";
11811 if (len > max_line_margin * 2 + 10) {
11812 if (
lex_p - p > max_line_margin) {
11816 if (pe -
lex_p > max_line_margin) {
11823 MEMCPY(buf, p,
char, len);
11827 i = (int)(
lex_p - p);
11828 p2 =
buf; pe = buf + len;
11831 if (*p2 !=
'\t') *p2 =
' ';
11839 dispatch1(parse_error,
STR_NEW2(msg));
11851 CONST_ID(script_lines,
"SCRIPT_LINES__");
11868 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11872 RBASIC(lines)->klass = 0;
11874 RARRAY(lines)->as.heap.len = n;
11934 if (parser->
nerr) {
11944 return (
VALUE)tree;
11969 char *beg, *end, *pend;
11979 while (end < pend) {
11980 if (*end++ ==
'\n')
break;
11990 if (
NIL_P(line))
return line;
12089 #define STR_FUNC_ESCAPE 0x01
12090 #define STR_FUNC_EXPAND 0x02
12091 #define STR_FUNC_REGEXP 0x04
12092 #define STR_FUNC_QWORDS 0x08
12093 #define STR_FUNC_SYMBOL 0x10
12094 #define STR_FUNC_INDENT 0x20
12124 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
12125 #define lex_eol_p() (lex_p >= lex_pend)
12126 #define peek(c) peek_n((c), 0)
12127 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
12150 if (
NIL_P(parser->delayed)) {
12154 parser->tokp,
lex_pend - parser->tokp);
12156 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
12160 parser->tokp,
lex_pend - parser->tokp);
12176 c = (
unsigned char)*
lex_p++;
12177 if (c ==
'\r' &&
peek(
'\n')) {
12188 if (c == -1)
return;
12195 #define was_bol() (lex_p == lex_pbeg + 1)
12197 #define tokfix() (tokenbuf[tokidx]='\0')
12198 #define tok() tokenbuf
12199 #define toklen() tokidx
12200 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
12247 yyerror(
"invalid hex escape");
12254 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
12259 int string_literal,
int symbol_literal,
int regexp_literal)
12279 yyerror(
"invalid Unicode escape");
12282 if (codepoint > 0x10ffff) {
12283 yyerror(
"invalid Unicode codepoint (too large)");
12287 if (regexp_literal) {
12290 else if (codepoint >= 0x80) {
12292 if (string_literal)
tokaddmbc(codepoint, *encp);
12294 else if (string_literal) {
12297 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
12300 yyerror(
"unterminated Unicode escape");
12304 if (regexp_literal) {
tokadd(
'}'); }
12310 yyerror(
"invalid Unicode escape");
12314 if (regexp_literal) {
12317 else if (codepoint >= 0x80) {
12319 if (string_literal)
tokaddmbc(codepoint, *encp);
12321 else if (string_literal) {
12329 #define ESCAPE_CONTROL 1
12330 #define ESCAPE_META 2
12339 switch (c =
nextc()) {
12364 case '0':
case '1':
case '2':
case '3':
12365 case '4':
case '5':
case '6':
case '7':
12373 if (numlen == 0)
return 0;
12384 if ((c =
nextc()) !=
'-') {
12388 if ((c =
nextc()) ==
'\\') {
12389 if (
peek(
'u'))
goto eof;
12390 return read_escape(flags|ESCAPE_META, encp) | 0x80;
12392 else if (c == -1 || !
ISASCII(c))
goto eof;
12394 return ((c & 0xff) | 0x80);
12398 if ((c =
nextc()) !=
'-') {
12404 if ((c =
nextc())==
'\\') {
12405 if (
peek(
'u'))
goto eof;
12410 else if (c == -1 || !
ISASCII(c))
goto eof;
12415 yyerror(
"Invalid escape character syntax");
12438 switch (c =
nextc()) {
12442 case '0':
case '1':
case '2':
case '3':
12443 case '4':
case '5':
case '6':
case '7':
12446 if (numlen == 0)
goto eof;
12455 if (numlen == 0)
return -1;
12462 if ((c =
nextc()) !=
'-') {
12472 if ((c =
nextc()) !=
'-') {
12480 if (flags & ESCAPE_CONTROL)
goto eof;
12484 if ((c =
nextc()) ==
'\\') {
12487 else if (c == -1)
goto eof;
12493 yyerror(
"Invalid escape character syntax");
12560 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
12566 case '$':
case '*':
case '+':
case '.':
12567 case '?':
case '^':
case '|':
12568 case ')':
case ']':
case '}':
case '>':
12577 int func,
int term,
int paren,
long *nest,
12581 int has_nonascii = 0;
12584 static const char mixed_msg[] =
"%s mixed within %s source";
12586 #define mixed_error(enc1, enc2) if (!errbuf) { \
12587 size_t len = sizeof(mixed_msg) - 4; \
12588 len += strlen(rb_enc_name(enc1)); \
12589 len += strlen(rb_enc_name(enc2)); \
12590 errbuf = ALLOCA_N(char, len); \
12591 snprintf(errbuf, len, mixed_msg, \
12592 rb_enc_name(enc1), \
12593 rb_enc_name(enc2)); \
12596 #define mixed_escape(beg, enc1, enc2) do { \
12597 const char *pos = lex_p; \
12599 mixed_error((enc1), (enc2)); \
12603 while ((c =
nextc()) != -1) {
12604 if (paren && c == paren) {
12607 else if (c == term) {
12608 if (!nest || !*nest) {
12616 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12621 else if (c ==
'\\') {
12622 const char *beg =
lex_p - 1;
12627 if (func & STR_FUNC_EXPAND)
continue;
12636 if ((func & STR_FUNC_EXPAND) == 0) {
12643 if (has_nonascii && enc != *encp) {
12649 if (c == -1)
return -1;
12651 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12654 if (func & STR_FUNC_REGEXP) {
12662 if (has_nonascii && enc != *encp) {
12667 else if (func & STR_FUNC_EXPAND) {
12669 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12672 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12675 else if (c != term && !(paren && c == paren)) {
12685 if (enc != *encp) {
12698 if (enc != *encp) {
12709 #define NEW_STRTERM(func, term, paren) \
12710 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
12716 if (!
NIL_P(parser->delayed)) {
12717 ptrdiff_t len =
lex_p - parser->tokp;
12722 parser->tokp =
lex_p;
12726 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
12728 #define flush_string_content(enc) ((void)(enc))
12735 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
12736 #define SPECIAL_PUNCT(idx) ( \
12737 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
12738 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
12739 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
12740 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
12741 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
12749 #undef SPECIAL_PUNCT
12755 if (c <= 0x20 || 0x7e < c)
return 0;
12756 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
12763 const char *p =
lex_p;
12769 if ((c = *p) ==
'-') {
12778 if ((c = *p) ==
'@') {
12798 int func = (int)quote->nd_func;
12810 if (c == term && !quote->nd_nest) {
12811 if (func & STR_FUNC_QWORDS) {
12812 quote->nd_func = -1;
12874 while ((c =
nextc()) != -1 && c != term) {
12921 line = here->nd_orig;
12935 const char *eos,
long len,
int indent)
12941 while (*p &&
ISSPACE(*p)) p++;
12944 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
12945 return strncmp(eos, p, len) == 0;
12952 if (!
NIL_P(parser->delayed))
12955 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12958 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
12960 #define dispatch_heredoc_end() ((void)0)
12966 int c,
func, indent = 0;
12967 const char *eos, *
p, *pend;
12976 if ((c =
nextc()) == -1) {
12980 if (
NIL_P(parser->delayed)) {
12985 ((len =
lex_p - parser->tokp) > 0 &&
12986 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
13009 switch (pend[-1]) {
13011 if (--pend == p || pend[-1] !=
'\r') {
13025 if (
nextc() == -1) {
13043 if (parser->
eofp)
goto error;
13053 if ((c =
nextc()) == -1)
goto error;
13070 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
13075 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
13082 yyerror(
"formal argument must be local variable");
13100 if (len > 5 && name[nlen = len - 5] ==
'-') {
13101 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
13104 if (len > 4 && name[nlen = len - 4] ==
'-') {
13107 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
13108 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
13123 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
13140 for (i = 0; i < n; ++
i) {
13178 case 't':
case 'T':
13184 case 'f':
case 'F':
13207 static const char *
13215 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13216 return str + i + 1;
13221 if (i + 1 >= len)
return 0;
13222 if (str[i+1] !=
'-') {
13225 else if (str[i-1] !=
'-') {
13229 return str + i + 2;
13244 const char *beg, *end, *vbeg, *vend;
13245 #define str_copy(_s, _p, _n) ((_s) \
13246 ? (void)(rb_str_resize((_s), (_n)), \
13247 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
13248 : (void)((_s) = STR_NEW((_p), (_n))))
13250 if (len <= 7)
return FALSE;
13254 len = end - beg - 3;
13265 for (; len > 0 && *str; str++, --len) {
13267 case '\'':
case '"':
case ':':
case ';':
13272 for (beg = str; len > 0; str++, --len) {
13274 case '\'':
case '"':
case ':':
case ';':
13282 for (end = str; len > 0 &&
ISSPACE(*str); str++, --len);
13284 if (*str !=
':')
continue;
13286 do str++;
while (--len > 0 &&
ISSPACE(*str));
13289 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13290 if (*str ==
'\\') {
13302 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --len, str++);
13305 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13310 for (i = 0; i < n; ++
i) {
13311 if (s[i] ==
'-') s[
i] =
'_';
13318 n = (*p->
length)(parser, vbeg, n);
13324 }
while (++p < magic_comments +
numberof(magic_comments));
13338 const char *beg = str;
13342 if (send - str <= 6)
return;
13344 case 'C':
case 'c': str += 6;
continue;
13345 case 'O':
case 'o': str += 5;
continue;
13346 case 'D':
case 'd': str += 4;
continue;
13347 case 'I':
case 'i': str += 3;
continue;
13348 case 'N':
case 'n': str += 2;
continue;
13349 case 'G':
case 'g': str += 1;
continue;
13350 case '=':
case ':':
13363 if (++str >= send)
return;
13366 if (*str !=
'=' && *str !=
':')
return;
13371 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13387 (
unsigned char)
lex_p[0] == 0xbb &&
13388 (
unsigned char)
lex_p[1] == 0xbf) {
13402 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
13403 #define IS_END() IS_lex_state(EXPR_END_ANY)
13404 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY)
13405 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
13406 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
13407 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
13408 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
13411 #define ambiguous_operator(op, syn) ( \
13412 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
13413 rb_warning0("even though it seems like "syn""))
13415 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
13417 #define warn_balanced(op, syn) ((void) \
13418 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
13419 space_seen && !ISSPACE(c) && \
13420 (ambiguous_operator(op, syn), 0)))
13426 int space_seen = 0;
13432 int fallthru =
FALSE;
13458 switch (c =
nextc()) {
13466 case ' ':
case '\t':
case '\f':
case '\r':
13470 while ((c =
nextc())) {
13472 case ' ':
case '\t':
case '\f':
case '\r':
13481 ripper_dispatch_scan_event(parser,
tSP);
13494 ripper_dispatch_scan_event(parser,
tCOMMENT);
13499 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT)) {
13508 while ((c =
nextc())) {
13510 case ' ':
case '\t':
case '\f':
case '\r':
13515 if ((c =
nextc()) !=
'.') {
13528 parser->tokp =
lex_p;
13531 goto normal_newline;
13540 if ((c =
nextc()) ==
'*') {
13541 if ((c =
nextc()) ==
'=') {
13548 rb_warning0(
"`**' interpreted as argument prefix");
13567 rb_warning0(
"`*' interpreted as argument prefix");
13606 int first_p =
TRUE;
13615 ripper_dispatch_scan_event(parser,
tEMBDOC);
13624 if (c !=
'=')
continue;
13625 if (strncmp(
lex_p,
"end", 3) == 0 &&
13639 if ((c =
nextc()) ==
'=') {
13640 if ((c =
nextc()) ==
'=') {
13649 else if (c ==
'>') {
13661 (!
IS_ARG() || space_seen)) {
13663 if (token)
return token;
13674 if ((c =
nextc()) ==
'>') {
13681 if ((c =
nextc()) ==
'=') {
13695 if ((c =
nextc()) ==
'=') {
13699 if ((c =
nextc()) ==
'=') {
13767 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13784 else if (c ==
'\\') {
13813 if ((c =
nextc()) ==
'&') {
13815 if ((c =
nextc()) ==
'=') {
13823 else if (c ==
'=') {
13830 rb_warning0(
"`&' interpreted as argument prefix");
13844 if ((c =
nextc()) ==
'|') {
13846 if ((c =
nextc()) ==
'=') {
13926 if ((c =
nextc()) ==
'.') {
13927 if ((c =
nextc()) ==
'.') {
13935 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13941 case '0':
case '1':
case '2':
case '3':
case '4':
13942 case '5':
case '6':
case '7':
case '8':
case '9':
13944 int is_float, seen_point, seen_e, nondigit;
13946 is_float = seen_point = seen_e = nondigit = 0;
13949 if (c ==
'-' || c ==
'+') {
13954 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
13957 if (c ==
'x' || c ==
'X') {
13963 if (nondigit)
break;
13970 }
while ((c =
nextc()) != -1);
13974 if (
toklen() == start) {
13977 else if (nondigit)
goto trailing_uc;
13981 if (c ==
'b' || c ==
'B') {
13984 if (c ==
'0' || c ==
'1') {
13987 if (nondigit)
break;
13991 if (c !=
'0' && c !=
'1')
break;
13994 }
while ((c =
nextc()) != -1);
13998 if (
toklen() == start) {
14001 else if (nondigit)
goto trailing_uc;
14005 if (c ==
'd' || c ==
'D') {
14011 if (nondigit)
break;
14018 }
while ((c =
nextc()) != -1);
14022 if (
toklen() == start) {
14025 else if (nondigit)
goto trailing_uc;
14033 if (c ==
'o' || c ==
'O') {
14036 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
14040 if (c >=
'0' && c <=
'7') {
14045 if (nondigit)
break;
14049 if (c < '0' || c >
'9')
break;
14050 if (c >
'7')
goto invalid_octal;
14053 }
while ((c =
nextc()) != -1);
14057 if (nondigit)
goto trailing_uc;
14066 if (c >
'7' && c <=
'9') {
14068 yyerror(
"Invalid octal digit");
14070 else if (c ==
'.' || c ==
'e' || c ==
'E') {
14082 case '0':
case '1':
case '2':
case '3':
case '4':
14083 case '5':
case '6':
case '7':
case '8':
case '9':
14089 if (nondigit)
goto trailing_uc;
14090 if (seen_point || seen_e) {
14095 if (c0 == -1 || !
ISDIGIT(c0)) {
14123 if (c !=
'-' && c !=
'+')
continue;
14129 if (nondigit)
goto decode_num;
14144 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14150 if (
errno == ERANGE) {
14211 if ((c =
nextc()) ==
'=') {
14227 if ((c =
nextc()) ==
'=') {
14247 if ((c =
nextc()) !=
'@') {
14274 if ((c =
nextc()) ==
']') {
14275 if ((c =
nextc()) ==
'=') {
14287 else if (
IS_ARG() && space_seen) {
14322 ripper_dispatch_scan_event(parser,
tSP);
14336 if (c == -1 || !
ISALNUM(c)) {
14343 yyerror(
"unknown type of %string");
14347 if (c == -1 || term == -1) {
14352 if (term ==
'(') term =
')';
14353 else if (term ==
'[') term =
']';
14354 else if (term ==
'{') term =
'}';
14355 else if (term ==
'<') term =
'>';
14405 yyerror(
"unknown type of %string");
14409 if ((c =
nextc()) ==
'=') {
14486 case '1':
case '2':
case '3':
14487 case '4':
case '5':
case '6':
14488 case '7':
case '8':
case '9':
14493 }
while (c != -1 &&
ISDIGIT(c));
14539 ripper_dispatch_scan_event(parser,
k__END__);
14562 switch (
tok()[0]) {
14563 case '@':
case '$':
14567 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14580 switch (
tok()[0]) {
14587 if (
tok()[1] ==
'@')
14633 if (state == EXPR_FNAME) {
14647 if (
CMDARG_P() && state != EXPR_CMDARG)
14649 if (state & (EXPR_BEG | EXPR_ENDARG))
14653 if (state & (EXPR_BEG | EXPR_VALUE))
14656 if (kw->
id[0] != kw->
id[1])
14707 if (!
NIL_P(parser->delayed)) {
14708 ripper_dispatch_delayed_token(parser, t);
14712 ripper_dispatch_scan_event(parser, t);
14754 if (orig == (
NODE*)1)
return;
14763 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
14770 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
14777 if (tail == 0)
return head;
14779 if (h == 0)
return tail;
14818 tail->nd_end =
tail;
14820 end->nd_next =
tail;
14821 h->nd_end = tail->nd_end;
14831 if (list == 0)
return NEW_LIST(item);
14832 if (list->nd_next) {
14833 last = list->nd_next->nd_end;
14839 list->nd_alen += 1;
14841 list->nd_next->nd_end = last->nd_next;
14851 if (head->nd_next) {
14852 last = head->nd_next->nd_end;
14858 head->nd_alen += tail->nd_alen;
14859 last->nd_next =
tail;
14860 if (tail->nd_next) {
14861 head->nd_next->nd_end = tail->nd_next->nd_end;
14864 head->nd_next->nd_end =
tail;
14873 if (
NIL_P(tail))
return 1;
14894 if (!head)
return tail;
14895 if (!tail)
return head;
14905 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14908 lit = headlast->nd_lit;
14911 lit = head->nd_lit;
14931 tail->nd_lit = head->nd_lit;
14935 else if (
NIL_P(tail->nd_lit)) {
14937 head->nd_alen += tail->nd_alen - 1;
14938 head->nd_next->nd_end->nd_next = tail->nd_next;
14939 head->nd_next->nd_end = tail->nd_next->nd_end;
14942 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14944 lit = headlast->nd_lit;
14947 tail->nd_lit =
Qnil;
14952 tail->nd_head =
NEW_STR(tail->nd_lit);
15099 static const char *
15102 static const char names[][12] = {
15103 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15104 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15109 return names[
ffs(state)];
15124 # define assignable_result(x) get_value(lhs)
15125 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
15127 # define assignable_result(x) (x)
15132 yyerror(
"Can't change the value of self");
15135 yyerror(
"Can't assign to nil");
15138 yyerror(
"Can't assign to true");
15141 yyerror(
"Can't assign to false");
15144 yyerror(
"Can't assign to __FILE__");
15147 yyerror(
"Can't assign to __LINE__");
15150 yyerror(
"Can't assign to __ENCODING__");
15184 yyerror(
"dynamic constant assignment");
15193 #undef assignable_result
15194 #undef parser_yyerror
15201 if (name == idUScore)
return 1;
15208 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
15216 yyerror(
"duplicated argument name");
15228 yyerror(
"duplicated argument name");
15267 id &= ~ID_SCOPE_MASK;
15296 if (!node2)
return node1;
15299 if (node1->nd_head)
15300 node1->nd_head =
arg_concat(node1->nd_head, node2);
15312 node1->nd_body =
list_concat(node1->nd_body, node2);
15321 if (!node1)
return NEW_LIST(node2);
15326 node1->nd_head =
arg_append(node1->nd_head, node2);
15347 if (!lhs)
return 0;
15359 lhs->nd_value = rhs;
15364 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
15395 if (!cond)
yyerror(
"void value expression");
15400 while (node->nd_next) {
15401 node = node->nd_next;
15403 node = node->nd_head;
15407 node = node->nd_body;
15411 if (!node->nd_body) {
15412 node = node->nd_else;
15415 else if (!node->nd_else) {
15416 node = node->nd_body;
15420 node = node->nd_else;
15426 node = node->nd_2nd;
15440 const char *useless = 0;
15447 switch (node->nd_mid) {
15478 useless =
"a variable";
15481 useless =
"a constant";
15488 useless =
"a literal";
15513 useless =
"defined?";
15521 rb_warnS(
"possibly useless use of %s in void context", useless);
15534 if (!node->nd_next)
return;
15536 node = node->nd_next;
15543 NODE **n = &node, *n1 = node;
15545 *n = n1 = n1->nd_body;
15553 NODE *node = *body;
15559 #define subnodes(n1, n2) \
15560 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
15561 (!node->n2) ? (body = &node->n1, 1) : \
15562 (reduce_nodes(&node->n1), body = &node->n2, 1))
15572 *body = node = node->nd_stts;
15576 *body = node = node->nd_body;
15580 body = &node->nd_end->nd_head;
15586 body = &node->nd_body;
15595 if (node->nd_else) {
15596 body = &node->nd_resq;
15614 if (!node)
return 1;
15617 if (!(node = node->nd_head))
break;
15621 }
while ((node = node->nd_next) != 0);
15640 yyerror(
"multiple assignment in conditional");
15654 if (!node->nd_value)
return 1;
15657 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15679 for (node = *rootnode; node; node = next) {
15683 next = node->nd_next;
15684 head = node->nd_head;
15687 switch (type =
nd_type(head)) {
15690 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
15695 head->nd_lit =
val;
15710 if (node == 0)
return 0;
15718 return cond0(parser, node);
15724 if (!node)
return 1;
15745 if (node == 0)
return 0;
15752 rb_warn0(
"string literal in condition");
15762 node->nd_1st =
cond0(parser, node->nd_1st);
15763 node->nd_2nd =
cond0(parser, node->nd_2nd);
15768 node->nd_beg =
range_op(parser, node->nd_beg);
15769 node->nd_end =
range_op(parser, node->nd_end);
15802 if (node == 0)
return 0;
15803 return cond0(parser, node);
15811 NODE *node = left, *second;
15812 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
15815 node->nd_2nd =
NEW_NODE(type, second, right, 0);
15818 return NEW_NODE(type, left, right, 0);
15835 if (node->nd_next == 0) {
15836 node = node->nd_head;
15857 switch (
TYPE(node->nd_lit)) {
15886 node2->nd_head = node1;
15900 args->
pre_init = m ? m->nd_next : 0;
15954 lit = node->nd_lit;
15973 ID vid = lhs->nd_vid;
15975 lhs->nd_value = rhs;
15978 asgn->nd_aid = vid;
15981 else if (op ==
tANDOP) {
15982 lhs->nd_value = rhs;
16004 else if (op ==
tANDOP) {
16020 else if (op ==
tANDOP) {
16036 return dispatch3(opassign, lhs, op, rhs);
16042 VALUE recv = dispatch3(field, lhs, type, attr);
16043 return dispatch3(opassign, recv, op, rhs);
16053 if (!local->
used)
return;
16057 if (cnt != local->
vars->
pos) {
16058 rb_bug(
"local->used->pos != local->vars->pos");
16060 for (i = 0; i <
cnt; ++
i) {
16061 if (!v[i] || (u[i] &
LVAR_USED))
continue;
16076 local->
used = !(inherit_dvars &&
16104 for (i = 0; i <
cnt; i++) {
16105 buf[
i] = src->
tbl[
i];
16118 if (cnt <= 0)
return 0;
16149 vars =
lvtbl->vars;
16150 args =
lvtbl->args;
16151 used =
lvtbl->used;
16156 if (used) used = used->
prev;
16172 static const struct vtable *
16180 return lvtbl->args;
16188 if ((tmp =
lvtbl->used) != 0) {
16204 while (
lvtbl->args != lvargs) {
16206 if (!
lvtbl->args) {
16227 args =
lvtbl->args;
16228 vars =
lvtbl->vars;
16229 used =
lvtbl->used;
16242 if (used) used = used->
prev;
16295 "regexp encoding option '%c' differs from source encoding '%s'",
16324 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
16329 long len = name_end -
name;
16330 const char *s = (
const char *)name;
16347 rb_warningS(
"named capture conflicts a local variable - %s",
16427 NODE *scope = node;
16430 if (!node)
return node;
16434 node = node->nd_body;
16438 node = node->nd_body;
16445 prelude->nd_body = node;
16446 scope->nd_body = prelude;
16449 scope->nd_body = node;
16459 NODE *scope = node;
16462 if (!node)
return node;
16466 node = node->nd_body;
16470 node = node->nd_body;
16486 prelude->nd_body = node;
16487 scope->nd_body = prelude;
16490 scope->nd_body = node;
16496 static const struct {
16521 #define op_tbl_count numberof(op_tbl)
16523 #ifndef ENABLE_SELECTOR_NAMESPACE
16524 #define ENABLE_SELECTOR_NAMESPACE 0
16531 #if ENABLE_SELECTOR_NAMESPACE
16543 #if ENABLE_SELECTOR_NAMESPACE
16550 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
16552 if (key1->id == key2->id && key1->klass == key2->klass) {
16559 ivar2_hash(
struct ivar2_key *
key)
16561 return (key->id << 8) ^ (key->klass >> 2);
16575 #if ENABLE_SELECTOR_NAMESPACE
16583 (void)lex_state_name(-1);
16612 if (m >= e)
return 0;
16616 else if (*m ==
'-') {
16630 return m == e ? mb + 1 : 0;
16648 const char *m =
name;
16649 const char *e = m + len;
16652 if (!m || len <= 0)
return -1;
16672 case '<': ++m;
break;
16673 case '=':
if (*++m ==
'>') ++m;
break;
16680 case '>':
case '=': ++m;
break;
16686 case '~': ++m;
break;
16687 case '=':
if (*++m ==
'=') ++m;
break;
16688 default:
return -1;
16693 if (*++m ==
'*') ++m;
16696 case '+':
case '-':
16697 if (*++m ==
'@') ++m;
16700 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16705 if (*++m !=
']')
return -1;
16706 if (*++m ==
'=') ++m;
16710 if (len == 1)
return ID_JUNK;
16712 case '=':
case '~': ++m;
break;
16713 default:
return -1;
16724 case '!':
case '?':
16737 return m == e ? type : -1;
16801 fake_str.
as.
heap.ptr = (
char *)name;
16803 str = (
VALUE)&fake_str;
16817 const char *
name, *m, *e;
16865 if (*
op_tbl[i].name == *m &&
16866 strcmp(
op_tbl[i].name, m) == 0) {
16873 if (m[last] ==
'=') {
16901 if (m - name < len)
id =
ID_JUNK;
16955 name[0] = (char)
id;
16978 if (
RBASIC(str)->klass == 0)
16989 id2 = (
id & ~ID_SCOPE_MASK) |
ID_CONST;
16996 if (
RBASIC(str)->klass == 0)
17009 if (!str)
return 0;
17103 VALUE name = *namep;
17154 fake_str.
as.
heap.ptr = (
char *)ptr;
17164 fake_str.
as.
heap.len = len - 1;
17262 parser->parser_ruby_sourcefile_string =
Qnil;
17263 parser->delayed =
Qnil;
17265 parser->result =
Qnil;
17266 parser->parsing_thread =
Qnil;
17267 parser->toplevel_p =
TRUE;
17276 #define parser_mark ripper_parser_mark
17277 #define parser_free ripper_parser_free
17295 rb_gc_mark(p->parser_ruby_sourcefile_string);
17317 prev = local->
prev;
17331 size_t size =
sizeof(*p);
17333 if (!ptr)
return 0;
17336 size +=
sizeof(*local);
17361 #undef rb_reserved_word
17445 yydebug =
RTEST(flag);
17450 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
17451 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
17452 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
17453 (n)->u3.cnt = (c), (p))
17470 void *ptr =
xcalloc(nelem, size);
17481 if (ptr && (n = parser->
heap) !=
NULL) {
17483 if (n->
u1.
node == ptr) {
17500 while ((n = *prev) !=
NULL) {
17501 if (n->u1.node == ptr) {
17514 #ifdef RIPPER_DEBUG
17515 extern int rb_is_pointer_to_heap(
VALUE);
17521 if (x ==
Qfalse)
return x;
17522 if (x ==
Qtrue)
return x;
17523 if (x ==
Qnil)
return x;
17528 if (!rb_is_pointer_to_heap(x))
17541 return ((
NODE *)x)->nd_rval;
17550 #define validate(x) ((x) = get_value(x))
17562 return rb_funcall(parser->value, mid, 1, a);
17570 return rb_funcall(parser->value, mid, 2, a, b);
17579 return rb_funcall(parser->value, mid, 3, a, b, c);
17589 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17600 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17613 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
17616 static const struct kw_assoc {
17619 } keyword_to_name[] = {
17672 keyword_id_to_str(
ID id)
17674 const struct kw_assoc *a;
17676 for (a = keyword_to_name; a->id; a++) {
17683 #undef ripper_id2sym
17685 ripper_id2sym(
ID id)
17695 if ((name = keyword_id_to_str(
id))) {
17708 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
17726 ripper_get_value(
VALUE v)
17733 return nd->nd_rval;
17737 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17742 va_start(args, fmt);
17749 ripper_warn0(
struct parser_params *parser,
const char *fmt)
17755 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
17762 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
17769 ripper_warning0(
struct parser_params *parser,
const char *fmt)
17775 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
17788 ripper_s_allocate(
VALUE klass)
17800 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
17816 VALUE src, fname, lineno;
17819 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
17829 if (
NIL_P(fname)) {
17837 parser->parser_ruby_sourcefile_string = fname;
17844 struct ripper_args {
17851 ripper_parse0(
VALUE parser_v)
17857 ripper_yyparse((
void*)parser);
17858 return parser->result;
17862 ripper_ensure(
VALUE parser_v)
17867 parser->parsing_thread =
Qnil;
17878 ripper_parse(
VALUE self)
17883 if (!ripper_initialized_p(parser)) {
17886 if (!
NIL_P(parser->parsing_thread)) {
17893 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17895 return parser->result;
17906 ripper_column(
VALUE self)
17912 if (!ripper_initialized_p(parser)) {
17915 if (
NIL_P(parser->parsing_thread))
return Qnil;
17927 ripper_filename(
VALUE self)
17932 if (!ripper_initialized_p(parser)) {
17935 return parser->parser_ruby_sourcefile_string;
17946 ripper_lineno(
VALUE self)
17951 if (!ripper_initialized_p(parser)) {
17954 if (
NIL_P(parser->parsing_thread))
return Qnil;
17958 #ifdef RIPPER_DEBUG
17994 InitVM_ripper(
void)
18010 #ifdef RIPPER_DEBUG
#define STRNCASECMP(s1, s2, n)
RUBY_EXTERN VALUE rb_cString
static const struct @60 op_tbl[]
void rb_define_global_const(const char *, VALUE)
char * parser_ruby_sourcefile
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
struct local_vars * parser_lvtbl
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
#define IS_LABEL_SUFFIX(n)
#define new_args_tail(k, kr, b)
int rb_is_attrset_id(ID id)
int rb_enc_codelen(int c, rb_encoding *enc)
#define NEW_OP_ASGN_AND(i, val)
#define parser_precise_mbclen()
static NODE * remove_begin(NODE *)
#define MBCLEN_CHARFOUND_P(ret)
#define NEW_STRTERM(func, term, paren)
static const yytype_int16 yydefgoto[]
#define list_concat(h, t)
static struct parser_params * parser_new(void)
#define NEW_OP_ASGN1(p, id, a)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
static NODE * arg_blk_pass(NODE *, NODE *)
static void Init_id(void)
static ID internal_id_gen(struct parser_params *)
void rb_bug(const char *fmt,...)
void rb_enc_copy(VALUE obj1, VALUE obj2)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
static const struct kwtable * reserved_word(const char *, unsigned int)
int rb_is_class_name(VALUE name)
NODE * rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
static int comment_at_top(struct parser_params *parser)
#define RE_OPTION_ENCODING_IDX(o)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
#define assignable(id, node)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
static size_t parser_memsize(const void *ptr)
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
#define reg_compile(str, options)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
int parser_ruby__end__seen
static void fixpos(NODE *, NODE *)
VALUE rb_range_new(VALUE, VALUE, int)
static void reduce_nodes_gen(struct parser_params *, NODE **)
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
int parser_compile_for_eval
int parser_token_info_enabled
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
VALUE rb_str_cat(VALUE, const char *, long)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
VALUE rb_reg_check_preprocess(VALUE)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
static NODE * gettable_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
#define TypedData_Wrap_Struct(klass, data_type, sval)
static struct symbols global_symbols
static YYSIZE_T yystrlen(char *yystr) const
VALUE rb_parser_end_seen_p(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
struct token_info token_info
#define new_op_assign(lhs, op, rhs)
stack_type parser_cmdarg_stack
#define new_args(f, o, r, p, t)
VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *)
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
#define token_info_push(token)
static VALUE debug_lines(const char *f)
static int parser_here_document(struct parser_params *, NODE *)
#define logop(type, node1, node2)
VALUE rb_ary_push(VALUE ary, VALUE item)
static void yydestruct(char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
#define NEW_CLASS(n, b, s)
SSL_METHOD *(* func)(void)
static NODE * evstr2dstr_gen(struct parser_params *, NODE *)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
unsigned short int yytype_uint16
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
#define is_identchar(p, e, enc)
VALUE op_sym[tLAST_OP_ID]
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
#define warn_balanced(op, syn)
struct RString::@73::@74 heap
#define match_op(node1, node2)
int rb_enc_str_coderange(VALUE)
static void ripper_init_eventids1_table(VALUE self)
#define reg_fragment_setenc(str, options)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
void rb_raise(VALUE exc, const char *fmt,...)
#define rb_warn4S(file, line, fmt, a)
#define RSTRING_GETMEM(str, ptrvar, lenvar)
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static NODE * newline_node(NODE *)
const rb_data_type_t * parent
void rb_compile_warn(const char *file, int line, const char *fmt,...)
static NODE * range_op(struct parser_params *parser, NODE *node)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
st_index_t rb_str_hash(VALUE)
VALUE rb_ary_new3(long n,...)
static void parser_pushback(struct parser_params *parser, int c)
#define nd_set_type(n, t)
static int lvar_defined_gen(struct parser_params *, ID)
void rb_gc_mark(VALUE ptr)
#define parser_is_identchar()
#define rb_enc_islower(c, enc)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define RE_OPTION_ENCODING(e)
#define rb_backref_error(n)
static void parser_initialize(struct parser_params *parser)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
static const yytype_uint16 yyr1[]
ID rb_check_id(volatile VALUE *namep)
Returns ID for the given name if it is interned already, or 0.
ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc)
static NODE * yycompile(struct parser_params *parser, const char *f, int line)
static ID * vtable_tblcpy(ID *buf, const struct vtable *src)
#define NEW_IASGN(v, val)
rb_encoding * rb_utf8_encoding(void)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define is_instance_id(id)
#define call_bin_op(recv, id, arg1)
static enum node_type nodetype(NODE *node)
VALUE rb_str_buf_append(VALUE, VALUE)
VALUE rb_sym_all_symbols(void)
static VALUE lex_getline(struct parser_params *parser)
static NODE * ret_args_gen(struct parser_params *, NODE *)
static const yytype_int16 yytable[]
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
void rb_gc_force_recycle(VALUE p)
static int yylex(void *, void *)
#define list_append(l, i)
NODE * parser_deferred_nodes
static int simple_re_meta(int c)
VALUE rb_str_buf_cat(VALUE, const char *, long)
static int e_option_supplied(struct parser_params *parser)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
#define SPECIAL_PUNCT(idx)
static int vtable_size(const struct vtable *tbl)
static int assign_in_cond(struct parser_params *parser, NODE *node)
void rb_exc_raise(VALUE mesg)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
static rb_encoding * must_be_ascii_compatible(VALUE s)
int rb_is_const_id(ID id)
int rb_is_instance_id(ID id)
#define RUBY_DTRACE_PARSE_END(arg0, arg1)
#define RB_TYPE_P(obj, type)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
int rb_is_method_name(VALUE name)
#define assignable_result(x)
int st_lookup(st_table *, st_data_t, st_data_t *)
#define NEW_ATTRASGN(r, m, a)
#define MEMZERO(p, type, n)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
#define parser_warning(node, mesg)
static int parser_regx_options(struct parser_params *)
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
enum lex_state_e parser_lex_state
#define whole_match_p(e, l, i)
VALUE parser_lex_lastline
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define set_yylval_literal(x)
static int parser_yylex(struct parser_params *parser)
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
#define scan_hex(s, l, e)
static int dyna_in_block_gen(struct parser_params *)
static const yytype_uint16 yystos[]
static char * parser_tokspace(struct parser_params *parser, int n)
void rb_compile_error_append(const char *fmt,...)
static void parser_free(void *ptr)
#define NEW_PRELUDE(p, b)
#define literal_concat(h, t)
RUBY_EXTERN VALUE rb_cObject
static int symbols_i(VALUE sym, ID value, VALUE ary)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
#define rb_enc_isascii(c, enc)
static int dvar_curr_gen(struct parser_params *, ID)
VALUE rb_parser_encoding(VALUE vparser)
static const yytype_uint16 yyrline[]
struct parser_params * parser
#define yytable_value_is_error(yytable_value)
char * ruby_strdup(const char *)
VALUE rb_get_coverages(void)
NODE * rb_compile_string(const char *f, VALUE s, int line)
static const yytype_uint16 yyprhs[]
VALUE rb_obj_as_string(VALUE)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
int rb_ascii8bit_encindex(void)
#define NEW_ARGSPUSH(a, b)
static int is_global_name_punct(const char c)
#define is_attrset_id(id)
#define set_yylval_name(x)
#define NEW_UNLESS(c, t, e)
static char * parser_newtok(struct parser_params *parser)
RUBY_EXTERN VALUE rb_mKernel
VALUE rb_thread_current(void)
static int vtable_included(const struct vtable *tbl, ID id)
#define block_dup_check(n1, n2)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void local_push_gen(struct parser_params *, int)
void st_add_direct(st_table *, st_data_t, st_data_t)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
ID rb_intern(const char *name)
#define heredoc_identifier()
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
#define new_const_op_assign(lhs, op, rhs)
void rb_define_const(VALUE, const char *, VALUE)
static void parser_tokadd(struct parser_params *parser, int c)
static void parser_mark(void *ptr)
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
rb_atomic_t cnt[RUBY_NSIG]
#define lex_goto_eol(parser)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
static void ripper_init_eventids1(void)
static void vtable_add(struct vtable *tbl, ID id)
char ary[RSTRING_EMBED_LEN_MAX+1]
static NODE * parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define ALLOCA_N(type, n)
#define flush_string_content(enc)
#define NEW_OP_CDECL(v, op, val)
static VALUE coverage(const char *f, int n)
#define ENC_CODERANGE_UNKNOWN
#define tokadd_string(f, t, p, n, e)
static NODE * new_yield_gen(struct parser_params *, NODE *)
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
static int rb_str_symname_type(VALUE name)
#define ENC_CODERANGE_BROKEN
#define rb_enc_isupper(c, enc)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_parse_in_main(void)
static int parser_nextc(struct parser_params *parser)
const char * parser_lex_pend
static ID formal_argument_gen(struct parser_params *, ID)
static void void_expr_gen(struct parser_params *, NODE *)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
void rb_gc_mark_symbols(void)
static ID intern_str(VALUE str)
#define YY_REDUCE_PRINT(Rule)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
token_info * parser_token_info
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
static char * yystpcpy(char *yydest, const char *yysrc)
VALUE rb_make_backtrace(void)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
#define NEW_WHEN(c, t, e)
VALUE rb_str_resize(VALUE, long)
#define NEW_DASGN(v, val)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
static int parser_peek_variable_name(struct parser_params *parser)
static VALUE yycompile0(VALUE arg)
#define mixed_escape(beg, enc1, enc2)
int rb_str_hash_cmp(VALUE, VALUE)
#define set_yylval_num(x)
static ID register_symid_str(ID, VALUE)
#define NEW_BLOCK_PASS(b)
int rb_dvar_defined(ID id)
static void dispose_string(VALUE str)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
#define RUBY_DTRACE_PARSE_END_ENABLED()
static ID shadowing_lvar_gen(struct parser_params *, ID)
#define REALLOC_N(var, type, n)
int rb_symname_p(const char *name)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
#define token_info_pop(token)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
VALUE rb_sprintf(const char *format,...)
#define IS_lex_state_for(x, ls)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
#define NEW_OP_ASGN_OR(i, val)
#define rb_enc_isspace(c, enc)
#define rb_node_newnode(type, a1, a2, a3)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
int rb_is_attrset_name(VALUE name)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
static const struct magic_comment magic_comments[]
static int parser_parse_string(struct parser_params *, NODE *)
#define rb_warningS(fmt, a)
static NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
#define NEW_RESCUE(b, res, e)
static int dvar_defined_gen(struct parser_params *, ID, int)
int rb_is_local_id(ID id)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static int local_id_gen(struct parser_params *, ID)
unsigned char buf[MIME_BUF_SIZE]
VALUE rb_assoc_new(VALUE car, VALUE cdr)
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
static void rb_backref_error_gen(struct parser_params *, NODE *)
#define rb_enc_isdigit(c, enc)
unsigned char yytype_uint8
static const yytype_int16 yyrhs[]
static void arg_ambiguous_gen(struct parser_params *parser)
#define heredoc_restore(n)
static void parser_prepare(struct parser_params *parser)
static NODE * cond_gen(struct parser_params *, NODE *)
static int options(unsigned char *cp)
static const char *const yytname[]
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
stack_type parser_cond_stack
static void ripper_init_eventids2(void)
static void dyna_pop_1(struct parser_params *parser)
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
static int parser_heredoc_identifier(struct parser_params *parser)
#define rb_enc_ispunct(c, enc)
static int value_expr_gen(struct parser_params *, NODE *)
void rb_mark_tbl(st_table *tbl)
#define NEW_ENSURE(b, en)
int rb_is_global_id(ID id)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static const yytype_int16 yycheck[]
#define rb_enc_asciicompat(enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
#define set_yylval_str(x)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
static int is_static_content(NODE *node)
#define ENCODING_IS_ASCII8BIT(obj)
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
static const yytype_int16 yypgoto[]
static int arg_var_gen(struct parser_params *, ID)
#define rb_enc_isalpha(c, enc)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
static ID * local_tbl_gen(struct parser_params *)
#define reg_named_capture_assign(regexp, match)
static int parser_yyerror(struct parser_params *, const char *)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
int rb_is_const_name(VALUE name)
#define is_asgn_or_id(id)
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
int rb_is_local_name(VALUE name)
VALUE rb_usascii_str_new2(const char *)
const struct vtable * vars
int rb_const_defined_at(VALUE, ID)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
st_table * st_init_table_with_size(const struct st_hash_type *, st_index_t)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
void rb_gc_mark_parser(void)
static const yytype_uint8 yytranslate[]
#define ADD2HEAP(n, c, p)
static int is_private_local_id(ID name)
#define NEW_GASGN(v, val)
static int rb_enc_symname_type(const char *name, long len, rb_encoding *enc)
static void no_blockarg(struct parser_params *parser, NODE *node)
static void local_pop_gen(struct parser_params *)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define read_escape(flags, e)
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
#define parser_warn(node, mesg)
ID rb_intern_str(VALUE str)
void rb_set_errinfo(VALUE err)
NODE * parser_lex_strterm
#define NEW_UNTIL(c, b, n)
static int token_info_get_column(struct parser_params *parser, const char *token)
static const struct st_hash_type symhash
#define node_assign(node1, node2)
static void void_stmts_gen(struct parser_params *, NODE *)
static int local_var_gen(struct parser_params *, ID)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
#define YYSTACK_ALLOC_MAXIMUM
static const rb_data_type_t parser_data_type
void rb_compile_warning(const char *file, int line, const char *fmt,...)
VALUE rb_check_string_type(VALUE)
static const yytype_uint16 yydefact[]
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
#define parser_encoding_name()
#define NEW_WHILE(c, b, n)
static const yytype_int16 yypact[]
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
#define NEW_POSTARG(i, v)
struct rb_encoding_entry * list
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
rb_encoding * rb_filesystem_encoding(void)
#define NEW_CVASGN(v, val)
static void new_bv_gen(struct parser_params *, ID)
static NODE * negate_lit(NODE *)
#define NEW_OP_ASGN2(r, i, o, val)
#define NEW_MATCH3(r, n2)
static void fixup_nodes(NODE **)
#define STR_NEW3(p, n, e, func)
static const char * magic_comment_marker(const char *str, long len)
#define NEW_OPT_ARG(i, v)
static unsigned int hash(const char *str, unsigned int len)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define IS_LABEL_POSSIBLE()
VALUE rb_ary_new2(long capa)
const char * parser_lex_pbeg
int rb_is_class_id(ID id)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
VALUE rb_parser_new(void)
VALUE rb_const_get_at(VALUE, ID)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define call_uni_op(recv, id)
static int literal_node(NODE *node)
#define set_yylval_node(x)
const char * parser_lex_p
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
#define RE_OPTION_ENCODING_NONE(o)
#define dvar_defined_get(id)
int rb_is_instance_name(VALUE name)
int parser_ruby_sourceline
const char * rb_id2name(ID id)
#define ruby_eval_tree_begin
#define StringValuePtr(v)
#define formal_argument(id)
static int nodeline(NODE *node)
#define dispatch_heredoc_end()
static const yytype_uint8 yyr2[]
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
#define YY_STACK_PRINT(Bottom, Top)
#define NEW_CALL(r, m, a)
static NODE * cond0(struct parser_params *, NODE *)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_is_junk_name(VALUE name)
int rb_enc_find_index(const char *name)
static NODE * splat_array(NODE *)
static struct vtable * vtable_alloc(struct vtable *prev)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e-0x20+31)/32]
#define CONST_ID(var, str)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define attrset(node, id)
#define mixed_error(enc1, enc2)
static ID register_symid(ID, const char *, long, rb_encoding *)
#define NEW_MATCH2(n1, n2)
static const struct vtable * dyna_push_gen(struct parser_params *)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
st_table * st_init_numtable_with_size(st_index_t)
#define shadowing_lvar(name)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
#define reg_fragment_check(str, options)
int rb_parse_in_eval(void)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
ID rb_intern2(const char *name, long len)
#define nd_set_line(n, l)
VALUE rb_vsprintf(const char *, va_list)
NODE * rb_compile_file(const char *f, VALUE file, int start)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
VALUE rb_parser_get_yydebug(VALUE self)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define RTYPEDDATA_TYPE(v)
#define NEW_LASGN(v, val)
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
#define yypact_value_is_default(yystate)
#define ENCODING_SET(obj, i)
int rb_local_defined(ID id)
NODE * parser_eval_tree_begin
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_append(VALUE, VALUE)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
int rb_memcicmp(const void *, const void *, long)
#define block_append(h, t)
static void vtable_free(struct vtable *tbl)
#define rb_enc_prev_char(s, p, e, enc)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
VALUE rb_attr_get(VALUE, ID)
#define tokaddmbc(c, enc)
#define NEW_CDECL(v, val, path)
#define NEW_DEFS(r, i, a, d)
static void ripper_init_eventids2_table(VALUE self)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
static int sym_check_asciionly(VALUE str)
rb_encoding * rb_enc_from_index(int index)
#define aryset(node1, node2)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
#define IS_AFTER_OPERATOR()
VALUE rb_str_new(const char *, long)
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
int rb_is_global_name(VALUE name)
static int parser_tokadd_mbchar(struct parser_params *parser, int c)