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];
5239 NODE *node = (yyvsp[(2) - (2)].
node);
5240 while (node->nd_next) {
5241 node = node->nd_next;
5265 (yyval.
node) = (yyvsp[(1) - (2)].node);
5337 (yyvsp[(4) - (5)].node));
5353 (yyval.
node) = (yyvsp[(1) - (4)].node);
5354 if ((yyvsp[(2) - (4)].node)) {
5355 (yyval.
node) =
NEW_RESCUE((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].
node), (yyvsp[(3) - (4)].node));
5357 else if ((yyvsp[(3) - (4)].node)) {
5358 rb_warn0(
"else without rescue is useless");
5361 if ((yyvsp[(4) - (4)].node)) {
5390 (yyval.
node) = (yyvsp[(1) - (2)].node);
5411 #line 1002 "parse.y"
5424 #line 1010 "parse.y"
5437 #line 1018 "parse.y"
5446 #line 1024 "parse.y"
5448 (yyval.
node) = (yyvsp[(1) - (1)].node);
5455 #line 1028 "parse.y"
5457 yyerror(
"BEGIN is permitted only at toplevel");
5468 #line 1036 "parse.y"
5472 (yyvsp[(4) - (5)].node));
5485 #line 1048 "parse.y"
5492 #line 1049 "parse.y"
5505 #line 1057 "parse.y"
5518 #line 1065 "parse.y"
5523 buf[1] = (char)(yyvsp[(3) - (3)].node)->nd_nth;
5534 #line 1076 "parse.y"
5537 yyerror(
"can't make alias for the number variables");
5549 #line 1086 "parse.y"
5552 (yyval.
node) = (yyvsp[(2) - (2)].node);
5562 #line 1094 "parse.y"
5576 #line 1103 "parse.y"
5590 #line 1112 "parse.y"
5593 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5597 (yyval.
node) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5608 #line 1125 "parse.y"
5611 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5612 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
5615 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5626 #line 1138 "parse.y"
5640 #line 1147 "parse.y"
5643 rb_warn0(
"END in method; use at_exit");
5647 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].node) , 0 ));
5657 #line 1160 "parse.y"
5661 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5662 (yyval.
node) = (yyvsp[(1) - (3)].node);
5672 #line 1170 "parse.y"
5675 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
5682 #line 1175 "parse.y"
5688 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
5689 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
5690 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
5691 (yyvsp[(5) - (6)].
id) = 0;
5693 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
5694 (yyvsp[(5) - (6)].
id) = 1;
5708 #line 1196 "parse.y"
5711 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5718 #line 1201 "parse.y"
5721 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5728 #line 1206 "parse.y"
5743 #line 1216 "parse.y"
5746 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_intern(
"::"), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5753 #line 1221 "parse.y"
5768 #line 1231 "parse.y"
5782 #line 1240 "parse.y"
5785 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5786 (yyval.
node) = (yyvsp[(1) - (3)].node);
5796 #line 1249 "parse.y"
5799 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5800 (yyval.
node) = (yyvsp[(1) - (3)].node);
5810 #line 1261 "parse.y"
5824 #line 1270 "parse.y"
5838 #line 1283 "parse.y"
5851 #line 1291 "parse.y"
5864 #line 1299 "parse.y"
5877 #line 1307 "parse.y"
5890 #line 1318 "parse.y"
5894 (yyval.
node) = (yyvsp[(1) - (1)].node);
5905 #line 1335 "parse.y"
5908 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5919 #line 1346 "parse.y"
5932 #line 1356 "parse.y"
5947 #line 1368 "parse.y"
5960 #line 1378 "parse.y"
5963 (yyval.
node) = (yyvsp[(1) - (2)].node);
5974 #line 1387 "parse.y"
5978 (yyvsp[(1) - (3)].
node)->
nd_args = (yyvsp[(2) - (3)].node);
5979 (yyvsp[(3) - (3)].
node)->
nd_iter = (yyvsp[(1) - (3)].node);
5980 (yyval.
node) = (yyvsp[(3) - (3)].node);
5992 #line 1400 "parse.y"
5995 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
6006 #line 1409 "parse.y"
6010 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
6011 (yyval.
node) = (yyvsp[(5) - (5)].node);
6023 #line 1421 "parse.y"
6026 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
6037 #line 1430 "parse.y"
6041 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
6042 (yyval.
node) = (yyvsp[(5) - (5)].node);
6054 #line 1442 "parse.y"
6068 #line 1451 "parse.y"
6082 #line 1460 "parse.y"
6095 #line 1468 "parse.y"
6108 #line 1476 "parse.y"
6121 #line 1487 "parse.y"
6124 (yyval.
node) = (yyvsp[(2) - (3)].node);
6134 #line 1498 "parse.y"
6147 #line 1508 "parse.y"
6160 #line 1516 "parse.y"
6173 #line 1524 "parse.y"
6186 #line 1532 "parse.y"
6200 #line 1541 "parse.y"
6213 #line 1549 "parse.y"
6227 #line 1558 "parse.y"
6240 #line 1566 "parse.y"
6254 #line 1575 "parse.y"
6267 #line 1583 "parse.y"
6281 #line 1595 "parse.y"
6284 (yyval.
node) = (yyvsp[(2) - (3)].node);
6294 #line 1605 "parse.y"
6307 #line 1613 "parse.y"
6320 #line 1623 "parse.y"
6333 #line 1631 "parse.y"
6346 #line 1641 "parse.y"
6355 #line 1645 "parse.y"
6364 #line 1649 "parse.y"
6367 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6377 #line 1657 "parse.y"
6380 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6390 #line 1665 "parse.y"
6393 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6403 #line 1673 "parse.y"
6406 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6416 #line 1681 "parse.y"
6420 yyerror(
"dynamic constant assignment");
6433 #line 1693 "parse.y"
6437 yyerror(
"dynamic constant assignment");
6448 #line 1703 "parse.y"
6463 #line 1715 "parse.y"
6477 #line 1724 "parse.y"
6491 #line 1733 "parse.y"
6494 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6504 #line 1741 "parse.y"
6507 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6517 #line 1749 "parse.y"
6520 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6530 #line 1757 "parse.y"
6533 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6543 #line 1765 "parse.y"
6547 yyerror(
"dynamic constant assignment");
6561 #line 1778 "parse.y"
6565 yyerror(
"dynamic constant assignment");
6579 #line 1791 "parse.y"
6593 #line 1802 "parse.y"
6596 yyerror(
"class/module name must be CONSTANT");
6606 #line 1813 "parse.y"
6619 #line 1821 "parse.y"
6632 #line 1829 "parse.y"
6645 #line 1842 "parse.y"
6648 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6655 #line 1847 "parse.y"
6659 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6669 #line 1862 "parse.y"
6682 #line 1873 "parse.y"
6695 #line 1880 "parse.y"
6702 #line 1881 "parse.y"
6715 #line 1890 "parse.y"
6722 #line 1891 "parse.y"
6729 #line 1892 "parse.y"
6736 #line 1893 "parse.y"
6743 #line 1894 "parse.y"
6750 #line 1895 "parse.y"
6757 #line 1896 "parse.y"
6764 #line 1897 "parse.y"
6771 #line 1898 "parse.y"
6778 #line 1899 "parse.y"
6785 #line 1900 "parse.y"
6792 #line 1901 "parse.y"
6799 #line 1902 "parse.y"
6806 #line 1903 "parse.y"
6813 #line 1904 "parse.y"
6820 #line 1905 "parse.y"
6827 #line 1906 "parse.y"
6834 #line 1907 "parse.y"
6841 #line 1908 "parse.y"
6848 #line 1909 "parse.y"
6855 #line 1910 "parse.y"
6862 #line 1911 "parse.y"
6869 #line 1912 "parse.y"
6876 #line 1913 "parse.y"
6883 #line 1914 "parse.y"
6890 #line 1915 "parse.y"
6897 #line 1916 "parse.y"
6904 #line 1917 "parse.y"
6911 #line 1918 "parse.y"
6918 #line 1919 "parse.y"
6925 #line 1937 "parse.y"
6939 #line 1946 "parse.y"
6954 #line 1956 "parse.y"
6957 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
6964 #line 1961 "parse.y"
6972 (yyval.
node) =
new_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].node));
6979 #line 1971 "parse.y"
6985 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
6987 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6990 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6992 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
6993 (yyvsp[(5) - (6)].
id) = 0;
6995 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
6996 (yyvsp[(5) - (6)].
id) = 1;
7010 #line 1997 "parse.y"
7013 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
7020 #line 2002 "parse.y"
7023 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
7030 #line 2007 "parse.y"
7033 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_intern(
"::"), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
7040 #line 2012 "parse.y"
7055 #line 2022 "parse.y"
7070 #line 2032 "parse.y"
7086 #line 2043 "parse.y"
7105 #line 2057 "parse.y"
7124 #line 2071 "parse.y"
7137 #line 2079 "parse.y"
7150 #line 2087 "parse.y"
7163 #line 2095 "parse.y"
7176 #line 2103 "parse.y"
7189 #line 2111 "parse.y"
7202 #line 2119 "parse.y"
7216 #line 2128 "parse.y"
7230 #line 2137 "parse.y"
7243 #line 2145 "parse.y"
7256 #line 2153 "parse.y"
7269 #line 2161 "parse.y"
7282 #line 2169 "parse.y"
7295 #line 2177 "parse.y"
7308 #line 2185 "parse.y"
7321 #line 2193 "parse.y"
7334 #line 2201 "parse.y"
7347 #line 2209 "parse.y"
7360 #line 2217 "parse.y"
7373 #line 2225 "parse.y"
7386 #line 2233 "parse.y"
7399 #line 2241 "parse.y"
7415 #line 2252 "parse.y"
7428 #line 2260 "parse.y"
7441 #line 2268 "parse.y"
7454 #line 2276 "parse.y"
7467 #line 2284 "parse.y"
7480 #line 2292 "parse.y"
7493 #line 2300 "parse.y"
7506 #line 2307 "parse.y"
7513 #line 2308 "parse.y"
7528 #line 2318 "parse.y"
7532 (yyval.
node) =
NEW_IF(
cond((yyvsp[(1) - (6)].node)), (yyvsp[(3) - (6)].
node), (yyvsp[(6) - (6)].node));
7543 #line 2328 "parse.y"
7545 (yyval.
node) = (yyvsp[(1) - (1)].node);
7552 #line 2334 "parse.y"
7556 (yyval.
node) = (yyvsp[(1) - (1)].node);
7567 #line 2347 "parse.y"
7569 (yyval.
node) = (yyvsp[(1) - (2)].node);
7576 #line 2351 "parse.y"
7589 #line 2359 "parse.y"
7602 #line 2369 "parse.y"
7605 (yyval.
node) = (yyvsp[(2) - (3)].node);
7615 #line 2385 "parse.y"
7617 (yyval.
node) = (yyvsp[(1) - (2)].node);
7624 #line 2389 "parse.y"
7637 #line 2397 "parse.y"
7650 #line 2407 "parse.y"
7664 #line 2416 "parse.y"
7677 #line 2424 "parse.y"
7692 #line 2434 "parse.y"
7706 #line 2451 "parse.y"
7716 #line 2456 "parse.y"
7720 (yyval.
node) = (yyvsp[(2) - (2)].node);
7727 #line 2464 "parse.y"
7740 #line 2474 "parse.y"
7742 (yyval.
node) = (yyvsp[(2) - (2)].node);
7749 #line 2478 "parse.y"
7758 #line 2484 "parse.y"
7771 #line 2492 "parse.y"
7784 #line 2500 "parse.y"
7788 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7803 #line 2514 "parse.y"
7822 #line 2530 "parse.y"
7826 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7841 #line 2544 "parse.y"
7846 (n1 =
splat_array((yyvsp[(1) - (4)].node))) != 0) {
7861 #line 2559 "parse.y"
7874 #line 2579 "parse.y"
7887 #line 2587 "parse.y"
7901 #line 2597 "parse.y"
7905 if ((yyvsp[(3) - (4)].node) ==
NULL) {
7911 nd_set_line((yyvsp[(3) - (4)].node), (yyvsp[(2) - (4)].num));
7924 #line 2614 "parse.y"
7931 #line 2615 "parse.y"
7944 #line 2622 "parse.y"
7951 #line 2623 "parse.y"
7954 (yyval.
node) = (yyvsp[(2) - (4)].node);
7964 #line 2631 "parse.y"
7967 (yyval.
node) = (yyvsp[(2) - (3)].node);
7977 #line 2639 "parse.y"
7990 #line 2647 "parse.y"
8003 #line 2655 "parse.y"
8006 if ((yyvsp[(2) - (3)].node) == 0) {
8010 (yyval.
node) = (yyvsp[(2) - (3)].node);
8021 #line 2668 "parse.y"
8034 #line 2676 "parse.y"
8047 #line 2684 "parse.y"
8060 #line 2692 "parse.y"
8073 #line 2700 "parse.y"
8086 #line 2707 "parse.y"
8093 #line 2708 "parse.y"
8108 #line 2718 "parse.y"
8121 #line 2726 "parse.y"
8134 #line 2734 "parse.y"
8137 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8138 (yyval.
node) = (yyvsp[(2) - (2)].node);
8149 #line 2745 "parse.y"
8153 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8154 (yyval.
node) = (yyvsp[(2) - (2)].node);
8164 #line 2755 "parse.y"
8166 (yyval.
node) = (yyvsp[(2) - (2)].node);
8173 #line 2762 "parse.y"
8176 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].
node));
8187 #line 2774 "parse.y"
8190 (yyval.
node) =
NEW_UNLESS(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node));
8201 #line 2782 "parse.y"
8208 #line 2782 "parse.y"
8215 #line 2785 "parse.y"
8229 #line 2793 "parse.y"
8236 #line 2793 "parse.y"
8243 #line 2796 "parse.y"
8257 #line 2807 "parse.y"
8271 #line 2816 "parse.y"
8284 #line 2824 "parse.y"
8291 #line 2826 "parse.y"
8298 #line 2829 "parse.y"
8343 m->nd_next = (yyvsp[(2) - (9)].
node);
8352 tbl[0] = 1; tbl[1] =
id;
8353 (yyval.
node) =
NEW_FOR(0, (yyvsp[(5) - (9)].node), scope);
8364 #line 2890 "parse.y"
8367 yyerror(
"class definition in method body");
8379 #line 2901 "parse.y"
8382 (yyval.
node) =
NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(3) - (6)].node));
8394 #line 2911 "parse.y"
8404 #line 2916 "parse.y"
8415 #line 2923 "parse.y"
8432 #line 2935 "parse.y"
8435 yyerror(
"module definition in method body");
8447 #line 2946 "parse.y"
8462 #line 2956 "parse.y"
8474 #line 2965 "parse.y"
8493 #line 2978 "parse.y"
8500 #line 2979 "parse.y"
8511 #line 2987 "parse.y"
8516 (yyval.
node) =
NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].
id), (yyvsp[(7) - (9)].node), body);
8529 #line 3000 "parse.y"
8542 #line 3008 "parse.y"
8555 #line 3016 "parse.y"
8568 #line 3024 "parse.y"
8581 #line 3034 "parse.y"
8585 (yyval.
node) = (yyvsp[(1) - (1)].node);
8596 #line 3046 "parse.y"
8605 #line 3052 "parse.y"
8614 #line 3058 "parse.y"
8623 #line 3064 "parse.y"
8632 #line 3070 "parse.y"
8641 #line 3076 "parse.y"
8650 #line 3082 "parse.y"
8659 #line 3088 "parse.y"
8668 #line 3094 "parse.y"
8677 #line 3100 "parse.y"
8690 #line 3110 "parse.y"
8699 #line 3140 "parse.y"
8702 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (5)].node)), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
8713 #line 3152 "parse.y"
8716 (yyval.
node) = (yyvsp[(2) - (2)].node);
8726 #line 3166 "parse.y"
8739 #line 3174 "parse.y"
8742 (yyval.
node) = (yyvsp[(2) - (3)].node);
8752 #line 3184 "parse.y"
8765 #line 3192 "parse.y"
8778 #line 3202 "parse.y"
8791 #line 3210 "parse.y"
8805 #line 3219 "parse.y"
8819 #line 3228 "parse.y"
8832 #line 3236 "parse.y"
8845 #line 3244 "parse.y"
8859 #line 3253 "parse.y"
8876 #line 3265 "parse.y"
8889 #line 3273 "parse.y"
8902 #line 3284 "parse.y"
8904 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
8911 #line 3288 "parse.y"
8920 #line 3292 "parse.y"
8929 #line 3296 "parse.y"
8938 #line 3302 "parse.y"
8940 (yyval.
node) = (yyvsp[(2) - (2)].node);
8947 #line 3306 "parse.y"
8956 #line 3312 "parse.y"
8958 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
8965 #line 3316 "parse.y"
8967 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
8974 #line 3320 "parse.y"
8983 #line 3324 "parse.y"
8985 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8992 #line 3328 "parse.y"
9001 #line 3332 "parse.y"
9014 #line 3340 "parse.y"
9016 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9023 #line 3344 "parse.y"
9032 #line 3348 "parse.y"
9041 #line 3352 "parse.y"
9043 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9050 #line 3356 "parse.y"
9059 #line 3360 "parse.y"
9068 #line 3364 "parse.y"
9077 #line 3368 "parse.y"
9086 #line 3372 "parse.y"
9095 #line 3379 "parse.y"
9104 #line 3385 "parse.y"
9118 #line 3394 "parse.y"
9132 #line 3403 "parse.y"
9135 (yyval.
node) = (yyvsp[(2) - (4)].node);
9145 #line 3414 "parse.y"
9154 #line 3418 "parse.y"
9167 #line 3444 "parse.y"
9180 #line 3452 "parse.y"
9189 #line 3457 "parse.y"
9198 #line 3460 "parse.y"
9208 #line 3465 "parse.y"
9217 #line 3469 "parse.y"
9233 #line 3482 "parse.y"
9236 (yyval.
node) = (yyvsp[(2) - (4)].node);
9246 #line 3490 "parse.y"
9249 (yyval.
node) = (yyvsp[(1) - (1)].node);
9259 #line 3500 "parse.y"
9261 (yyval.
node) = (yyvsp[(2) - (3)].node);
9268 #line 3504 "parse.y"
9270 (yyval.
node) = (yyvsp[(2) - (3)].node);
9277 #line 3510 "parse.y"
9289 #line 3519 "parse.y"
9304 #line 3531 "parse.y"
9313 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
9314 (yyval.
node) = (yyvsp[(2) - (2)].node);
9325 #line 3547 "parse.y"
9328 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
9339 #line 3556 "parse.y"
9343 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
9344 (yyval.
node) = (yyvsp[(5) - (5)].node);
9356 #line 3568 "parse.y"
9360 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
9361 (yyval.
node) = (yyvsp[(5) - (5)].node);
9373 #line 3582 "parse.y"
9376 (yyval.
node) = (yyvsp[(1) - (2)].node);
9387 #line 3591 "parse.y"
9398 #line 3597 "parse.y"
9401 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
9413 #line 3607 "parse.y"
9424 #line 3613 "parse.y"
9427 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
9439 #line 3623 "parse.y"
9442 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id), 0);
9452 #line 3631 "parse.y"
9463 #line 3637 "parse.y"
9479 #line 3648 "parse.y"
9490 #line 3654 "parse.y"
9506 #line 3665 "parse.y"
9519 #line 3673 "parse.y"
9532 #line 3681 "parse.y"
9535 if ((yyvsp[(1) - (4)].node) &&
nd_type((yyvsp[(1) - (4)].node)) ==
NODE_SELF)
9538 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node),
tAREF, (yyvsp[(3) - (4)].node));
9549 #line 3695 "parse.y"
9562 #line 3704 "parse.y"
9577 #line 3714 "parse.y"
9590 #line 3723 "parse.y"
9605 #line 3737 "parse.y"
9608 (yyval.
node) =
NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
9618 #line 3753 "parse.y"
9621 if ((yyvsp[(3) - (6)].node)) {
9625 (yyval.
node) =
NEW_RESBODY((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(6) - (6)].node));
9640 #line 3773 "parse.y"
9653 #line 3781 "parse.y"
9666 #line 3792 "parse.y"
9668 (yyval.
node) = (yyvsp[(2) - (2)].node);
9675 #line 3799 "parse.y"
9678 (yyval.
node) = (yyvsp[(2) - (2)].node);
9688 #line 3811 "parse.y"
9701 #line 3822 "parse.y"
9704 NODE *node = (yyvsp[(1) - (1)].
node);
9711 (yyval.
node) = node;
9721 #line 3841 "parse.y"
9734 #line 3851 "parse.y"
9737 (yyval.
node) = (yyvsp[(2) - (3)].node);
9747 #line 3861 "parse.y"
9750 NODE *node = (yyvsp[(2) - (3)].
node);
9767 (yyval.
node) = node;
9777 #line 3888 "parse.y"
9781 NODE *node = (yyvsp[(2) - (3)].
node);
9789 VALUE src = node->nd_lit;
9805 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9807 VALUE tail = list->nd_head->nd_lit;
9809 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9815 prev->nd_next = list->nd_next;
9828 if (!node->nd_next) {
9829 VALUE src = node->nd_lit;
9835 (yyval.
node) = node;
9845 #line 3953 "parse.y"
9859 #line 3962 "parse.y"
9862 (yyval.
node) = (yyvsp[(2) - (3)].node);
9872 #line 3972 "parse.y"
9885 #line 3980 "parse.y"
9898 #line 3998 "parse.y"
9911 #line 4008 "parse.y"
9925 #line 4017 "parse.y"
9928 (yyval.
node) = (yyvsp[(2) - (3)].node);
9938 #line 4027 "parse.y"
9951 #line 4035 "parse.y"
9966 #line 4047 "parse.y"
9980 #line 4056 "parse.y"
9983 (yyval.
node) = (yyvsp[(2) - (3)].node);
9993 #line 4066 "parse.y"
10007 #line 4075 "parse.y"
10010 (yyval.
node) = (yyvsp[(2) - (3)].node);
10020 #line 4085 "parse.y"
10033 #line 4093 "parse.y"
10046 #line 4103 "parse.y"
10059 #line 4111 "parse.y"
10076 #line 4125 "parse.y"
10089 #line 4133 "parse.y"
10102 #line 4143 "parse.y"
10115 #line 4151 "parse.y"
10128 #line 4161 "parse.y"
10141 #line 4169 "parse.y"
10144 NODE *
head = (yyvsp[(1) - (2)].
node), *tail = (yyvsp[(2) - (2)].node);
10146 (yyval.
node) = tail;
10149 (yyval.
node) = head;
10173 #line 4199 "parse.y"
10184 #line 4205 "parse.y"
10199 #line 4215 "parse.y"
10211 #line 4221 "parse.y"
10222 #line 4226 "parse.y"
10232 #line 4231 "parse.y"
10239 if ((yyvsp[(5) - (6)].node)) (yyvsp[(5) - (6)].node)->flags &= ~
NODE_FL_NEWLINE;
10250 #line 4246 "parse.y"
10263 #line 4254 "parse.y"
10276 #line 4262 "parse.y"
10289 #line 4273 "parse.y"
10293 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10303 #line 4290 "parse.y"
10317 #line 4303 "parse.y"
10330 #line 4311 "parse.y"
10343 #line 4327 "parse.y"
10350 #line 4328 "parse.y"
10357 #line 4329 "parse.y"
10364 #line 4330 "parse.y"
10371 #line 4331 "parse.y"
10378 #line 4332 "parse.y"
10385 #line 4333 "parse.y"
10392 #line 4337 "parse.y"
10410 #line 4350 "parse.y"
10423 #line 4360 "parse.y"
10436 #line 4368 "parse.y"
10449 #line 4382 "parse.y"
10462 #line 4390 "parse.y"
10472 #line 4395 "parse.y"
10474 (yyval.
node) = (yyvsp[(3) - (4)].node);
10481 #line 4399 "parse.y"
10496 #line 4411 "parse.y"
10499 (yyval.
node) = (yyvsp[(2) - (3)].node);
10511 #line 4421 "parse.y"
10513 (yyval.
node) = (yyvsp[(1) - (2)].node);
10522 #line 4429 "parse.y"
10524 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
10531 #line 4433 "parse.y"
10540 #line 4437 "parse.y"
10549 #line 4441 "parse.y"
10558 #line 4447 "parse.y"
10560 (yyval.
node) = (yyvsp[(2) - (2)].node);
10567 #line 4451 "parse.y"
10576 #line 4457 "parse.y"
10578 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
10585 #line 4461 "parse.y"
10587 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
10594 #line 4465 "parse.y"
10603 #line 4469 "parse.y"
10605 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10612 #line 4473 "parse.y"
10621 #line 4477 "parse.y"
10623 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10630 #line 4481 "parse.y"
10639 #line 4485 "parse.y"
10648 #line 4489 "parse.y"
10650 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10657 #line 4493 "parse.y"
10666 #line 4497 "parse.y"
10675 #line 4501 "parse.y"
10684 #line 4505 "parse.y"
10693 #line 4509 "parse.y"
10702 #line 4513 "parse.y"
10712 #line 4520 "parse.y"
10715 yyerror(
"formal argument cannot be a constant");
10726 #line 4529 "parse.y"
10729 yyerror(
"formal argument cannot be an instance variable");
10740 #line 4538 "parse.y"
10743 yyerror(
"formal argument cannot be a global variable");
10754 #line 4547 "parse.y"
10757 yyerror(
"formal argument cannot be a class variable");
10768 #line 4559 "parse.y"
10771 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10778 #line 4566 "parse.y"
10792 #line 4575 "parse.y"
10814 #line 4601 "parse.y"
10817 (yyval.
node) = (yyvsp[(1) - (3)].node);
10830 #line 4614 "parse.y"
10845 #line 4626 "parse.y"
10860 #line 4638 "parse.y"
10863 (yyval.
node) = (yyvsp[(1) - (1)].node);
10873 #line 4646 "parse.y"
10876 NODE *kws = (yyvsp[(1) - (3)].
node);
10878 while (kws->nd_next) {
10879 kws = kws->nd_next;
10881 kws->nd_next = (yyvsp[(3) - (3)].
node);
10882 (yyval.
node) = (yyvsp[(1) - (3)].node);
10892 #line 4663 "parse.y"
10895 (yyval.
node) = (yyvsp[(1) - (1)].node);
10905 #line 4671 "parse.y"
10908 NODE *kws = (yyvsp[(1) - (3)].
node);
10910 while (kws->nd_next) {
10911 kws = kws->nd_next;
10913 kws->nd_next = (yyvsp[(3) - (3)].
node);
10914 (yyval.
node) = (yyvsp[(1) - (3)].node);
10924 #line 4691 "parse.y"
10927 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10934 #line 4696 "parse.y"
10943 #line 4702 "parse.y"
10958 #line 4714 "parse.y"
10973 #line 4726 "parse.y"
10976 (yyval.
node) = (yyvsp[(1) - (1)].node);
10986 #line 4734 "parse.y"
10989 NODE *opts = (yyvsp[(1) - (3)].
node);
10991 while (opts->nd_next) {
10992 opts = opts->nd_next;
10994 opts->nd_next = (yyvsp[(3) - (3)].
node);
10995 (yyval.
node) = (yyvsp[(1) - (3)].node);
11005 #line 4750 "parse.y"
11008 (yyval.
node) = (yyvsp[(1) - (1)].node);
11018 #line 4758 "parse.y"
11021 NODE *opts = (yyvsp[(1) - (3)].
node);
11023 while (opts->nd_next) {
11024 opts = opts->nd_next;
11026 opts->nd_next = (yyvsp[(3) - (3)].
node);
11027 (yyval.
node) = (yyvsp[(1) - (3)].node);
11037 #line 4778 "parse.y"
11041 yyerror(
"rest argument must be local variable");
11045 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11055 #line 4791 "parse.y"
11069 #line 4806 "parse.y"
11073 yyerror(
"block argument must be local variable");
11075 yyerror(
"duplicated block argument name");
11079 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11089 #line 4823 "parse.y"
11091 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11098 #line 4827 "parse.y"
11111 #line 4837 "parse.y"
11115 (yyval.
node) = (yyvsp[(1) - (1)].node);
11126 #line 4846 "parse.y"
11133 #line 4847 "parse.y"
11136 if ((yyvsp[(3) - (4)].node) == 0) {
11137 yyerror(
"can't define singleton method for ().");
11140 switch (
nd_type((yyvsp[(3) - (4)].node))) {
11149 yyerror(
"can't define singleton method for literals");
11155 (yyval.
node) = (yyvsp[(3) - (4)].node);
11165 #line 4877 "parse.y"
11168 (yyval.
node) = (yyvsp[(1) - (2)].node);
11178 #line 4894 "parse.y"
11191 #line 4904 "parse.y"
11204 #line 4912 "parse.y"
11217 #line 4920 "parse.y"
11230 #line 4978 "parse.y"
11237 #line 4983 "parse.y"
11244 #line 4987 "parse.y"
11257 #line 11256 "parse.c"
11285 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
11286 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
11287 yystate = yytable[yystate];
11306 #if ! YYERROR_VERBOSE
11309 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
11312 char const *yymsgp =
YY_(
"syntax error");
11313 int yysyntax_error_status;
11315 if (yysyntax_error_status == 0)
11317 else if (yysyntax_error_status == 1)
11319 if (yymsg != yymsgbuf)
11325 yymsg_alloc =
sizeof yymsgbuf;
11326 yysyntax_error_status = 2;
11335 if (yysyntax_error_status == 2)
11336 goto yyexhaustedlab;
11338 # undef YYSYNTAX_ERROR
11344 if (yyerrstatus == 3)
11349 if (yychar <=
YYEOF)
11352 if (yychar ==
YYEOF)
11358 yytoken, &yylval, parser);
11396 yyn = yypact[yystate];
11402 yyn = yytable[yyn];
11414 yystos[yystate], yyvsp, parser);
11444 #if !defined(yyoverflow) || YYERROR_VERBOSE
11460 yydestruct (
"Cleanup: discarding lookahead",
11461 yytoken, &yylval, parser);
11467 while (yyssp != yyss)
11470 yystos[*yyssp], yyvsp, parser);
11477 #if YYERROR_VERBOSE
11478 if (yymsg != yymsgbuf)
11482 return YYID (yyresult);
11488 #line 4995 "parse.y"
11493 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
11502 # define nextc() parser_nextc(parser)
11503 # define pushback(c) parser_pushback(parser, (c))
11504 # define newtok() parser_newtok(parser)
11505 # define tokspace(n) parser_tokspace(parser, (n))
11506 # define tokadd(c) parser_tokadd(parser, (c))
11507 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
11508 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
11509 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
11510 # define regx_options() parser_regx_options(parser)
11511 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
11512 # define parse_string(n) parser_parse_string(parser,(n))
11513 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
11514 # define here_document(n) parser_here_document(parser,(n))
11515 # define heredoc_identifier() parser_heredoc_identifier(parser)
11516 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
11517 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
11520 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
11521 # define set_yylval_num(x) (yylval.num = (x))
11522 # define set_yylval_id(x) (yylval.id = (x))
11523 # define set_yylval_name(x) (yylval.id = (x))
11524 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
11525 # define set_yylval_node(x) (yylval.node = (x))
11526 # define yylval_id() (yylval.id)
11528 static inline VALUE
11529 ripper_yylval_id(
ID x)
11533 # define set_yylval_str(x) (void)(x)
11534 # define set_yylval_num(x) (void)(x)
11535 # define set_yylval_id(x) (void)(x)
11536 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
11537 # define set_yylval_literal(x) (void)(x)
11538 # define set_yylval_node(x) (void)(x)
11539 # define yylval_id() yylval.id
11543 #define ripper_flush(p) (void)(p)
11545 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
11547 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
11554 return lex_p > parser->tokp;
11567 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11569 if (!ripper_has_scan_event(parser))
return;
11570 yylval_rval = ripper_scan_event_val(parser, t);
11574 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11576 if (!ripper_has_scan_event(parser))
return;
11577 (void)ripper_scan_event_val(parser, t);
11581 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11584 const char *saved_tokp = parser->tokp;
11587 parser->tokp =
lex_pbeg + parser->delayed_col;
11589 parser->delayed =
Qnil;
11591 parser->tokp = saved_tokp;
11602 #undef SIGN_EXTEND_CHAR
11604 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
11607 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
11610 #define parser_encoding_name() (current_enc->name)
11611 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
11612 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
11613 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
11614 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
11616 #define parser_isascii() ISASCII(*(lex_p-1))
11624 for (p =
lex_pbeg; p < pend; p++) {
11626 column = (((column - 1) / 8) + 1) * 8;
11637 for (p =
lex_pbeg; p < pend; p++) {
11638 if (*p !=
' ' && *p !=
'\t') {
11645 #undef token_info_push
11662 #undef token_info_pop
11669 if (!ptinfo)
return;
11675 if (linenum == ptinfo->
linenum) {
11683 "mismatched indentations at '%s' with '%s' at %d",
11696 const int max_line_margin = 30;
11697 const char *
p, *pe;
11705 if (*p ==
'\n')
break;
11712 if (*pe ==
'\n')
break;
11719 const char *pre =
"", *post =
"";
11721 if (len > max_line_margin * 2 + 10) {
11722 if (
lex_p - p > max_line_margin) {
11726 if (pe -
lex_p > max_line_margin) {
11733 MEMCPY(buf, p,
char, len);
11737 i = (int)(
lex_p - p);
11738 p2 =
buf; pe = buf + len;
11741 if (*p2 !=
'\t') *p2 =
' ';
11749 dispatch1(parse_error,
STR_NEW2(msg));
11761 CONST_ID(script_lines,
"SCRIPT_LINES__");
11778 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11782 RBASIC(lines)->klass = 0;
11784 RARRAY(lines)->as.heap.len = n;
11844 if (parser->
nerr) {
11854 return (
VALUE)tree;
11879 char *beg, *end, *pend;
11889 while (end < pend) {
11890 if (*end++ ==
'\n')
break;
11900 if (
NIL_P(line))
return line;
11999 #define STR_FUNC_ESCAPE 0x01
12000 #define STR_FUNC_EXPAND 0x02
12001 #define STR_FUNC_REGEXP 0x04
12002 #define STR_FUNC_QWORDS 0x08
12003 #define STR_FUNC_SYMBOL 0x10
12004 #define STR_FUNC_INDENT 0x20
12034 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
12035 #define lex_eol_p() (lex_p >= lex_pend)
12036 #define peek(c) peek_n((c), 0)
12037 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
12060 if (
NIL_P(parser->delayed)) {
12064 parser->tokp,
lex_pend - parser->tokp);
12066 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
12070 parser->tokp,
lex_pend - parser->tokp);
12086 c = (
unsigned char)*
lex_p++;
12087 if (c ==
'\r' &&
peek(
'\n')) {
12098 if (c == -1)
return;
12105 #define was_bol() (lex_p == lex_pbeg + 1)
12107 #define tokfix() (tokenbuf[tokidx]='\0')
12108 #define tok() tokenbuf
12109 #define toklen() tokidx
12110 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
12157 yyerror(
"invalid hex escape");
12164 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
12169 int string_literal,
int symbol_literal,
int regexp_literal)
12189 yyerror(
"invalid Unicode escape");
12192 if (codepoint > 0x10ffff) {
12193 yyerror(
"invalid Unicode codepoint (too large)");
12197 if (regexp_literal) {
12200 else if (codepoint >= 0x80) {
12202 if (string_literal)
tokaddmbc(codepoint, *encp);
12204 else if (string_literal) {
12207 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
12210 yyerror(
"unterminated Unicode escape");
12214 if (regexp_literal) {
tokadd(
'}'); }
12220 yyerror(
"invalid Unicode escape");
12224 if (regexp_literal) {
12227 else if (codepoint >= 0x80) {
12229 if (string_literal)
tokaddmbc(codepoint, *encp);
12231 else if (string_literal) {
12239 #define ESCAPE_CONTROL 1
12240 #define ESCAPE_META 2
12249 switch (c =
nextc()) {
12274 case '0':
case '1':
case '2':
case '3':
12275 case '4':
case '5':
case '6':
case '7':
12283 if (numlen == 0)
return 0;
12294 if ((c =
nextc()) !=
'-') {
12298 if ((c =
nextc()) ==
'\\') {
12299 if (
peek(
'u'))
goto eof;
12300 return read_escape(flags|ESCAPE_META, encp) | 0x80;
12302 else if (c == -1 || !
ISASCII(c))
goto eof;
12304 return ((c & 0xff) | 0x80);
12308 if ((c =
nextc()) !=
'-') {
12314 if ((c =
nextc())==
'\\') {
12315 if (
peek(
'u'))
goto eof;
12320 else if (c == -1 || !
ISASCII(c))
goto eof;
12325 yyerror(
"Invalid escape character syntax");
12348 switch (c =
nextc()) {
12352 case '0':
case '1':
case '2':
case '3':
12353 case '4':
case '5':
case '6':
case '7':
12356 if (numlen == 0)
goto eof;
12365 if (numlen == 0)
return -1;
12372 if ((c =
nextc()) !=
'-') {
12382 if ((c =
nextc()) !=
'-') {
12390 if (flags & ESCAPE_CONTROL)
goto eof;
12394 if ((c =
nextc()) ==
'\\') {
12397 else if (c == -1)
goto eof;
12403 yyerror(
"Invalid escape character syntax");
12470 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
12476 case '$':
case '*':
case '+':
case '.':
12477 case '?':
case '^':
case '|':
12478 case ')':
case ']':
case '}':
case '>':
12487 int func,
int term,
int paren,
long *nest,
12491 int has_nonascii = 0;
12494 static const char mixed_msg[] =
"%s mixed within %s source";
12496 #define mixed_error(enc1, enc2) if (!errbuf) { \
12497 size_t len = sizeof(mixed_msg) - 4; \
12498 len += strlen(rb_enc_name(enc1)); \
12499 len += strlen(rb_enc_name(enc2)); \
12500 errbuf = ALLOCA_N(char, len); \
12501 snprintf(errbuf, len, mixed_msg, \
12502 rb_enc_name(enc1), \
12503 rb_enc_name(enc2)); \
12506 #define mixed_escape(beg, enc1, enc2) do { \
12507 const char *pos = lex_p; \
12509 mixed_error((enc1), (enc2)); \
12513 while ((c =
nextc()) != -1) {
12514 if (paren && c == paren) {
12517 else if (c == term) {
12518 if (!nest || !*nest) {
12526 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12531 else if (c ==
'\\') {
12532 const char *beg =
lex_p - 1;
12537 if (func & STR_FUNC_EXPAND)
continue;
12546 if ((func & STR_FUNC_EXPAND) == 0) {
12553 if (has_nonascii && enc != *encp) {
12559 if (c == -1)
return -1;
12561 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12564 if (func & STR_FUNC_REGEXP) {
12572 if (has_nonascii && enc != *encp) {
12577 else if (func & STR_FUNC_EXPAND) {
12579 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12582 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12585 else if (c != term && !(paren && c == paren)) {
12595 if (enc != *encp) {
12608 if (enc != *encp) {
12619 #define NEW_STRTERM(func, term, paren) \
12620 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
12626 if (!
NIL_P(parser->delayed)) {
12627 ptrdiff_t len =
lex_p - parser->tokp;
12632 parser->tokp =
lex_p;
12636 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
12638 #define flush_string_content(enc) ((void)(enc))
12645 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
12646 #define SPECIAL_PUNCT(idx) ( \
12647 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
12648 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
12649 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
12650 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
12651 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
12659 #undef SPECIAL_PUNCT
12665 if (c <= 0x20 || 0x7e < c)
return 0;
12666 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
12673 const char *p =
lex_p;
12679 if ((c = *p) ==
'-') {
12688 if ((c = *p) ==
'@') {
12708 int func = (int)quote->nd_func;
12720 if (c == term && !quote->nd_nest) {
12721 if (func & STR_FUNC_QWORDS) {
12722 quote->nd_func = -1;
12784 while ((c =
nextc()) != -1 && c != term) {
12831 line = here->nd_orig;
12845 const char *eos,
long len,
int indent)
12851 while (*p &&
ISSPACE(*p)) p++;
12854 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
12855 return strncmp(eos, p, len) == 0;
12862 if (!
NIL_P(parser->delayed))
12865 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12868 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
12870 #define dispatch_heredoc_end() ((void)0)
12876 int c,
func, indent = 0;
12877 const char *eos, *
p, *pend;
12886 if ((c =
nextc()) == -1) {
12890 if (
NIL_P(parser->delayed)) {
12895 ((len =
lex_p - parser->tokp) > 0 &&
12896 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
12919 switch (pend[-1]) {
12921 if (--pend == p || pend[-1] !=
'\r') {
12935 if (
nextc() == -1) {
12953 if (parser->
eofp)
goto error;
12963 if ((c =
nextc()) == -1)
goto error;
12980 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
12985 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
12992 yyerror(
"formal argument must be local variable");
13010 if (len > 5 && name[nlen = len - 5] ==
'-') {
13011 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
13014 if (len > 4 && name[nlen = len - 4] ==
'-') {
13017 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
13018 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
13033 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
13050 for (i = 0; i < n; ++
i) {
13088 case 't':
case 'T':
13094 case 'f':
case 'F':
13117 static const char *
13125 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13126 return str + i + 1;
13131 if (i + 1 >= len)
return 0;
13132 if (str[i+1] !=
'-') {
13135 else if (str[i-1] !=
'-') {
13139 return str + i + 2;
13154 const char *beg, *end, *vbeg, *vend;
13155 #define str_copy(_s, _p, _n) ((_s) \
13156 ? (void)(rb_str_resize((_s), (_n)), \
13157 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
13158 : (void)((_s) = STR_NEW((_p), (_n))))
13160 if (len <= 7)
return FALSE;
13164 len = end - beg - 3;
13175 for (; len > 0 && *str; str++, --len) {
13177 case '\'':
case '"':
case ':':
case ';':
13182 for (beg = str; len > 0; str++, --len) {
13184 case '\'':
case '"':
case ':':
case ';':
13192 for (end = str; len > 0 &&
ISSPACE(*str); str++, --len);
13194 if (*str !=
':')
continue;
13196 do str++;
while (--len > 0 &&
ISSPACE(*str));
13199 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13200 if (*str ==
'\\') {
13212 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --len, str++);
13215 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13220 for (i = 0; i < n; ++
i) {
13221 if (s[i] ==
'-') s[
i] =
'_';
13228 n = (*p->
length)(parser, vbeg, n);
13234 }
while (++p < magic_comments +
numberof(magic_comments));
13248 const char *beg = str;
13252 if (send - str <= 6)
return;
13254 case 'C':
case 'c': str += 6;
continue;
13255 case 'O':
case 'o': str += 5;
continue;
13256 case 'D':
case 'd': str += 4;
continue;
13257 case 'I':
case 'i': str += 3;
continue;
13258 case 'N':
case 'n': str += 2;
continue;
13259 case 'G':
case 'g': str += 1;
continue;
13260 case '=':
case ':':
13273 if (++str >= send)
return;
13276 if (*str !=
'=' && *str !=
':')
return;
13281 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13297 (
unsigned char)
lex_p[0] == 0xbb &&
13298 (
unsigned char)
lex_p[1] == 0xbf) {
13312 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
13313 #define IS_END() IS_lex_state(EXPR_END_ANY)
13314 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY)
13315 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
13316 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
13317 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
13318 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
13321 #define ambiguous_operator(op, syn) ( \
13322 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
13323 rb_warning0("even though it seems like "syn""))
13325 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
13327 #define warn_balanced(op, syn) ((void) \
13328 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
13329 space_seen && !ISSPACE(c) && \
13330 (ambiguous_operator(op, syn), 0)))
13336 int space_seen = 0;
13342 int fallthru =
FALSE;
13368 switch (c =
nextc()) {
13376 case ' ':
case '\t':
case '\f':
case '\r':
13380 while ((c =
nextc())) {
13382 case ' ':
case '\t':
case '\f':
case '\r':
13391 ripper_dispatch_scan_event(parser,
tSP);
13404 ripper_dispatch_scan_event(parser,
tCOMMENT);
13409 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT)) {
13418 while ((c =
nextc())) {
13420 case ' ':
case '\t':
case '\f':
case '\r':
13425 if ((c =
nextc()) !=
'.') {
13438 parser->tokp =
lex_p;
13441 goto normal_newline;
13450 if ((c =
nextc()) ==
'*') {
13451 if ((c =
nextc()) ==
'=') {
13458 rb_warning0(
"`**' interpreted as argument prefix");
13477 rb_warning0(
"`*' interpreted as argument prefix");
13516 int first_p =
TRUE;
13525 ripper_dispatch_scan_event(parser,
tEMBDOC);
13534 if (c !=
'=')
continue;
13535 if (strncmp(
lex_p,
"end", 3) == 0 &&
13549 if ((c =
nextc()) ==
'=') {
13550 if ((c =
nextc()) ==
'=') {
13559 else if (c ==
'>') {
13571 (!
IS_ARG() || space_seen)) {
13573 if (token)
return token;
13584 if ((c =
nextc()) ==
'>') {
13591 if ((c =
nextc()) ==
'=') {
13605 if ((c =
nextc()) ==
'=') {
13609 if ((c =
nextc()) ==
'=') {
13677 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13694 else if (c ==
'\\') {
13723 if ((c =
nextc()) ==
'&') {
13725 if ((c =
nextc()) ==
'=') {
13733 else if (c ==
'=') {
13740 rb_warning0(
"`&' interpreted as argument prefix");
13754 if ((c =
nextc()) ==
'|') {
13756 if ((c =
nextc()) ==
'=') {
13836 if ((c =
nextc()) ==
'.') {
13837 if ((c =
nextc()) ==
'.') {
13845 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13851 case '0':
case '1':
case '2':
case '3':
case '4':
13852 case '5':
case '6':
case '7':
case '8':
case '9':
13854 int is_float, seen_point, seen_e, nondigit;
13856 is_float = seen_point = seen_e = nondigit = 0;
13859 if (c ==
'-' || c ==
'+') {
13864 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
13867 if (c ==
'x' || c ==
'X') {
13873 if (nondigit)
break;
13880 }
while ((c =
nextc()) != -1);
13884 if (
toklen() == start) {
13887 else if (nondigit)
goto trailing_uc;
13891 if (c ==
'b' || c ==
'B') {
13894 if (c ==
'0' || c ==
'1') {
13897 if (nondigit)
break;
13901 if (c !=
'0' && c !=
'1')
break;
13904 }
while ((c =
nextc()) != -1);
13908 if (
toklen() == start) {
13911 else if (nondigit)
goto trailing_uc;
13915 if (c ==
'd' || c ==
'D') {
13921 if (nondigit)
break;
13928 }
while ((c =
nextc()) != -1);
13932 if (
toklen() == start) {
13935 else if (nondigit)
goto trailing_uc;
13943 if (c ==
'o' || c ==
'O') {
13946 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13950 if (c >=
'0' && c <=
'7') {
13955 if (nondigit)
break;
13959 if (c < '0' || c >
'9')
break;
13960 if (c >
'7')
goto invalid_octal;
13963 }
while ((c =
nextc()) != -1);
13967 if (nondigit)
goto trailing_uc;
13976 if (c >
'7' && c <=
'9') {
13978 yyerror(
"Invalid octal digit");
13980 else if (c ==
'.' || c ==
'e' || c ==
'E') {
13992 case '0':
case '1':
case '2':
case '3':
case '4':
13993 case '5':
case '6':
case '7':
case '8':
case '9':
13999 if (nondigit)
goto trailing_uc;
14000 if (seen_point || seen_e) {
14005 if (c0 == -1 || !
ISDIGIT(c0)) {
14033 if (c !=
'-' && c !=
'+')
continue;
14039 if (nondigit)
goto decode_num;
14054 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14060 if (
errno == ERANGE) {
14121 if ((c =
nextc()) ==
'=') {
14137 if ((c =
nextc()) ==
'=') {
14157 if ((c =
nextc()) !=
'@') {
14184 if ((c =
nextc()) ==
']') {
14185 if ((c =
nextc()) ==
'=') {
14197 else if (
IS_ARG() && space_seen) {
14232 ripper_dispatch_scan_event(parser,
tSP);
14246 if (c == -1 || !
ISALNUM(c)) {
14253 yyerror(
"unknown type of %string");
14257 if (c == -1 || term == -1) {
14262 if (term ==
'(') term =
')';
14263 else if (term ==
'[') term =
']';
14264 else if (term ==
'{') term =
'}';
14265 else if (term ==
'<') term =
'>';
14315 yyerror(
"unknown type of %string");
14319 if ((c =
nextc()) ==
'=') {
14396 case '1':
case '2':
case '3':
14397 case '4':
case '5':
case '6':
14398 case '7':
case '8':
case '9':
14403 }
while (c != -1 &&
ISDIGIT(c));
14449 ripper_dispatch_scan_event(parser,
k__END__);
14472 switch (
tok()[0]) {
14473 case '@':
case '$':
14477 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14490 switch (
tok()[0]) {
14497 if (
tok()[1] ==
'@')
14543 if (state == EXPR_FNAME) {
14557 if (
CMDARG_P() && state != EXPR_CMDARG)
14559 if (state & (EXPR_BEG | EXPR_ENDARG))
14563 if (state & (EXPR_BEG | EXPR_VALUE))
14566 if (kw->
id[0] != kw->
id[1])
14617 if (!
NIL_P(parser->delayed)) {
14618 ripper_dispatch_delayed_token(parser, t);
14622 ripper_dispatch_scan_event(parser, t);
14664 if (orig == (
NODE*)1)
return;
14673 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
14680 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
14687 if (tail == 0)
return head;
14689 if (h == 0)
return tail;
14728 tail->nd_end =
tail;
14730 end->nd_next =
tail;
14731 h->nd_end = tail->nd_end;
14741 if (list == 0)
return NEW_LIST(item);
14742 if (list->nd_next) {
14743 last = list->nd_next->nd_end;
14749 list->nd_alen += 1;
14751 list->nd_next->nd_end = last->nd_next;
14761 if (head->nd_next) {
14762 last = head->nd_next->nd_end;
14768 head->nd_alen += tail->nd_alen;
14769 last->nd_next =
tail;
14770 if (tail->nd_next) {
14771 head->nd_next->nd_end = tail->nd_next->nd_end;
14774 head->nd_next->nd_end =
tail;
14783 if (
NIL_P(tail))
return 1;
14804 if (!head)
return tail;
14805 if (!tail)
return head;
14815 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14818 lit = headlast->nd_lit;
14821 lit = head->nd_lit;
14841 tail->nd_lit = head->nd_lit;
14845 else if (
NIL_P(tail->nd_lit)) {
14847 head->nd_alen += tail->nd_alen - 1;
14848 head->nd_next->nd_end->nd_next = tail->nd_next;
14849 head->nd_next->nd_end = tail->nd_next->nd_end;
14852 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14854 lit = headlast->nd_lit;
14857 tail->nd_lit =
Qnil;
14862 tail->nd_head =
NEW_STR(tail->nd_lit);
15009 static const char *
15012 static const char names[][12] = {
15013 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15014 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15019 return names[
ffs(state)];
15034 # define assignable_result(x) get_value(lhs)
15035 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
15037 # define assignable_result(x) (x)
15042 yyerror(
"Can't change the value of self");
15045 yyerror(
"Can't assign to nil");
15048 yyerror(
"Can't assign to true");
15051 yyerror(
"Can't assign to false");
15054 yyerror(
"Can't assign to __FILE__");
15057 yyerror(
"Can't assign to __LINE__");
15060 yyerror(
"Can't assign to __ENCODING__");
15094 yyerror(
"dynamic constant assignment");
15103 #undef assignable_result
15104 #undef parser_yyerror
15111 if (name == idUScore)
return 1;
15118 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
15126 yyerror(
"duplicated argument name");
15138 yyerror(
"duplicated argument name");
15177 id &= ~ID_SCOPE_MASK;
15206 if (!node2)
return node1;
15209 if (node1->nd_head)
15210 node1->nd_head =
arg_concat(node1->nd_head, node2);
15222 node1->nd_body =
list_concat(node1->nd_body, node2);
15231 if (!node1)
return NEW_LIST(node2);
15236 node1->nd_head =
arg_append(node1->nd_head, node2);
15257 if (!lhs)
return 0;
15269 lhs->nd_value = rhs;
15274 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
15305 if (!cond)
yyerror(
"void value expression");
15310 while (node->nd_next) {
15311 node = node->nd_next;
15313 node = node->nd_head;
15317 node = node->nd_body;
15321 if (!node->nd_body) {
15322 node = node->nd_else;
15325 else if (!node->nd_else) {
15326 node = node->nd_body;
15330 node = node->nd_else;
15336 node = node->nd_2nd;
15350 const char *useless = 0;
15357 switch (node->nd_mid) {
15388 useless =
"a variable";
15391 useless =
"a constant";
15398 useless =
"a literal";
15423 useless =
"defined?";
15431 rb_warnS(
"possibly useless use of %s in void context", useless);
15444 if (!node->nd_next)
return;
15446 node = node->nd_next;
15453 NODE **n = &node, *n1 = node;
15455 *n = n1 = n1->nd_body;
15463 NODE *node = *body;
15469 #define subnodes(n1, n2) \
15470 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
15471 (!node->n2) ? (body = &node->n1, 1) : \
15472 (reduce_nodes(&node->n1), body = &node->n2, 1))
15482 *body = node = node->nd_stts;
15486 *body = node = node->nd_body;
15490 body = &node->nd_end->nd_head;
15496 body = &node->nd_body;
15505 if (node->nd_else) {
15506 body = &node->nd_resq;
15524 if (!node)
return 1;
15527 if (!(node = node->nd_head))
break;
15531 }
while ((node = node->nd_next) != 0);
15550 yyerror(
"multiple assignment in conditional");
15564 if (!node->nd_value)
return 1;
15567 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15589 for (node = *rootnode; node; node = next) {
15593 next = node->nd_next;
15594 head = node->nd_head;
15597 switch (type =
nd_type(head)) {
15600 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
15605 head->nd_lit =
val;
15620 if (node == 0)
return 0;
15628 return cond0(parser, node);
15634 if (!node)
return 1;
15655 if (node == 0)
return 0;
15662 rb_warn0(
"string literal in condition");
15672 node->nd_1st =
cond0(parser, node->nd_1st);
15673 node->nd_2nd =
cond0(parser, node->nd_2nd);
15678 node->nd_beg =
range_op(parser, node->nd_beg);
15679 node->nd_end =
range_op(parser, node->nd_end);
15712 if (node == 0)
return 0;
15713 return cond0(parser, node);
15721 NODE *node = left, *second;
15722 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
15725 node->nd_2nd =
NEW_NODE(type, second, right, 0);
15728 return NEW_NODE(type, left, right, 0);
15745 if (node->nd_next == 0) {
15746 node = node->nd_head;
15767 switch (
TYPE(node->nd_lit)) {
15796 node2->nd_head = node1;
15810 args->
pre_init = m ? m->nd_next : 0;
15864 lit = node->nd_lit;
15883 ID vid = lhs->nd_vid;
15885 lhs->nd_value = rhs;
15888 asgn->nd_aid = vid;
15891 else if (op ==
tANDOP) {
15892 lhs->nd_value = rhs;
15914 else if (op ==
tANDOP) {
15930 else if (op ==
tANDOP) {
15946 return dispatch3(opassign, lhs, op, rhs);
15952 VALUE recv = dispatch3(field, lhs, type, attr);
15953 return dispatch3(opassign, recv, op, rhs);
15963 if (!local->
used)
return;
15967 if (cnt != local->
vars->
pos) {
15968 rb_bug(
"local->used->pos != local->vars->pos");
15970 for (i = 0; i <
cnt; ++
i) {
15971 if (!v[i] || (u[i] &
LVAR_USED))
continue;
15986 local->
used = !(inherit_dvars &&
16014 for (i = 0; i <
cnt; i++) {
16015 buf[
i] = src->
tbl[
i];
16028 if (cnt <= 0)
return 0;
16059 vars =
lvtbl->vars;
16060 args =
lvtbl->args;
16061 used =
lvtbl->used;
16066 if (used) used = used->
prev;
16082 static const struct vtable *
16090 return lvtbl->args;
16098 if ((tmp =
lvtbl->used) != 0) {
16114 while (
lvtbl->args != lvargs) {
16116 if (!
lvtbl->args) {
16137 args =
lvtbl->args;
16138 vars =
lvtbl->vars;
16139 used =
lvtbl->used;
16152 if (used) used = used->
prev;
16205 "regexp encoding option '%c' differs from source encoding '%s'",
16234 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
16239 long len = name_end -
name;
16240 const char *s = (
const char *)name;
16257 rb_warningS(
"named capture conflicts a local variable - %s",
16337 NODE *scope = node;
16340 if (!node)
return node;
16344 node = node->nd_body;
16348 node = node->nd_body;
16355 prelude->nd_body = node;
16356 scope->nd_body = prelude;
16359 scope->nd_body = node;
16369 NODE *scope = node;
16372 if (!node)
return node;
16376 node = node->nd_body;
16380 node = node->nd_body;
16396 prelude->nd_body = node;
16397 scope->nd_body = prelude;
16400 scope->nd_body = node;
16406 static const struct {
16431 #define op_tbl_count numberof(op_tbl)
16433 #ifndef ENABLE_SELECTOR_NAMESPACE
16434 #define ENABLE_SELECTOR_NAMESPACE 0
16441 #if ENABLE_SELECTOR_NAMESPACE
16453 #if ENABLE_SELECTOR_NAMESPACE
16460 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
16462 if (key1->id == key2->id && key1->klass == key2->klass) {
16469 ivar2_hash(
struct ivar2_key *
key)
16471 return (key->id << 8) ^ (key->klass >> 2);
16485 #if ENABLE_SELECTOR_NAMESPACE
16493 (void)lex_state_name(-1);
16522 if (m >= e)
return 0;
16526 else if (*m ==
'-') {
16540 return m == e ? mb + 1 : 0;
16558 const char *m =
name;
16559 const char *e = m + len;
16562 if (!m || len <= 0)
return -1;
16582 case '<': ++m;
break;
16583 case '=':
if (*++m ==
'>') ++m;
break;
16590 case '>':
case '=': ++m;
break;
16596 case '~': ++m;
break;
16597 case '=':
if (*++m ==
'=') ++m;
break;
16598 default:
return -1;
16603 if (*++m ==
'*') ++m;
16606 case '+':
case '-':
16607 if (*++m ==
'@') ++m;
16610 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16615 if (*++m !=
']')
return -1;
16616 if (*++m ==
'=') ++m;
16620 if (len == 1)
return ID_JUNK;
16622 case '=':
case '~': ++m;
break;
16623 default:
return -1;
16634 case '!':
case '?':
16647 return m == e ? type : -1;
16711 fake_str.
as.
heap.ptr = (
char *)name;
16713 str = (
VALUE)&fake_str;
16727 const char *
name, *m, *e;
16775 if (*
op_tbl[i].name == *m &&
16776 strcmp(
op_tbl[i].name, m) == 0) {
16783 if (m[last] ==
'=') {
16811 if (m - name < len)
id =
ID_JUNK;
16865 name[0] = (char)
id;
16888 if (
RBASIC(str)->klass == 0)
16899 id2 = (
id & ~ID_SCOPE_MASK) |
ID_CONST;
16906 if (
RBASIC(str)->klass == 0)
16919 if (!str)
return 0;
17013 VALUE name = *namep;
17064 fake_str.
as.
heap.ptr = (
char *)ptr;
17074 fake_str.
as.
heap.len = len - 1;
17172 parser->parser_ruby_sourcefile_string =
Qnil;
17173 parser->delayed =
Qnil;
17175 parser->result =
Qnil;
17176 parser->parsing_thread =
Qnil;
17177 parser->toplevel_p =
TRUE;
17186 #define parser_mark ripper_parser_mark
17187 #define parser_free ripper_parser_free
17205 rb_gc_mark(p->parser_ruby_sourcefile_string);
17227 prev = local->
prev;
17241 size_t size =
sizeof(*p);
17243 if (!ptr)
return 0;
17246 size +=
sizeof(*local);
17271 #undef rb_reserved_word
17355 yydebug =
RTEST(flag);
17360 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
17361 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
17362 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
17363 (n)->u3.cnt = (c), (p))
17380 void *ptr =
xcalloc(nelem, size);
17391 if (ptr && (n = parser->
heap) !=
NULL) {
17393 if (n->
u1.
node == ptr) {
17410 while ((n = *prev) !=
NULL) {
17411 if (n->u1.node == ptr) {
17424 #ifdef RIPPER_DEBUG
17425 extern int rb_is_pointer_to_heap(
VALUE);
17431 if (x ==
Qfalse)
return x;
17432 if (x ==
Qtrue)
return x;
17433 if (x ==
Qnil)
return x;
17438 if (!rb_is_pointer_to_heap(x))
17451 return ((
NODE *)x)->nd_rval;
17460 #define validate(x) ((x) = get_value(x))
17472 return rb_funcall(parser->value, mid, 1, a);
17480 return rb_funcall(parser->value, mid, 2, a, b);
17489 return rb_funcall(parser->value, mid, 3, a, b, c);
17499 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17510 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17523 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
17526 static const struct kw_assoc {
17529 } keyword_to_name[] = {
17582 keyword_id_to_str(
ID id)
17584 const struct kw_assoc *a;
17586 for (a = keyword_to_name; a->id; a++) {
17593 #undef ripper_id2sym
17595 ripper_id2sym(
ID id)
17605 if ((name = keyword_id_to_str(
id))) {
17618 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
17636 ripper_get_value(
VALUE v)
17643 return nd->nd_rval;
17647 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17652 va_start(args, fmt);
17659 ripper_warn0(
struct parser_params *parser,
const char *fmt)
17665 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
17672 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
17679 ripper_warning0(
struct parser_params *parser,
const char *fmt)
17685 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
17698 ripper_s_allocate(
VALUE klass)
17710 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
17726 VALUE src, fname, lineno;
17729 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
17739 if (
NIL_P(fname)) {
17747 parser->parser_ruby_sourcefile_string = fname;
17754 struct ripper_args {
17761 ripper_parse0(
VALUE parser_v)
17767 ripper_yyparse((
void*)parser);
17768 return parser->result;
17772 ripper_ensure(
VALUE parser_v)
17777 parser->parsing_thread =
Qnil;
17788 ripper_parse(
VALUE self)
17793 if (!ripper_initialized_p(parser)) {
17796 if (!
NIL_P(parser->parsing_thread)) {
17803 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17805 return parser->result;
17816 ripper_column(
VALUE self)
17822 if (!ripper_initialized_p(parser)) {
17825 if (
NIL_P(parser->parsing_thread))
return Qnil;
17837 ripper_filename(
VALUE self)
17842 if (!ripper_initialized_p(parser)) {
17845 return parser->parser_ruby_sourcefile_string;
17856 ripper_lineno(
VALUE self)
17861 if (!ripper_initialized_p(parser)) {
17864 if (
NIL_P(parser->parsing_thread))
return Qnil;
17868 #ifdef RIPPER_DEBUG
17904 InitVM_ripper(
void)
17920 #ifdef RIPPER_DEBUG
#define STRNCASECMP(s1, s2, n)
RUBY_EXTERN VALUE rb_cString
void rb_define_global_const(const char *, VALUE)
char * parser_ruby_sourcefile
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
struct local_vars * parser_lvtbl
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
static ID internal_id_gen(struct parser_params *)
int rb_enc_codelen(int c, rb_encoding *enc)
#define NEW_OP_ASGN_AND(i, val)
#define YY_REDUCE_PRINT(Rule)
#define shadowing_lvar(name)
#define MBCLEN_CHARFOUND_P(ret)
static void arg_ambiguous_gen(struct parser_params *parser)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define RE_OPTION_ENCODING_IDX(o)
#define NEW_OP_ASGN1(p, id, a)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
static void Init_id(void)
void rb_bug(const char *fmt,...)
#define mixed_escape(beg, enc1, enc2)
static const yytype_uint8 yyr2[]
int rb_is_local_name(VALUE name)
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
void rb_enc_copy(VALUE obj1, VALUE obj2)
static const struct kwtable * reserved_word(const char *, unsigned int)
int rb_is_class_name(VALUE name)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
int rb_is_attrset_name(VALUE name)
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
static NODE * negate_lit(NODE *)
#define dispatch_heredoc_end()
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
int parser_ruby__end__seen
static void local_push_gen(struct parser_params *, int)
static int vtable_size(const struct vtable *tbl)
#define formal_argument(id)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
VALUE rb_range_new(VALUE, VALUE, int)
#define YY_STACK_PRINT(Bottom, Top)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
ID rb_check_id(volatile VALUE *namep)
Returns ID for the given name if it is interned already, or 0.
static NODE * evstr2dstr_gen(struct parser_params *, NODE *)
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
static int nodeline(NODE *node)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
static NODE * arg_blk_pass(NODE *, NODE *)
#define IS_LABEL_POSSIBLE()
#define is_asgn_or_id(id)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
int parser_compile_for_eval
int parser_token_info_enabled
#define parser_precise_mbclen()
static ID formal_argument_gen(struct parser_params *, ID)
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
static ID register_symid(ID, const char *, long, rb_encoding *)
unsigned short int yytype_uint16
VALUE rb_str_cat(VALUE, const char *, long)
ID rb_intern_str(VALUE str)
VALUE rb_reg_check_preprocess(VALUE)
#define RE_OPTION_ENCODING(e)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
static ID * vtable_tblcpy(ID *buf, const struct vtable *src)
#define set_yylval_str(x)
static const yytype_uint16 yyr1[]
#define set_yylval_literal(x)
#define TypedData_Wrap_Struct(klass, data_type, sval)
#define yytable_value_is_error(yytable_value)
#define ADD2HEAP(n, c, p)
VALUE rb_parser_encoding(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
#define literal_concat(h, t)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
stack_type parser_cmdarg_stack
VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *)
static int lvar_defined_gen(struct parser_params *, ID)
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
int rb_is_method_name(VALUE name)
static ID * local_tbl_gen(struct parser_params *)
VALUE rb_ary_push(VALUE ary, VALUE item)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define NEW_CLASS(n, b, s)
SSL_METHOD *(* func)(void)
NODE * rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
static int parser_yylex(struct parser_params *parser)
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
#define new_args_tail(k, kr, b)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
VALUE op_sym[tLAST_OP_ID]
int rb_is_junk_name(VALUE name)
static int parser_regx_options(struct parser_params *)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
struct RString::@73::@74 heap
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
static NODE * newline_node(NODE *)
int rb_enc_str_coderange(VALUE)
static void ripper_init_eventids1_table(VALUE self)
void rb_raise(VALUE exc, const char *fmt,...)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static const yytype_uint16 yyprhs[]
#define RSTRING_GETMEM(str, ptrvar, lenvar)
#define block_dup_check(n1, n2)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
const rb_data_type_t * parent
void rb_compile_warn(const char *file, int line, const char *fmt,...)
#define attrset(node, id)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
#define new_const_op_assign(lhs, op, rhs)
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
st_index_t rb_str_hash(VALUE)
#define nd_set_type(n, t)
static size_t parser_memsize(const void *ptr)
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
static void fixpos(NODE *, NODE *)
void rb_gc_mark(VALUE ptr)
static NODE * gettable_gen(struct parser_params *, ID)
#define rb_enc_islower(c, enc)
static struct symbols global_symbols
static NODE * cond0(struct parser_params *, NODE *)
void rb_gc_mark_parser(void)
#define reg_compile(str, options)
static int local_var_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
#define NEW_IASGN(v, val)
rb_encoding * rb_utf8_encoding(void)
static int dvar_defined_gen(struct parser_params *, ID, int)
static NODE * new_yield_gen(struct parser_params *, NODE *)
#define RE_OPTION_ENCODING_NONE(o)
static char * parser_tokspace(struct parser_params *parser, int n)
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
#define tokadd_string(f, t, p, n, e)
VALUE rb_str_buf_append(VALUE, VALUE)
#define is_identchar(p, e, enc)
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
static NODE * remove_begin(NODE *)
static int is_global_name_punct(const char c)
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
void rb_gc_force_recycle(VALUE p)
static const yytype_int16 yytable[]
NODE * parser_deferred_nodes
VALUE rb_str_buf_cat(VALUE, const char *, long)
static int dyna_in_block_gen(struct parser_params *)
static const rb_data_type_t parser_data_type
#define logop(type, node1, node2)
static rb_encoding * must_be_ascii_compatible(VALUE s)
static void dyna_pop_1(struct parser_params *parser)
void rb_exc_raise(VALUE mesg)
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
#define parser_warn(node, mesg)
#define RUBY_DTRACE_PARSE_END(arg0, arg1)
#define RB_TYPE_P(obj, type)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
int st_lookup(st_table *, st_data_t, st_data_t *)
#define NEW_ATTRASGN(r, m, a)
#define MEMZERO(p, type, n)
int rb_is_instance_name(VALUE name)
static VALUE coverage(const char *f, int n)
static void parser_free(void *ptr)
enum lex_state_e parser_lex_state
int rb_is_local_id(ID id)
VALUE parser_lex_lastline
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
static void parser_initialize(struct parser_params *parser)
#define scan_hex(s, l, e)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define lex_goto_eol(parser)
void rb_compile_error_append(const char *fmt,...)
VALUE rb_parser_get_yydebug(VALUE self)
#define NEW_PRELUDE(p, b)
RUBY_EXTERN VALUE rb_cObject
#define match_op(node1, node2)
static enum node_type nodetype(NODE *node)
#define NEW_STRTERM(func, term, paren)
static const struct magic_comment magic_comments[]
#define rb_enc_isascii(c, enc)
#define reg_named_capture_assign(regexp, match)
struct parser_params * parser
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
char * ruby_strdup(const char *)
VALUE rb_get_coverages(void)
static int e_option_supplied(struct parser_params *parser)
static struct vtable * vtable_alloc(struct vtable *prev)
#define token_info_push(token)
VALUE rb_obj_as_string(VALUE)
int rb_ascii8bit_encindex(void)
#define NEW_ARGSPUSH(a, b)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
static const yytype_uint16 yyrline[]
#define NEW_UNLESS(c, t, e)
RUBY_EXTERN VALUE rb_mKernel
VALUE rb_thread_current(void)
void st_add_direct(st_table *, st_data_t, st_data_t)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
int rb_is_attrset_id(ID id)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
NODE * rb_compile_string(const char *f, VALUE s, int line)
void rb_define_const(VALUE, const char *, VALUE)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
rb_atomic_t cnt[RUBY_NSIG]
static void no_blockarg(struct parser_params *parser, NODE *node)
static NODE * splat_array(NODE *)
static void parser_mark(void *ptr)
static void parser_tokadd(struct parser_params *parser, int c)
static YYSIZE_T yystrlen(char *yystr) const
static void ripper_init_eventids1(void)
static int sym_check_asciionly(VALUE str)
static ID intern_str(VALUE str)
char ary[RSTRING_EMBED_LEN_MAX+1]
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
#define ALLOCA_N(type, n)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define warn_balanced(op, syn)
#define NEW_OP_CDECL(v, op, val)
#define ENC_CODERANGE_UNKNOWN
static void void_expr_gen(struct parser_params *, NODE *)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
#define ENC_CODERANGE_BROKEN
#define rb_enc_isupper(c, enc)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_parse_in_main(void)
#define IS_AFTER_OPERATOR()
const char * parser_lex_pend
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
#define set_yylval_num(x)
#define parser_encoding_name()
token_info * parser_token_info
#define new_op_assign(lhs, op, rhs)
VALUE rb_make_backtrace(void)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
#define NEW_WHEN(c, t, e)
static const yytype_int16 yycheck[]
VALUE rb_str_resize(VALUE, long)
static int literal_node(NODE *node)
static int dvar_curr_gen(struct parser_params *, ID)
static int rb_str_symname_type(VALUE name)
static int rb_enc_symname_type(const char *name, long len, rb_encoding *enc)
#define NEW_DASGN(v, val)
#define flush_string_content(enc)
int rb_str_hash_cmp(VALUE, VALUE)
#define NEW_BLOCK_PASS(b)
int rb_dvar_defined(ID id)
static int parser_yyerror(struct parser_params *, const char *)
#define RUBY_DTRACE_PARSE_END_ENABLED()
#define REALLOC_N(var, type, n)
static const yytype_int16 yypgoto[]
static int parser_tokadd_mbchar(struct parser_params *parser, int c)
void rb_gc_mark_symbols(void)
int rb_symname_p(const char *name)
VALUE rb_sprintf(const char *format,...)
static VALUE debug_lines(const char *f)
#define NEW_OP_ASGN_OR(i, val)
static void yydestruct(char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
#define rb_enc_isspace(c, enc)
#define parser_warning(node, mesg)
#define mixed_error(enc1, enc2)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e-0x20+31)/32]
#define reg_fragment_setenc(str, options)
static int value_expr_gen(struct parser_params *, NODE *)
static const yytype_int16 yyrhs[]
const char * rb_id2name(ID id)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define NEW_RESCUE(b, res, e)
static const char * magic_comment_marker(const char *str, long len)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static const yytype_uint8 yytranslate[]
unsigned char buf[MIME_BUF_SIZE]
static char * parser_newtok(struct parser_params *parser)
static void fixup_nodes(NODE **)
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
#define rb_enc_isdigit(c, enc)
#define list_concat(h, t)
static int options(unsigned char *cp)
#define heredoc_restore(n)
stack_type parser_cond_stack
#define IS_lex_state_for(x, ls)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void ripper_init_eventids2(void)
#define heredoc_identifier()
#define rb_enc_ispunct(c, enc)
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
void rb_mark_tbl(st_table *tbl)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define NEW_ENSURE(b, en)
#define token_info_pop(token)
static int arg_var_gen(struct parser_params *, ID)
#define call_bin_op(recv, id, arg1)
#define rb_warn4S(file, line, fmt, a)
#define rb_enc_asciicompat(enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
static VALUE yycompile0(VALUE arg)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
#define assignable_result(x)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
#define ENCODING_IS_ASCII8BIT(obj)
#define dvar_defined_get(id)
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
#define rb_enc_isalpha(c, enc)
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
static int vtable_included(const struct vtable *tbl, ID id)
ID rb_intern(const char *name)
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
#define parser_is_identchar()
#define set_yylval_node(x)
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
static void vtable_free(struct vtable *tbl)
#define reg_fragment_check(str, options)
VALUE rb_usascii_str_new2(const char *)
const struct vtable * vars
int rb_const_defined_at(VALUE, ID)
st_table * st_init_table_with_size(const struct st_hash_type *, st_index_t)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
static void reduce_nodes_gen(struct parser_params *, NODE **)
#define YYSTACK_ALLOC_MAXIMUM
#define set_yylval_name(x)
#define NEW_GASGN(v, val)
static const struct @96 op_tbl[]
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
static void parser_pushback(struct parser_params *parser, int c)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
static const yytype_uint16 yydefact[]
static int parser_here_document(struct parser_params *, NODE *)
int rb_is_const_name(VALUE name)
static NODE * ret_args_gen(struct parser_params *, NODE *)
void rb_set_errinfo(VALUE err)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
NODE * parser_lex_strterm
int rb_is_global_id(ID id)
static void local_pop_gen(struct parser_params *)
static int simple_re_meta(int c)
#define NEW_UNTIL(c, b, n)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
#define aryset(node1, node2)
static const struct st_hash_type symhash
#define list_append(l, i)
#define tokaddmbc(c, enc)
#define STR_NEW3(p, n, e, func)
static const yytype_int16 yypact[]
void rb_compile_warning(const char *file, int line, const char *fmt,...)
VALUE rb_check_string_type(VALUE)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define yypact_value_is_default(yystate)
static int symbols_i(VALUE sym, ID value, VALUE ary)
static void parser_prepare(struct parser_params *parser)
static struct parser_params * parser_new(void)
#define NEW_WHILE(c, b, n)
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
#define new_args(f, o, r, p, t)
static void rb_backref_error_gen(struct parser_params *, NODE *)
#define NEW_POSTARG(i, v)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
VALUE rb_parser_new(void)
static void void_stmts_gen(struct parser_params *, NODE *)
struct rb_encoding_entry * list
static const yytype_int16 yydefgoto[]
rb_encoding * rb_filesystem_encoding(void)
#define NEW_CVASGN(v, val)
static int yylex(void *, void *)
int rb_is_global_name(VALUE name)
#define NEW_OP_ASGN2(r, i, o, val)
#define NEW_MATCH3(r, n2)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
#define node_assign(node1, node2)
#define NEW_OPT_ARG(i, v)
static unsigned int hash(const char *str, unsigned int len)
static int parser_parse_string(struct parser_params *, NODE *)
VALUE rb_ary_new2(long capa)
#define ruby_eval_tree_begin
#define is_instance_id(id)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
ID rb_intern2(const char *name, long len)
const char * parser_lex_pbeg
static NODE * cond_gen(struct parser_params *, NODE *)
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_const_get_at(VALUE, ID)
static int is_private_local_id(ID name)
static int comment_at_top(struct parser_params *parser)
const char * parser_lex_p
static void dispose_string(VALUE str)
static int parser_nextc(struct parser_params *parser)
#define read_escape(flags, e)
static const char *const yytname[]
static char * yystpcpy(char *yydest, const char *yysrc)
int parser_ruby_sourceline
#define call_uni_op(recv, id)
static ID register_symid_str(ID, VALUE)
#define StringValuePtr(v)
static ID shadowing_lvar_gen(struct parser_params *, ID)
static int token_info_get_column(struct parser_params *parser, const char *token)
unsigned char yytype_uint8
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
static NODE * yycompile(struct parser_params *parser, const char *f, int line)
static void vtable_add(struct vtable *tbl, ID id)
int rb_is_class_id(ID id)
#define NEW_CALL(r, m, a)
static const yytype_uint16 yystos[]
static int is_static_content(NODE *node)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_enc_find_index(const char *name)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_parser_end_seen_p(VALUE vparser)
static int parser_heredoc_identifier(struct parser_params *parser)
int rb_is_const_id(ID id)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
static const struct vtable * dyna_push_gen(struct parser_params *)
#define CONST_ID(var, str)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
#define NEW_MATCH2(n1, n2)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
static void new_bv_gen(struct parser_params *, ID)
#define assignable(id, node)
st_table * st_init_numtable_with_size(st_index_t)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
static NODE * range_op(struct parser_params *parser, NODE *node)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc)
int rb_parse_in_eval(void)
NODE * rb_compile_file(const char *f, VALUE file, int start)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
#define rb_node_newnode(type, a1, a2, a3)
#define nd_set_line(n, l)
VALUE rb_vsprintf(const char *, va_list)
#define block_append(h, t)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define RTYPEDDATA_TYPE(v)
#define NEW_LASGN(v, val)
struct token_info token_info
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
int rb_is_instance_id(ID id)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define ENCODING_SET(obj, i)
int rb_local_defined(ID id)
#define IS_LABEL_SUFFIX(n)
NODE * parser_eval_tree_begin
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
static NODE * parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_append(VALUE, VALUE)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
int rb_memcicmp(const void *, const void *, long)
static VALUE lex_getline(struct parser_params *parser)
VALUE rb_sym_all_symbols(void)
#define rb_enc_prev_char(s, p, e, enc)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
#define whole_match_p(e, l, i)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
static int parser_peek_variable_name(struct parser_params *parser)
VALUE rb_attr_get(VALUE, ID)
#define is_attrset_id(id)
static int local_id_gen(struct parser_params *, ID)
#define SPECIAL_PUNCT(idx)
#define NEW_CDECL(v, val, path)
#define rb_backref_error(n)
#define NEW_DEFS(r, i, a, d)
static void ripper_init_eventids2_table(VALUE self)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
static NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
#define rb_warningS(fmt, a)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
rb_encoding * rb_enc_from_index(int index)
VALUE rb_str_new(const char *, long)