47 #define YYBISON_VERSION "2.5"
50 #define YYSKELETON_NAME "yacc.c"
62 #define YYLSP_NEEDED 0
73 #define PARSER_DEBUG 0
76 #define YYERROR_VERBOSE 1
77 #define YYSTACK_USE_ALLOCA 0
92 #define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
94 #define YYMALLOC(size) rb_parser_malloc(parser, (size))
95 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size))
96 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size))
97 #define YYFREE(ptr) rb_parser_free(parser, (ptr))
98 #define malloc YYMALLOC
99 #define realloc YYREALLOC
100 #define calloc YYCALLOC
106 #define REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc)
110 #define is_notop_id(id) ((id)>tLAST_OP_ID)
111 #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
112 #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
113 #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
114 #define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
115 #define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
116 #define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
117 #define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
118 #define id_type(id) (is_notop_id(id) ? (int)((id)&ID_SCOPE_MASK) : -1)
120 #define is_asgn_or_id(id) ((is_notop_id(id)) && \
121 (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
122 ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
123 ((id)&ID_SCOPE_MASK) == ID_CLASS))
141 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit)
157 #define IS_lex_state_for(x, ls) ((x) & (ls))
158 #define IS_lex_state(ls) IS_lex_state_for(lex_state, (ls))
161 static const char *lex_state_name(
enum lex_state_e state);
166 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
167 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
168 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
169 # define BITSTACK_SET_P(stack) ((stack)&1)
171 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
172 #define COND_POP() BITSTACK_POP(cond_stack)
173 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
174 #define COND_P() BITSTACK_SET_P(cond_stack)
176 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
177 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
178 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
179 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
196 #define DVARS_INHERIT ((void*)1)
197 #define DVARS_TOPSCOPE NULL
198 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
199 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
222 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
229 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
242 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
259 for (i = 0; i < tbl->
pos; i++) {
260 if (tbl->
tbl[i] ==
id) {
345 VALUE parser_ruby_sourcefile_string;
353 VALUE parsing_thread;
358 #define STR_NEW(p,n) rb_enc_str_new((p),(n),current_enc)
359 #define STR_NEW0() rb_enc_str_new(0,0,current_enc)
360 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc)
361 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),current_enc)
362 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT)
363 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), current_enc)
366 #define yyerror(msg) parser_yyerror(parser, (msg))
368 #define lex_strterm (parser->parser_lex_strterm)
369 #define lex_state (parser->parser_lex_state)
370 #define cond_stack (parser->parser_cond_stack)
371 #define cmdarg_stack (parser->parser_cmdarg_stack)
372 #define class_nest (parser->parser_class_nest)
373 #define paren_nest (parser->parser_paren_nest)
374 #define lpar_beg (parser->parser_lpar_beg)
375 #define brace_nest (parser->parser_brace_nest)
376 #define in_single (parser->parser_in_single)
377 #define in_def (parser->parser_in_def)
378 #define compile_for_eval (parser->parser_compile_for_eval)
379 #define cur_mid (parser->parser_cur_mid)
380 #define in_defined (parser->parser_in_defined)
381 #define tokenbuf (parser->parser_tokenbuf)
382 #define tokidx (parser->parser_tokidx)
383 #define toksiz (parser->parser_toksiz)
384 #define tokline (parser->parser_tokline)
385 #define lex_input (parser->parser_lex_input)
386 #define lex_lastline (parser->parser_lex_lastline)
387 #define lex_nextline (parser->parser_lex_nextline)
388 #define lex_pbeg (parser->parser_lex_pbeg)
389 #define lex_p (parser->parser_lex_p)
390 #define lex_pend (parser->parser_lex_pend)
391 #define heredoc_end (parser->parser_heredoc_end)
392 #define command_start (parser->parser_command_start)
393 #define deferred_nodes (parser->parser_deferred_nodes)
394 #define lex_gets_ptr (parser->parser_lex_gets_ptr)
395 #define lex_gets (parser->parser_lex_gets)
396 #define lvtbl (parser->parser_lvtbl)
397 #define ruby__end__seen (parser->parser_ruby__end__seen)
398 #define ruby_sourceline (parser->parser_ruby_sourceline)
399 #define ruby_sourcefile (parser->parser_ruby_sourcefile)
400 #define current_enc (parser->enc)
401 #define yydebug (parser->parser_yydebug)
404 #define ruby_eval_tree (parser->parser_eval_tree)
405 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
406 #define ruby_debug_lines (parser->debug_lines)
407 #define ruby_coverage (parser->coverage)
411 static int yylex(
void*,
void*);
413 static int yylex(
void*);
417 #define yyparse ruby_yyparse
420 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
423 #define cond(node) cond_gen(parser, (node))
425 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2))
433 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
434 #define void_expr0(node) void_expr_gen(parser, (node))
435 #define void_expr(node) void_expr0((node) = remove_begin(node))
437 #define void_stmts(node) void_stmts_gen(parser, (node))
439 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))
441 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))
444 #define block_append(h,t) block_append_gen(parser,(h),(t))
446 #define list_append(l,i) list_append_gen(parser,(l),(i))
448 #define list_concat(h,t) list_concat_gen(parser,(h),(t))
450 #define arg_append(h,t) arg_append_gen(parser,(h),(t))
452 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t))
454 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t))
457 #define new_evstr(n) new_evstr_gen(parser,(n))
459 #define evstr2dstr(n) evstr2dstr_gen(parser,(n))
463 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
465 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id))
468 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
470 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
474 #define ret_args(node) ret_args_gen(parser, (node))
477 #define new_yield(node) new_yield_gen(parser, (node))
479 #define dsym_node(node) dsym_node_gen(parser, (node))
482 #define gettable(id) gettable_gen(parser,(id))
484 #define assignable(id,node) assignable_gen(parser, (id), (node))
487 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2))
489 #define attrset(node,id) attrset_gen(parser, (node), (id))
492 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))
494 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
498 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs))
500 #define new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs))
503 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2))
506 #define local_tbl() local_tbl_gen(parser)
511 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))
513 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))
515 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))
517 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match))
519 #define get_id(id) (id)
520 #define get_value(val) (val)
522 #define value_expr(node) ((void)(node))
523 #define remove_begin(node) (node)
524 #define rb_dvar_defined(id) 0
525 #define rb_local_defined(id) 0
526 static ID ripper_get_id(
VALUE);
527 #define get_id(id) ripper_get_id(id)
529 #define get_value(val) ripper_get_value(val)
531 #define assignable(lhs,node) assignable_gen(parser, (lhs))
533 #define id_is_var(id) id_is_var_gen(parser, (id))
535 #define node_assign(node1, node2) dispatch2(assign, (node1), (node2))
539 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs))
543 #define new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs))
546 #define formal_argument(id) formal_argument_gen(parser, (id))
548 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
550 #define new_bv(id) new_bv_gen(parser, (id))
553 #define local_push(top) local_push_gen(parser,(top))
555 #define local_pop() local_pop_gen(parser)
557 #define local_var(id) local_var_gen(parser, (id))
559 #define arg_var(id) arg_var_gen(parser, (id))
561 #define local_id(id) local_id_gen(parser, (id))
563 #define internal_id() internal_id_gen(parser)
566 #define dyna_push() dyna_push_gen(parser)
568 #define dyna_pop(node) dyna_pop_gen(parser, (node))
570 #define dyna_in_block() dyna_in_block_gen(parser)
571 #define dyna_var(id) local_var(id)
573 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0)
574 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
576 #define dvar_curr(id) dvar_curr_gen(parser, (id))
579 #define lvar_defined(id) lvar_defined_gen(parser, (id))
581 #define RE_OPTION_ONCE (1<<16)
582 #define RE_OPTION_ENCODING_SHIFT 8
583 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
584 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
585 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
586 #define RE_OPTION_MASK 0xff
587 #define RE_OPTION_ARG_ENCODING_NONE 32
589 #define NODE_STRTERM NODE_ZARRAY
590 #define NODE_HEREDOC NODE_ARRAY
591 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
592 #define nd_func u1.id
593 #if SIZEOF_SHORT == 2
594 #define nd_term(node) ((signed short)(node)->u2.id)
596 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
598 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
599 #define nd_nest u3.cnt
604 #define RIPPER_VERSION "0.1.0"
617 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
618 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))
619 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))
620 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
621 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
622 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
623 #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))
625 #define yyparse ripper_yyparse
627 #define ripper_intern(s) ID2SYM(rb_intern(s))
628 static VALUE ripper_id2sym(
ID);
630 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
631 ID2SYM(id) : ripper_id2sym(id))
634 #define arg_new() dispatch0(args_new)
635 #define arg_add(l,a) dispatch2(args_add, (l), (a))
636 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))
637 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))
638 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))
639 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))
640 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))
642 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))
643 #define mrhs_new() dispatch0(mrhs_new)
644 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))
645 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))
647 #define mlhs_new() dispatch0(mlhs_new)
648 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))
649 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))
651 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \
652 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk))
654 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))
655 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a))
656 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a))
658 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))
659 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))
660 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))
662 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
671 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
678 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
686 # define ifndef_ripper(x) (x)
689 # define ifndef_ripper(x)
693 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
694 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
695 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
696 # define rb_warn4S(file,line,fmt,a) rb_compile_warn((file), (line), (fmt), (a))
697 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
698 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
700 # define rb_warn0(fmt) ripper_warn0(parser, (fmt))
701 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a))
702 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a))
703 # define rb_warn4S(file,line,fmt,a) ripper_warnS(parser, (fmt), (a))
704 # define rb_warning0(fmt) ripper_warning0(parser, (fmt))
705 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a))
706 static void ripper_warn0(
struct parser_params*,
const char*);
707 static void ripper_warnI(
struct parser_params*,
const char*,
int);
708 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
709 static void ripper_warning0(
struct parser_params*,
const char*);
710 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
714 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
715 # define rb_compile_error ripper_compile_error
716 # define compile_error ripper_compile_error
717 # define PARSER_ARG parser,
719 # define rb_compile_error rb_compile_error_with_enc
720 # define compile_error parser->nerr++,rb_compile_error_with_enc
721 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
729 #define YYMAXDEPTH 10000
736 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
737 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
739 #define token_info_push(token)
740 #define token_info_pop(token)
753 #ifdef YYERROR_VERBOSE
754 # undef YYERROR_VERBOSE
755 # define YYERROR_VERBOSE 1
757 # define YYERROR_VERBOSE 0
761 #ifndef YYTOKEN_TABLE
762 # define YYTOKEN_TABLE 0
890 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
908 # define YYSTYPE_IS_TRIVIAL 1
909 # define yystype YYSTYPE
910 # define YYSTYPE_IS_DECLARED 1
932 #elif (defined __STDC__ || defined __C99__FUNC__ \
933 || defined __cplusplus || defined _MSC_VER)
952 # ifdef __SIZE_TYPE__
953 # define YYSIZE_T __SIZE_TYPE__
954 # elif defined size_t
955 # define YYSIZE_T size_t
956 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
957 || defined __cplusplus || defined _MSC_VER)
959 # define YYSIZE_T size_t
961 # define YYSIZE_T unsigned int
965 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
968 # if defined YYENABLE_NLS && YYENABLE_NLS
970 # include <libintl.h>
971 # define YY_(msgid) dgettext ("bison-runtime", msgid)
975 # define YY_(msgid) msgid
980 #if ! defined lint || defined __GNUC__
981 # define YYUSE(e) ((void) (e))
990 #if (defined __STDC__ || defined __C99__FUNC__ \
991 || defined __cplusplus || defined _MSC_VER)
1004 #if ! defined yyoverflow || YYERROR_VERBOSE
1008 # ifdef YYSTACK_USE_ALLOCA
1009 # if YYSTACK_USE_ALLOCA
1011 # define YYSTACK_ALLOC __builtin_alloca
1012 # elif defined __BUILTIN_VA_ARG_INCR
1013 # include <alloca.h>
1015 # define YYSTACK_ALLOC __alloca
1016 # elif defined _MSC_VER
1017 # include <malloc.h>
1018 # define alloca _alloca
1020 # define YYSTACK_ALLOC alloca
1021 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1022 || defined __cplusplus || defined _MSC_VER)
1023 # include <stdlib.h>
1024 # ifndef EXIT_SUCCESS
1025 # define EXIT_SUCCESS 0
1032 # ifdef YYSTACK_ALLOC
1034 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
1035 # ifndef YYSTACK_ALLOC_MAXIMUM
1040 # define YYSTACK_ALLOC_MAXIMUM 4032
1043 # define YYSTACK_ALLOC YYMALLOC
1044 # define YYSTACK_FREE YYFREE
1045 # ifndef YYSTACK_ALLOC_MAXIMUM
1046 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1048 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1049 && ! ((defined YYMALLOC || defined malloc) \
1050 && (defined YYFREE || defined free)))
1051 # include <stdlib.h>
1052 # ifndef EXIT_SUCCESS
1053 # define EXIT_SUCCESS 0
1057 # define YYMALLOC malloc
1058 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1059 || defined __cplusplus || defined _MSC_VER)
1064 # define YYFREE free
1065 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1066 || defined __cplusplus || defined _MSC_VER)
1074 #if (! defined yyoverflow \
1075 && (! defined __cplusplus \
1076 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1086 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1090 # define YYSTACK_BYTES(N) \
1091 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1092 + YYSTACK_GAP_MAXIMUM)
1094 # define YYCOPY_NEEDED 1
1101 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1104 YYSIZE_T yynewbytes; \
1105 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1106 Stack = &yyptr->Stack_alloc; \
1107 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1108 yyptr += yynewbytes / sizeof (*yyptr); \
1114 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1118 # if defined __GNUC__ && 1 < __GNUC__
1119 # define YYCOPY(To, From, Count) \
1120 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1122 # define YYCOPY(To, From, Count) \
1126 for (yyi = 0; yyi < (Count); yyi++) \
1127 (To)[yyi] = (From)[yyi]; \
1137 #define YYLAST 11084
1140 #define YYNTOKENS 142
1144 #define YYNRULES 619
1146 #define YYNSTATES 1056
1149 #define YYUNDEFTOK 2
1150 #define YYMAXUTOK 352
1152 #define YYTRANSLATE(YYX) \
1153 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1158 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1159 141, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1161 2, 2, 140, 127, 2, 2, 2, 125, 120, 2,
1162 136, 137, 123, 121, 134, 122, 133, 124, 2, 2,
1163 2, 2, 2, 2, 2, 2, 2, 2, 115, 139,
1164 117, 113, 116, 114, 2, 2, 2, 2, 2, 2,
1165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1167 2, 132, 2, 138, 119, 2, 135, 2, 2, 2,
1168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1170 2, 2, 2, 130, 118, 131, 128, 2, 79, 80,
1171 66, 67, 68, 2, 69, 83, 84, 74, 73, 70,
1172 71, 72, 77, 78, 81, 82, 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, 2, 2, 2, 2,
1183 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1184 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1185 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1186 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1187 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1188 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1189 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1190 65, 75, 76, 85, 86, 87, 88, 89, 90, 91,
1191 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1192 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1201 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1202 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1203 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1204 91, 95, 99, 104, 106, 110, 114, 121, 127, 133,
1205 139, 145, 149, 153, 157, 161, 163, 167, 171, 173,
1206 177, 181, 185, 188, 190, 192, 194, 196, 198, 203,
1207 204, 210, 212, 215, 219, 224, 230, 235, 241, 244,
1208 247, 250, 253, 256, 258, 262, 264, 268, 270, 273,
1209 277, 283, 286, 291, 294, 299, 301, 305, 307, 311,
1210 314, 318, 320, 324, 326, 328, 333, 337, 341, 345,
1211 349, 352, 354, 356, 358, 363, 367, 371, 375, 379,
1212 382, 384, 386, 388, 391, 393, 397, 399, 401, 403,
1213 405, 407, 409, 411, 413, 415, 417, 418, 423, 425,
1214 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1215 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1216 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1217 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1218 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1219 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1220 547, 549, 551, 553, 555, 557, 559, 561, 563, 565,
1221 569, 575, 579, 585, 592, 598, 604, 610, 616, 621,
1222 625, 629, 633, 637, 641, 645, 649, 653, 657, 662,
1223 667, 670, 673, 677, 681, 685, 689, 693, 697, 701,
1224 705, 709, 713, 717, 721, 725, 728, 731, 735, 739,
1225 743, 747, 748, 753, 760, 762, 764, 766, 769, 774,
1226 777, 781, 783, 785, 787, 789, 792, 797, 800, 802,
1227 805, 808, 813, 815, 816, 819, 822, 825, 827, 829,
1228 832, 836, 841, 845, 850, 853, 855, 857, 859, 861,
1229 863, 865, 867, 869, 871, 873, 875, 876, 881, 882,
1230 886, 887, 892, 896, 900, 903, 907, 911, 913, 918,
1231 922, 924, 925, 932, 937, 941, 944, 946, 949, 952,
1232 959, 966, 967, 968, 976, 977, 978, 986, 992, 997,
1233 998, 999, 1009, 1010, 1017, 1018, 1019, 1028, 1029, 1035,
1234 1036, 1043, 1044, 1045, 1055, 1057, 1059, 1061, 1063, 1065,
1235 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085,
1236 1087, 1089, 1091, 1094, 1096, 1098, 1100, 1106, 1108, 1111,
1237 1113, 1115, 1117, 1121, 1123, 1127, 1129, 1134, 1141, 1145,
1238 1151, 1154, 1159, 1161, 1165, 1170, 1173, 1176, 1178, 1181,
1239 1182, 1189, 1198, 1203, 1210, 1215, 1218, 1225, 1228, 1233,
1240 1240, 1243, 1248, 1251, 1256, 1258, 1260, 1262, 1266, 1268,
1241 1273, 1275, 1280, 1282, 1286, 1288, 1290, 1291, 1292, 1293,
1242 1299, 1304, 1306, 1310, 1314, 1315, 1321, 1324, 1329, 1335,
1243 1341, 1344, 1345, 1351, 1352, 1358, 1362, 1363, 1368, 1369,
1244 1374, 1377, 1379, 1384, 1385, 1391, 1392, 1398, 1404, 1406,
1245 1408, 1415, 1417, 1419, 1421, 1423, 1426, 1428, 1431, 1433,
1246 1435, 1437, 1439, 1441, 1443, 1445, 1448, 1452, 1456, 1460,
1247 1464, 1468, 1469, 1473, 1475, 1478, 1482, 1486, 1487, 1491,
1248 1495, 1499, 1503, 1507, 1508, 1512, 1513, 1517, 1518, 1521,
1249 1522, 1525, 1526, 1529, 1531, 1532, 1536, 1537, 1538, 1539,
1250 1546, 1548, 1550, 1552, 1554, 1557, 1559, 1561, 1563, 1565,
1251 1569, 1571, 1573, 1576, 1579, 1581, 1583, 1585, 1587, 1589,
1252 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609,
1253 1611, 1613, 1615, 1617, 1618, 1623, 1626, 1630, 1633, 1638,
1254 1641, 1644, 1646, 1649, 1650, 1657, 1666, 1671, 1678, 1683,
1255 1690, 1693, 1698, 1705, 1708, 1713, 1716, 1721, 1723, 1724,
1256 1726, 1728, 1730, 1732, 1734, 1736, 1738, 1742, 1744, 1748,
1257 1751, 1754, 1756, 1760, 1762, 1766, 1768, 1770, 1773, 1775,
1258 1779, 1783, 1785, 1789, 1791, 1795, 1797, 1799, 1802, 1804,
1259 1806, 1808, 1811, 1814, 1816, 1818, 1819, 1824, 1826, 1829,
1260 1831, 1835, 1839, 1842, 1845, 1847, 1849, 1851, 1853, 1855,
1261 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1870, 1872, 1873,
1262 1875, 1878, 1881, 1882, 1884, 1886, 1888, 1890, 1892, 1895
1268 143, 0, -1, -1, 144, 145, -1, 146, 332, -1,
1269 339, -1, 147, -1, 146, 338, 147, -1, 1, 147,
1270 -1, 154, -1, -1, 47, 148, 130, 145, 131, -1,
1271 150, 261, 229, 264, -1, 151, 332, -1, 339, -1,
1272 152, -1, 151, 338, 152, -1, 1, 154, -1, 154,
1273 -1, -1, 47, 153, 130, 145, 131, -1, -1, 45,
1274 177, 155, 177, -1, 45, 54, 54, -1, 45, 54,
1275 64, -1, 45, 54, 63, -1, 6, 178, -1, 154,
1276 40, 158, -1, 154, 41, 158, -1, 154, 42, 158,
1277 -1, 154, 43, 158, -1, 154, 44, 154, -1, 48,
1278 130, 150, 131, -1, 156, -1, 165, 113, 159, -1,
1279 296, 87, 159, -1, 214, 132, 188, 335, 87, 159,
1280 -1, 214, 133, 52, 87, 159, -1, 214, 133, 56,
1281 87, 159, -1, 214, 85, 56, 87, 159, -1, 214,
1282 85, 52, 87, 159, -1, 297, 87, 159, -1, 172,
1283 113, 195, -1, 165, 113, 184, -1, 165, 113, 195,
1284 -1, 157, -1, 172, 113, 159, -1, 172, 113, 156,
1285 -1, 159, -1, 157, 37, 157, -1, 157, 38, 157,
1286 -1, 39, 333, 157, -1, 127, 159, -1, 182, -1,
1287 157, -1, 164, -1, 160, -1, 250, -1, 250, 331,
1288 329, 190, -1, -1, 94, 162, 237, 150, 131, -1,
1289 328, -1, 163, 190, -1, 163, 190, 161, -1, 214,
1290 133, 329, 190, -1, 214, 133, 329, 190, 161, -1,
1291 214, 85, 329, 190, -1, 214, 85, 329, 190, 161,
1292 -1, 32, 190, -1, 31, 190, -1, 30, 189, -1,
1293 21, 189, -1, 22, 189, -1, 167, -1, 89, 166,
1294 334, -1, 167, -1, 89, 166, 334, -1, 169, -1,
1295 169, 168, -1, 169, 95, 171, -1, 169, 95, 171,
1296 134, 170, -1, 169, 95, -1, 169, 95, 134, 170,
1297 -1, 95, 171, -1, 95, 171, 134, 170, -1, 95,
1298 -1, 95, 134, 170, -1, 171, -1, 89, 166, 334,
1299 -1, 168, 134, -1, 169, 168, 134, -1, 168, -1,
1300 170, 134, 168, -1, 293, -1, 294, -1, 214, 132,
1301 188, 335, -1, 214, 133, 52, -1, 214, 85, 52,
1302 -1, 214, 133, 56, -1, 214, 85, 56, -1, 86,
1303 56, -1, 297, -1, 293, -1, 294, -1, 214, 132,
1304 188, 335, -1, 214, 133, 52, -1, 214, 85, 52,
1305 -1, 214, 133, 56, -1, 214, 85, 56, -1, 86,
1306 56, -1, 297, -1, 52, -1, 56, -1, 86, 173,
1307 -1, 173, -1, 214, 85, 173, -1, 52, -1, 56,
1308 -1, 53, -1, 180, -1, 181, -1, 175, -1, 289,
1309 -1, 176, -1, 291, -1, 177, -1, -1, 178, 134,
1310 179, 177, -1, 118, -1, 119, -1, 120, -1, 69,
1311 -1, 70, -1, 71, -1, 77, -1, 78, -1, 116,
1312 -1, 73, -1, 117, -1, 74, -1, 72, -1, 83,
1313 -1, 84, -1, 121, -1, 122, -1, 123, -1, 95,
1314 -1, 124, -1, 125, -1, 68, -1, 96, -1, 127,
1315 -1, 128, -1, 66, -1, 67, -1, 81, -1, 82,
1316 -1, 135, -1, 49, -1, 50, -1, 51, -1, 47,
1317 -1, 48, -1, 45, -1, 37, -1, 7, -1, 21,
1318 -1, 16, -1, 3, -1, 5, -1, 46, -1, 26,
1319 -1, 15, -1, 14, -1, 10, -1, 9, -1, 36,
1320 -1, 20, -1, 25, -1, 4, -1, 22, -1, 34,
1321 -1, 39, -1, 38, -1, 23, -1, 8, -1, 24,
1322 -1, 30, -1, 33, -1, 32, -1, 13, -1, 35,
1323 -1, 6, -1, 17, -1, 31, -1, 11, -1, 12,
1324 -1, 18, -1, 19, -1, 172, 113, 182, -1, 172,
1325 113, 182, 44, 182, -1, 296, 87, 182, -1, 296,
1326 87, 182, 44, 182, -1, 214, 132, 188, 335, 87,
1327 182, -1, 214, 133, 52, 87, 182, -1, 214, 133,
1328 56, 87, 182, -1, 214, 85, 52, 87, 182, -1,
1329 214, 85, 56, 87, 182, -1, 86, 56, 87, 182,
1330 -1, 297, 87, 182, -1, 182, 79, 182, -1, 182,
1331 80, 182, -1, 182, 121, 182, -1, 182, 122, 182,
1332 -1, 182, 123, 182, -1, 182, 124, 182, -1, 182,
1333 125, 182, -1, 182, 68, 182, -1, 126, 59, 68,
1334 182, -1, 126, 60, 68, 182, -1, 66, 182, -1,
1335 67, 182, -1, 182, 118, 182, -1, 182, 119, 182,
1336 -1, 182, 120, 182, -1, 182, 69, 182, -1, 182,
1337 116, 182, -1, 182, 73, 182, -1, 182, 117, 182,
1338 -1, 182, 74, 182, -1, 182, 70, 182, -1, 182,
1339 71, 182, -1, 182, 72, 182, -1, 182, 77, 182,
1340 -1, 182, 78, 182, -1, 127, 182, -1, 128, 182,
1341 -1, 182, 83, 182, -1, 182, 84, 182, -1, 182,
1342 75, 182, -1, 182, 76, 182, -1, -1, 46, 333,
1343 183, 182, -1, 182, 114, 182, 333, 115, 182, -1,
1344 196, -1, 182, -1, 339, -1, 194, 336, -1, 194,
1345 134, 326, 336, -1, 326, 336, -1, 136, 188, 334,
1346 -1, 339, -1, 186, -1, 339, -1, 189, -1, 194,
1347 134, -1, 194, 134, 326, 134, -1, 326, 134, -1,
1348 164, -1, 194, 193, -1, 326, 193, -1, 194, 134,
1349 326, 193, -1, 192, -1, -1, 191, 189, -1, 97,
1350 184, -1, 134, 192, -1, 339, -1, 184, -1, 95,
1351 184, -1, 194, 134, 184, -1, 194, 134, 95, 184,
1352 -1, 194, 134, 184, -1, 194, 134, 95, 184, -1,
1353 95, 184, -1, 265, -1, 266, -1, 269, -1, 270,
1354 -1, 271, -1, 276, -1, 274, -1, 277, -1, 295,
1355 -1, 297, -1, 53, -1, -1, 215, 197, 149, 225,
1356 -1, -1, 90, 198, 334, -1, -1, 90, 157, 199,
1357 334, -1, 89, 150, 137, -1, 214, 85, 56, -1,
1358 86, 56, -1, 92, 185, 138, -1, 93, 325, 131,
1359 -1, 30, -1, 31, 136, 189, 334, -1, 31, 136,
1360 334, -1, 31, -1, -1, 46, 333, 136, 200, 157,
1361 334, -1, 39, 136, 157, 334, -1, 39, 136, 334,
1362 -1, 163, 256, -1, 251, -1, 251, 256, -1, 98,
1363 242, -1, 216, 158, 226, 150, 228, 225, -1, 217,
1364 158, 226, 150, 229, 225, -1, -1, -1, 218, 201,
1365 158, 227, 202, 150, 225, -1, -1, -1, 219, 203,
1366 158, 227, 204, 150, 225, -1, 220, 158, 332, 259,
1367 225, -1, 220, 332, 259, 225, -1, -1, -1, 221,
1368 230, 25, 205, 158, 227, 206, 150, 225, -1, -1,
1369 222, 174, 298, 207, 149, 225, -1, -1, -1, 222,
1370 83, 157, 208, 337, 209, 149, 225, -1, -1, 223,
1371 174, 210, 149, 225, -1, -1, 224, 175, 211, 300,
1372 149, 225, -1, -1, -1, 224, 323, 331, 212, 175,
1373 213, 300, 149, 225, -1, 21, -1, 22, -1, 23,
1374 -1, 24, -1, 196, -1, 7, -1, 11, -1, 12,
1375 -1, 18, -1, 19, -1, 16, -1, 20, -1, 3,
1376 -1, 4, -1, 5, -1, 10, -1, 337, -1, 13,
1377 -1, 337, 13, -1, 337, -1, 27, -1, 229, -1,
1378 14, 158, 226, 150, 228, -1, 339, -1, 15, 150,
1379 -1, 172, -1, 165, -1, 305, -1, 89, 233, 334,
1380 -1, 231, -1, 232, 134, 231, -1, 232, -1, 232,
1381 134, 95, 305, -1, 232, 134, 95, 305, 134, 232,
1382 -1, 232, 134, 95, -1, 232, 134, 95, 134, 232,
1383 -1, 95, 305, -1, 95, 305, 134, 232, -1, 95,
1384 -1, 95, 134, 232, -1, 310, 134, 313, 322, -1,
1385 310, 322, -1, 313, 322, -1, 321, -1, 134, 234,
1386 -1, -1, 307, 134, 316, 134, 319, 235, -1, 307,
1387 134, 316, 134, 319, 134, 307, 235, -1, 307, 134,
1388 316, 235, -1, 307, 134, 316, 134, 307, 235, -1,
1389 307, 134, 319, 235, -1, 307, 134, -1, 307, 134,
1390 319, 134, 307, 235, -1, 307, 235, -1, 316, 134,
1391 319, 235, -1, 316, 134, 319, 134, 307, 235, -1,
1392 316, 235, -1, 316, 134, 307, 235, -1, 319, 235,
1393 -1, 319, 134, 307, 235, -1, 234, -1, 339, -1,
1394 238, -1, 118, 239, 118, -1, 76, -1, 118, 236,
1395 239, 118, -1, 333, -1, 333, 139, 240, 333, -1,
1396 241, -1, 240, 134, 241, -1, 52, -1, 304, -1,
1397 -1, -1, -1, 243, 244, 246, 245, 247, -1, 136,
1398 303, 239, 137, -1, 303, -1, 111, 150, 131, -1,
1399 29, 150, 10, -1, -1, 28, 249, 237, 150, 10,
1400 -1, 164, 248, -1, 250, 331, 329, 187, -1, 250,
1401 331, 329, 187, 256, -1, 250, 331, 329, 190, 248,
1402 -1, 163, 186, -1, -1, 214, 133, 329, 252, 187,
1403 -1, -1, 214, 85, 329, 253, 186, -1, 214, 85,
1404 330, -1, -1, 214, 133, 254, 186, -1, -1, 214,
1405 85, 255, 186, -1, 32, 186, -1, 32, -1, 214,
1406 132, 188, 335, -1, -1, 130, 257, 237, 150, 131,
1407 -1, -1, 26, 258, 237, 150, 10, -1, 17, 194,
1408 226, 150, 260, -1, 229, -1, 259, -1, 8, 262,
1409 263, 226, 150, 261, -1, 339, -1, 184, -1, 195,
1410 -1, 339, -1, 88, 172, -1, 339, -1, 9, 150,
1411 -1, 339, -1, 292, -1, 289, -1, 291, -1, 267,
1412 -1, 62, -1, 268, -1, 267, 268, -1, 100, 280,
1413 110, -1, 101, 281, 110, -1, 102, 282, 65, -1,
1414 103, 140, 110, -1, 103, 272, 110, -1, -1, 272,
1415 273, 140, -1, 283, -1, 273, 283, -1, 105, 140,
1416 110, -1, 105, 275, 110, -1, -1, 275, 273, 140,
1417 -1, 104, 140, 110, -1, 104, 278, 110, -1, 106,
1418 140, 110, -1, 106, 279, 110, -1, -1, 278, 61,
1419 140, -1, -1, 279, 61, 140, -1, -1, 280, 283,
1420 -1, -1, 281, 283, -1, -1, 282, 283, -1, 61,
1421 -1, -1, 109, 284, 288, -1, -1, -1, -1, 107,
1422 285, 286, 287, 150, 108, -1, 54, -1, 55, -1,
1423 57, -1, 297, -1, 99, 290, -1, 175, -1, 55,
1424 -1, 54, -1, 57, -1, 99, 281, 110, -1, 59,
1425 -1, 60, -1, 126, 59, -1, 126, 60, -1, 52,
1426 -1, 55, -1, 54, -1, 56, -1, 57, -1, 34,
1427 -1, 33, -1, 35, -1, 36, -1, 50, -1, 49,
1428 -1, 51, -1, 293, -1, 294, -1, 293, -1, 294,
1429 -1, 63, -1, 64, -1, 337, -1, -1, 117, 299,
1430 158, 337, -1, 1, 337, -1, 136, 303, 334, -1,
1431 303, 337, -1, 311, 134, 313, 322, -1, 311, 322,
1432 -1, 313, 322, -1, 321, -1, 134, 301, -1, -1,
1433 307, 134, 317, 134, 319, 302, -1, 307, 134, 317,
1434 134, 319, 134, 307, 302, -1, 307, 134, 317, 302,
1435 -1, 307, 134, 317, 134, 307, 302, -1, 307, 134,
1436 319, 302, -1, 307, 134, 319, 134, 307, 302, -1,
1437 307, 302, -1, 317, 134, 319, 302, -1, 317, 134,
1438 319, 134, 307, 302, -1, 317, 302, -1, 317, 134,
1439 307, 302, -1, 319, 302, -1, 319, 134, 307, 302,
1440 -1, 301, -1, -1, 56, -1, 55, -1, 54, -1,
1441 57, -1, 304, -1, 52, -1, 305, -1, 89, 233,
1442 334, -1, 306, -1, 307, 134, 306, -1, 58, 184,
1443 -1, 58, 214, -1, 309, -1, 310, 134, 309, -1,
1444 308, -1, 311, 134, 308, -1, 68, -1, 96, -1,
1445 312, 52, -1, 312, -1, 52, 113, 184, -1, 52,
1446 113, 214, -1, 315, -1, 316, 134, 315, -1, 314,
1447 -1, 317, 134, 314, -1, 123, -1, 95, -1, 318,
1448 52, -1, 318, -1, 120, -1, 97, -1, 320, 52,
1449 -1, 134, 321, -1, 339, -1, 295, -1, -1, 136,
1450 324, 157, 334, -1, 339, -1, 326, 336, -1, 327,
1451 -1, 326, 134, 327, -1, 184, 88, 184, -1, 58,
1452 184, -1, 96, 184, -1, 52, -1, 56, -1, 53,
1453 -1, 52, -1, 56, -1, 53, -1, 180, -1, 52,
1454 -1, 53, -1, 180, -1, 133, -1, 85, -1, -1,
1455 338, -1, -1, 141, -1, 333, 137, -1, 333, 138,
1456 -1, -1, 141, -1, 134, -1, 139, -1, 141, -1,
1457 337, -1, 338, 139, -1, -1
1463 0, 854, 854, 854, 885, 896, 905, 913, 921, 927,
1464 929, 928, 949, 982, 993, 1002, 1010, 1018, 1024, 1029,
1465 1028, 1049, 1049, 1057, 1065, 1076, 1086, 1094, 1103, 1112,
1466 1125, 1138, 1147, 1159, 1160, 1170, 1175, 1196, 1201, 1206,
1467 1216, 1221, 1231, 1240, 1249, 1258, 1261, 1270, 1282, 1283,
1468 1291, 1299, 1307, 1315, 1318, 1330, 1331, 1334, 1335, 1347,
1469 1346, 1368, 1378, 1387, 1400, 1409, 1421, 1430, 1442, 1451,
1470 1460, 1468, 1476, 1486, 1487, 1497, 1498, 1508, 1516, 1524,
1471 1532, 1541, 1549, 1558, 1566, 1575, 1583, 1594, 1595, 1605,
1472 1613, 1623, 1631, 1641, 1645, 1649, 1657, 1665, 1673, 1681,
1473 1693, 1703, 1715, 1724, 1733, 1741, 1749, 1757, 1765, 1778,
1474 1791, 1802, 1810, 1813, 1821, 1829, 1839, 1840, 1841, 1842,
1475 1847, 1858, 1859, 1862, 1870, 1873, 1881, 1881, 1891, 1892,
1476 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902,
1477 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912,
1478 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1923, 1923,
1479 1923, 1924, 1924, 1925, 1925, 1925, 1926, 1926, 1926, 1926,
1480 1927, 1927, 1927, 1927, 1928, 1928, 1928, 1929, 1929, 1929,
1481 1929, 1930, 1930, 1930, 1930, 1931, 1931, 1931, 1931, 1932,
1482 1932, 1932, 1932, 1933, 1933, 1933, 1933, 1934, 1934, 1937,
1483 1946, 1956, 1961, 1971, 1997, 2002, 2007, 2012, 2022, 2032,
1484 2043, 2057, 2071, 2079, 2087, 2095, 2103, 2111, 2119, 2128,
1485 2137, 2145, 2153, 2161, 2169, 2177, 2185, 2193, 2201, 2209,
1486 2217, 2225, 2233, 2241, 2252, 2260, 2268, 2276, 2284, 2292,
1487 2300, 2308, 2308, 2318, 2328, 2334, 2346, 2347, 2351, 2359,
1488 2369, 2379, 2380, 2383, 2384, 2385, 2389, 2397, 2407, 2416,
1489 2424, 2434, 2443, 2452, 2452, 2464, 2474, 2478, 2484, 2492,
1490 2500, 2514, 2530, 2544, 2559, 2569, 2570, 2571, 2572, 2573,
1491 2574, 2575, 2576, 2577, 2578, 2579, 2588, 2587, 2615, 2615,
1492 2623, 2623, 2631, 2639, 2647, 2655, 2668, 2676, 2684, 2692,
1493 2700, 2708, 2708, 2718, 2726, 2734, 2744, 2745, 2755, 2759,
1494 2771, 2783, 2783, 2783, 2794, 2794, 2794, 2805, 2816, 2825,
1495 2827, 2824, 2891, 2890, 2912, 2917, 2911, 2936, 2935, 2957,
1496 2956, 2979, 2980, 2979, 3000, 3008, 3016, 3024, 3034, 3046,
1497 3052, 3058, 3064, 3070, 3076, 3082, 3088, 3094, 3100, 3110,
1498 3116, 3121, 3122, 3129, 3134, 3137, 3138, 3151, 3152, 3162,
1499 3163, 3166, 3174, 3184, 3192, 3202, 3210, 3219, 3228, 3236,
1500 3244, 3253, 3265, 3273, 3284, 3288, 3292, 3296, 3302, 3307,
1501 3312, 3316, 3320, 3324, 3328, 3332, 3340, 3344, 3348, 3352,
1502 3356, 3360, 3364, 3368, 3372, 3378, 3379, 3385, 3394, 3403,
1503 3414, 3418, 3428, 3435, 3444, 3452, 3458, 3461, 3466, 3458,
1504 3482, 3490, 3500, 3504, 3511, 3510, 3531, 3547, 3556, 3568,
1505 3582, 3592, 3591, 3608, 3607, 3623, 3632, 3631, 3649, 3648,
1506 3665, 3673, 3681, 3696, 3695, 3715, 3714, 3735, 3747, 3748,
1507 3751, 3770, 3773, 3781, 3789, 3792, 3796, 3799, 3807, 3810,
1508 3811, 3819, 3822, 3839, 3840, 3841, 3851, 3861, 3888, 3953,
1509 3962, 3973, 3980, 3990, 3998, 4008, 4017, 4028, 4035, 4047,
1510 4056, 4066, 4075, 4086, 4093, 4104, 4111, 4126, 4133, 4144,
1511 4151, 4162, 4169, 4198, 4200, 4199, 4216, 4222, 4227, 4215,
1512 4246, 4254, 4262, 4270, 4273, 4284, 4285, 4286, 4287, 4290,
1513 4301, 4302, 4303, 4311, 4321, 4322, 4323, 4324, 4325, 4328,
1514 4329, 4330, 4331, 4332, 4333, 4334, 4337, 4350, 4360, 4368,
1515 4378, 4379, 4382, 4391, 4390, 4399, 4411, 4421, 4429, 4433,
1516 4437, 4441, 4447, 4452, 4457, 4461, 4465, 4469, 4473, 4477,
1517 4481, 4485, 4489, 4493, 4497, 4501, 4505, 4509, 4514, 4520,
1518 4529, 4538, 4547, 4558, 4559, 4566, 4575, 4594, 4601, 4614,
1519 4626, 4638, 4646, 4663, 4671, 4687, 4688, 4691, 4696, 4702,
1520 4714, 4726, 4734, 4750, 4758, 4774, 4775, 4778, 4791, 4802,
1521 4803, 4806, 4823, 4827, 4837, 4847, 4847, 4876, 4877, 4887,
1522 4894, 4904, 4912, 4920, 4932, 4933, 4934, 4937, 4938, 4939,
1523 4940, 4943, 4944, 4945, 4948, 4953, 4960, 4961, 4964, 4965,
1524 4968, 4971, 4974, 4975, 4976, 4979, 4980, 4983, 4984, 4988
1528 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1533 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1534 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1535 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1536 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1537 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1538 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1539 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1540 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1541 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1542 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1543 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1544 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1545 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1546 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1547 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
1548 "tCHAR",
"tNTH_REF",
"tBACK_REF",
"tREGEXP_END",
"\"unary+\"",
1549 "\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
"\"===\"",
"\"!=\"",
1550 "\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
"\"!~\"",
"\"..\"",
1551 "\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
"\"::\"",
1552 "\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
"\"( arg\"",
1553 "\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
"\"**arg\"",
"\"&\"",
1554 "\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
1555 "tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
"tQSYMBOLS_BEG",
1556 "tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1557 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1558 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
1559 "'{'",
"'}'",
"'['",
"'.'",
"','",
"'`'",
"'('",
"')'",
"']'",
"';'",
1560 "' '",
"'\\n'",
"$accept",
"program",
"$@1",
"top_compstmt",
"top_stmts",
1561 "top_stmt",
"$@2",
"bodystmt",
"compstmt",
"stmts",
"stmt_or_begin",
1562 "$@3",
"stmt",
"$@4",
"command_asgn",
"expr",
"expr_value",
1563 "command_call",
"block_command",
"cmd_brace_block",
"@5",
"fcall",
1564 "command",
"mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
1565 "mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
1566 "fitem",
"undef_list",
"$@6",
"op",
"reswords",
"arg",
"$@7",
1567 "arg_value",
"aref_args",
"paren_args",
"opt_paren_args",
1568 "opt_call_args",
"call_args",
"command_args",
"@8",
"block_arg",
1569 "opt_block_arg",
"args",
"mrhs",
"primary",
"@9",
"$@10",
"$@11",
"$@12",
1570 "$@13",
"$@14",
"$@15",
"$@16",
"$@17",
"$@18",
"@19",
"@20",
"@21",
1571 "@22",
"@23",
"$@24",
"$@25",
"primary_value",
"k_begin",
"k_if",
1572 "k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
"k_class",
1573 "k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
"opt_else",
1574 "for_var",
"f_marg",
"f_marg_list",
"f_margs",
"block_args_tail",
1575 "opt_block_args_tail",
"block_param",
"opt_block_param",
1576 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@26",
1577 "@27",
"@28",
"f_larglist",
"lambda_body",
"do_block",
"@29",
1578 "block_call",
"method_call",
"@30",
"@31",
"@32",
"@33",
"brace_block",
1579 "@34",
"@35",
"case_body",
"cases",
"opt_rescue",
"exc_list",
"exc_var",
1580 "opt_ensure",
"literal",
"strings",
"string",
"string1",
"xstring",
1581 "regexp",
"words",
"word_list",
"word",
"symbols",
"symbol_list",
1582 "qwords",
"qsymbols",
"qword_list",
"qsym_list",
"string_contents",
1583 "xstring_contents",
"regexp_contents",
"string_content",
"@36",
"@37",
1584 "@38",
"@39",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1585 "user_variable",
"keyword_variable",
"var_ref",
"var_lhs",
"backref",
1586 "superclass",
"$@40",
"f_arglist",
"args_tail",
"opt_args_tail",
1587 "f_args",
"f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_kw",
1588 "f_block_kw",
"f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
1589 "f_opt",
"f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1590 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1591 "singleton",
"$@41",
"assoc_list",
"assocs",
"assoc",
"operation",
1592 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1593 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1600 static const yytype_uint16 yytoknum[] =
1602 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1603 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1604 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1605 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1606 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1607 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1608 315, 316, 317, 318, 319, 320, 130, 131, 132, 134,
1609 139, 140, 141, 138, 137, 321, 322, 142, 143, 128,
1610 129, 144, 145, 135, 136, 323, 324, 325, 326, 327,
1611 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1612 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1613 348, 349, 350, 61, 63, 58, 62, 60, 124, 94,
1614 38, 43, 45, 42, 47, 37, 351, 33, 126, 352,
1615 123, 125, 91, 46, 44, 96, 40, 41, 93, 59,
1621 static const yytype_uint16
yyr1[] =
1623 0, 142, 144, 143, 145, 146, 146, 146, 146, 147,
1624 148, 147, 149, 150, 151, 151, 151, 151, 152, 153,
1625 152, 155, 154, 154, 154, 154, 154, 154, 154, 154,
1626 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1627 154, 154, 154, 154, 154, 154, 156, 156, 157, 157,
1628 157, 157, 157, 157, 158, 159, 159, 160, 160, 162,
1629 161, 163, 164, 164, 164, 164, 164, 164, 164, 164,
1630 164, 164, 164, 165, 165, 166, 166, 167, 167, 167,
1631 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
1632 169, 170, 170, 171, 171, 171, 171, 171, 171, 171,
1633 171, 171, 172, 172, 172, 172, 172, 172, 172, 172,
1634 172, 173, 173, 174, 174, 174, 175, 175, 175, 175,
1635 175, 176, 176, 177, 177, 178, 179, 178, 180, 180,
1636 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1637 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1638 180, 180, 180, 180, 180, 180, 180, 180, 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, 181,
1642 181, 181, 181, 181, 181, 181, 181, 181, 181, 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, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1647 182, 183, 182, 182, 182, 184, 185, 185, 185, 185,
1648 186, 187, 187, 188, 188, 188, 188, 188, 189, 189,
1649 189, 189, 189, 191, 190, 192, 193, 193, 194, 194,
1650 194, 194, 195, 195, 195, 196, 196, 196, 196, 196,
1651 196, 196, 196, 196, 196, 196, 197, 196, 198, 196,
1652 199, 196, 196, 196, 196, 196, 196, 196, 196, 196,
1653 196, 200, 196, 196, 196, 196, 196, 196, 196, 196,
1654 196, 201, 202, 196, 203, 204, 196, 196, 196, 205,
1655 206, 196, 207, 196, 208, 209, 196, 210, 196, 211,
1656 196, 212, 213, 196, 196, 196, 196, 196, 214, 215,
1657 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1658 226, 226, 226, 227, 227, 228, 228, 229, 229, 230,
1659 230, 231, 231, 232, 232, 233, 233, 233, 233, 233,
1660 233, 233, 233, 233, 234, 234, 234, 234, 235, 235,
1661 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1662 236, 236, 236, 236, 236, 237, 237, 238, 238, 238,
1663 239, 239, 240, 240, 241, 241, 243, 244, 245, 242,
1664 246, 246, 247, 247, 249, 248, 250, 250, 250, 250,
1665 251, 252, 251, 253, 251, 251, 254, 251, 255, 251,
1666 251, 251, 251, 257, 256, 258, 256, 259, 260, 260,
1667 261, 261, 262, 262, 262, 263, 263, 264, 264, 265,
1668 265, 265, 266, 267, 267, 267, 268, 269, 270, 271,
1669 271, 272, 272, 273, 273, 274, 274, 275, 275, 276,
1670 276, 277, 277, 278, 278, 279, 279, 280, 280, 281,
1671 281, 282, 282, 283, 284, 283, 285, 286, 287, 283,
1672 288, 288, 288, 288, 289, 290, 290, 290, 290, 291,
1673 292, 292, 292, 292, 293, 293, 293, 293, 293, 294,
1674 294, 294, 294, 294, 294, 294, 295, 295, 296, 296,
1675 297, 297, 298, 299, 298, 298, 300, 300, 301, 301,
1676 301, 301, 302, 302, 303, 303, 303, 303, 303, 303,
1677 303, 303, 303, 303, 303, 303, 303, 303, 303, 304,
1678 304, 304, 304, 305, 305, 306, 306, 307, 307, 308,
1679 309, 310, 310, 311, 311, 312, 312, 313, 313, 314,
1680 315, 316, 316, 317, 317, 318, 318, 319, 319, 320,
1681 320, 321, 322, 322, 323, 324, 323, 325, 325, 326,
1682 326, 327, 327, 327, 328, 328, 328, 329, 329, 329,
1683 329, 330, 330, 330, 331, 331, 332, 332, 333, 333,
1684 334, 335, 336, 336, 336, 337, 337, 338, 338, 339
1690 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1691 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
1692 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
1693 3, 3, 4, 1, 3, 3, 6, 5, 5, 5,
1694 5, 3, 3, 3, 3, 1, 3, 3, 1, 3,
1695 3, 3, 2, 1, 1, 1, 1, 1, 4, 0,
1696 5, 1, 2, 3, 4, 5, 4, 5, 2, 2,
1697 2, 2, 2, 1, 3, 1, 3, 1, 2, 3,
1698 5, 2, 4, 2, 4, 1, 3, 1, 3, 2,
1699 3, 1, 3, 1, 1, 4, 3, 3, 3, 3,
1700 2, 1, 1, 1, 4, 3, 3, 3, 3, 2,
1701 1, 1, 1, 2, 1, 3, 1, 1, 1, 1,
1702 1, 1, 1, 1, 1, 1, 0, 4, 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, 1,
1709 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
1710 5, 3, 5, 6, 5, 5, 5, 5, 4, 3,
1711 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
1712 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
1713 3, 3, 3, 3, 3, 2, 2, 3, 3, 3,
1714 3, 0, 4, 6, 1, 1, 1, 2, 4, 2,
1715 3, 1, 1, 1, 1, 2, 4, 2, 1, 2,
1716 2, 4, 1, 0, 2, 2, 2, 1, 1, 2,
1717 3, 4, 3, 4, 2, 1, 1, 1, 1, 1,
1718 1, 1, 1, 1, 1, 1, 0, 4, 0, 3,
1719 0, 4, 3, 3, 2, 3, 3, 1, 4, 3,
1720 1, 0, 6, 4, 3, 2, 1, 2, 2, 6,
1721 6, 0, 0, 7, 0, 0, 7, 5, 4, 0,
1722 0, 9, 0, 6, 0, 0, 8, 0, 5, 0,
1723 6, 0, 0, 9, 1, 1, 1, 1, 1, 1,
1724 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1725 1, 1, 2, 1, 1, 1, 5, 1, 2, 1,
1726 1, 1, 3, 1, 3, 1, 4, 6, 3, 5,
1727 2, 4, 1, 3, 4, 2, 2, 1, 2, 0,
1728 6, 8, 4, 6, 4, 2, 6, 2, 4, 6,
1729 2, 4, 2, 4, 1, 1, 1, 3, 1, 4,
1730 1, 4, 1, 3, 1, 1, 0, 0, 0, 5,
1731 4, 1, 3, 3, 0, 5, 2, 4, 5, 5,
1732 2, 0, 5, 0, 5, 3, 0, 4, 0, 4,
1733 2, 1, 4, 0, 5, 0, 5, 5, 1, 1,
1734 6, 1, 1, 1, 1, 2, 1, 2, 1, 1,
1735 1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
1736 3, 0, 3, 1, 2, 3, 3, 0, 3, 3,
1737 3, 3, 3, 0, 3, 0, 3, 0, 2, 0,
1738 2, 0, 2, 1, 0, 3, 0, 0, 0, 6,
1739 1, 1, 1, 1, 2, 1, 1, 1, 1, 3,
1740 1, 1, 2, 2, 1, 1, 1, 1, 1, 1,
1741 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1742 1, 1, 1, 0, 4, 2, 3, 2, 4, 2,
1743 2, 1, 2, 0, 6, 8, 4, 6, 4, 6,
1744 2, 4, 6, 2, 4, 2, 4, 1, 0, 1,
1745 1, 1, 1, 1, 1, 1, 3, 1, 3, 2,
1746 2, 1, 3, 1, 3, 1, 1, 2, 1, 3,
1747 3, 1, 3, 1, 3, 1, 1, 2, 1, 1,
1748 1, 2, 2, 1, 1, 0, 4, 1, 2, 1,
1749 3, 3, 2, 2, 1, 1, 1, 1, 1, 1,
1750 1, 1, 1, 1, 1, 1, 0, 1, 0, 1,
1751 2, 2, 0, 1, 1, 1, 1, 1, 2, 0
1759 2, 0, 0, 1, 0, 346, 347, 348, 0, 339,
1760 340, 341, 344, 342, 343, 345, 334, 335, 336, 337,
1761 297, 263, 263, 510, 509, 511, 512, 608, 0, 608,
1762 10, 0, 514, 513, 515, 594, 596, 506, 505, 595,
1763 508, 500, 501, 453, 520, 521, 0, 0, 0, 0,
1764 288, 619, 619, 85, 406, 479, 477, 479, 481, 461,
1765 473, 467, 475, 0, 0, 0, 3, 606, 6, 9,
1766 33, 45, 48, 56, 263, 55, 0, 73, 0, 77,
1767 87, 0, 53, 244, 0, 286, 0, 0, 311, 314,
1768 606, 0, 0, 0, 0, 57, 306, 275, 276, 452,
1769 454, 277, 278, 279, 281, 280, 282, 450, 451, 449,
1770 516, 517, 283, 0, 284, 61, 5, 8, 168, 179,
1771 169, 192, 165, 185, 175, 174, 195, 196, 190, 173,
1772 172, 167, 193, 197, 198, 177, 166, 180, 184, 186,
1773 178, 171, 187, 194, 189, 188, 181, 191, 176, 164,
1774 183, 182, 163, 170, 161, 162, 158, 159, 160, 116,
1775 118, 117, 153, 154, 149, 131, 132, 133, 140, 137,
1776 139, 134, 135, 155, 156, 141, 142, 146, 150, 136,
1777 138, 128, 129, 130, 143, 144, 145, 147, 148, 151,
1778 152, 157, 121, 123, 125, 26, 119, 120, 122, 124,
1779 0, 0, 0, 0, 0, 0, 0, 0, 258, 0,
1780 245, 268, 71, 262, 619, 0, 516, 517, 0, 284,
1781 619, 589, 72, 70, 608, 69, 0, 619, 430, 68,
1782 608, 609, 0, 0, 21, 241, 0, 0, 334, 335,
1783 297, 300, 431, 0, 220, 0, 221, 294, 0, 19,
1784 0, 0, 606, 15, 18, 608, 75, 14, 290, 608,
1785 0, 612, 612, 246, 0, 0, 612, 587, 608, 0,
1786 0, 0, 83, 338, 0, 93, 94, 101, 308, 407,
1787 497, 496, 498, 495, 0, 494, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 502, 503, 52,
1789 235, 236, 615, 616, 4, 617, 607, 0, 0, 0,
1790 0, 0, 0, 0, 435, 433, 420, 62, 305, 414,
1791 416, 0, 89, 0, 81, 78, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 428, 619, 426, 0, 54, 0, 0,
1795 0, 0, 606, 0, 607, 0, 360, 359, 0, 0,
1796 516, 517, 284, 111, 112, 0, 0, 114, 0, 0,
1797 516, 517, 284, 327, 188, 181, 191, 176, 158, 159,
1798 160, 116, 117, 585, 329, 584, 0, 605, 604, 0,
1799 307, 455, 0, 0, 126, 592, 294, 269, 593, 265,
1800 0, 0, 0, 259, 267, 428, 619, 426, 0, 0,
1801 0, 260, 608, 0, 299, 264, 608, 254, 619, 619,
1802 253, 608, 304, 51, 23, 25, 24, 0, 301, 0,
1803 0, 0, 428, 426, 0, 17, 0, 608, 292, 13,
1804 607, 74, 608, 289, 295, 614, 613, 247, 614, 249,
1805 296, 588, 0, 100, 502, 503, 91, 86, 0, 428,
1806 619, 426, 548, 483, 486, 484, 499, 480, 456, 478,
1807 457, 458, 482, 459, 460, 0, 463, 469, 0, 470,
1808 465, 466, 0, 471, 0, 472, 0, 0, 618, 7,
1809 27, 28, 29, 30, 31, 49, 50, 619, 619, 59,
1810 63, 619, 0, 34, 43, 0, 44, 608, 0, 79,
1811 90, 47, 46, 0, 199, 268, 42, 217, 225, 230,
1812 231, 232, 227, 229, 239, 240, 233, 234, 210, 211,
1813 237, 238, 608, 226, 228, 222, 223, 224, 212, 213,
1814 214, 215, 216, 597, 599, 598, 600, 0, 263, 425,
1815 608, 597, 599, 598, 600, 0, 263, 0, 619, 351,
1816 0, 350, 0, 0, 0, 0, 0, 0, 294, 428,
1817 619, 426, 319, 324, 111, 112, 113, 0, 523, 322,
1818 522, 428, 619, 426, 0, 0, 548, 331, 597, 598,
1819 263, 35, 201, 41, 209, 0, 199, 591, 0, 270,
1820 266, 619, 597, 598, 608, 597, 598, 590, 298, 610,
1821 250, 255, 257, 303, 22, 0, 242, 0, 32, 423,
1822 421, 208, 0, 76, 16, 291, 612, 0, 84, 97,
1823 99, 608, 597, 598, 554, 551, 550, 549, 552, 0,
1824 565, 0, 576, 566, 580, 579, 575, 548, 408, 547,
1825 411, 553, 555, 557, 533, 563, 619, 568, 619, 573,
1826 533, 578, 533, 0, 531, 487, 0, 462, 464, 474,
1827 468, 476, 218, 219, 398, 608, 0, 396, 395, 0,
1828 619, 0, 274, 0, 88, 82, 0, 0, 0, 0,
1829 0, 0, 429, 66, 0, 0, 432, 0, 0, 427,
1830 64, 619, 349, 287, 619, 619, 441, 619, 352, 619,
1831 354, 312, 353, 315, 0, 0, 318, 601, 293, 608,
1832 597, 598, 0, 0, 525, 0, 0, 111, 112, 115,
1833 608, 0, 608, 548, 0, 0, 0, 252, 417, 58,
1834 251, 0, 127, 271, 261, 0, 0, 432, 0, 0,
1835 619, 608, 11, 0, 248, 92, 95, 0, 559, 554,
1836 0, 372, 363, 365, 608, 361, 608, 0, 0, 540,
1837 0, 529, 583, 567, 0, 530, 0, 543, 577, 0,
1838 545, 581, 488, 490, 491, 492, 485, 493, 554, 0,
1839 394, 608, 0, 379, 561, 619, 619, 571, 379, 379,
1840 377, 400, 0, 0, 0, 0, 0, 272, 80, 200,
1841 0, 40, 206, 39, 207, 67, 424, 611, 0, 37,
1842 204, 38, 205, 65, 422, 442, 443, 619, 444, 0,
1843 619, 357, 0, 0, 355, 0, 0, 0, 317, 0,
1844 0, 432, 0, 325, 0, 0, 432, 328, 586, 608,
1845 0, 527, 332, 418, 419, 202, 0, 256, 302, 20,
1846 569, 608, 0, 370, 0, 556, 0, 0, 0, 409,
1847 532, 558, 533, 533, 564, 619, 582, 533, 574, 533,
1848 533, 0, 0, 0, 560, 0, 397, 385, 387, 0,
1849 375, 376, 0, 390, 0, 392, 0, 436, 434, 0,
1850 415, 273, 243, 36, 203, 0, 0, 446, 358, 0,
1851 12, 448, 0, 309, 310, 0, 0, 270, 619, 320,
1852 0, 524, 323, 526, 330, 548, 362, 373, 0, 368,
1853 364, 410, 0, 0, 0, 536, 0, 538, 528, 0,
1854 544, 0, 541, 546, 0, 570, 294, 428, 399, 378,
1855 379, 379, 562, 619, 379, 572, 379, 379, 404, 608,
1856 402, 405, 60, 0, 445, 0, 102, 103, 110, 0,
1857 447, 0, 313, 316, 438, 439, 437, 0, 0, 0,
1858 0, 371, 0, 366, 413, 412, 533, 533, 533, 533,
1859 489, 601, 293, 0, 382, 0, 384, 374, 0, 391,
1860 0, 388, 393, 0, 401, 109, 428, 619, 426, 619,
1861 619, 0, 326, 0, 369, 0, 537, 0, 534, 539,
1862 542, 379, 379, 379, 379, 403, 601, 108, 608, 597,
1863 598, 440, 356, 321, 333, 367, 533, 383, 0, 380,
1864 386, 389, 432, 535, 379, 381
1870 -1, 1, 2, 66, 67, 68, 236, 567, 568, 252,
1871 253, 446, 254, 437, 70, 71, 358, 72, 73, 510,
1872 690, 243, 75, 76, 255, 77, 78, 79, 467, 80,
1873 209, 377, 378, 192, 193, 194, 195, 605, 556, 197,
1874 82, 439, 211, 260, 228, 748, 426, 427, 225, 226,
1875 213, 413, 428, 516, 83, 356, 259, 452, 625, 360,
1876 846, 361, 847, 732, 987, 736, 733, 930, 594, 596,
1877 746, 935, 245, 85, 86, 87, 88, 89, 90, 91,
1878 92, 93, 94, 713, 570, 721, 843, 844, 369, 772,
1879 773, 774, 959, 898, 801, 686, 687, 802, 969, 970,
1880 278, 279, 472, 777, 658, 879, 320, 511, 95, 96,
1881 711, 704, 565, 557, 318, 508, 507, 577, 986, 715,
1882 837, 916, 920, 97, 98, 99, 100, 101, 102, 103,
1883 290, 485, 104, 294, 105, 106, 292, 296, 286, 284,
1884 288, 477, 676, 675, 792, 891, 796, 107, 285, 108,
1885 109, 216, 217, 112, 218, 219, 589, 735, 744, 880,
1886 779, 745, 661, 662, 663, 664, 665, 804, 805, 666,
1887 667, 668, 669, 807, 808, 670, 671, 672, 673, 674,
1888 781, 396, 595, 265, 429, 221, 115, 629, 559, 399,
1889 304, 423, 424, 706, 457, 571, 364, 257
1894 #define YYPACT_NINF -810
1897 -810, 102, 2888, -810, 7502, -810, -810, -810, 7025, -810,
1898 -810, -810, -810, -810, -810, -810, 7615, 7615, -810, -810,
1899 7615, 4210, 3805, -810, -810, -810, -810, 190, 6892, -21,
1900 -810, 10, -810, -810, -810, 3130, 3940, -810, -810, 3265,
1901 -810, -810, -810, -810, -810, -810, 8971, 8971, 130, 5262,
1902 9084, 7954, 8293, 7284, -810, 6759, -810, -810, -810, 54,
1903 70, 225, 228, 515, 9197, 8971, -810, 245, -810, 1021,
1904 -810, 269, -810, -810, 73, 120, 87, -810, 98, 9310,
1905 -810, 148, 3109, 44, 359, -810, 9084, 9084, -810, -810,
1906 6149, 9419, 9528, 9637, 6625, 30, 86, -810, -810, 230,
1907 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
1908 3, 385, -810, 348, 490, -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, -810, -810, -810, -810, -810,
1916 -810, -810, -810, -810, -810, 285, -810, -810, -810, -810,
1917 253, 8971, 374, 5401, 8971, 8971, 8971, 8971, -810, 328,
1918 3109, 364, -810, -810, 313, 369, 208, 224, 395, 247,
1919 354, -810, -810, -810, 6036, -810, 7615, 7615, -810, -810,
1920 6262, -810, 9084, 844, -810, 360, 388, 5540, -810, -810,
1921 -810, 379, 400, 73, -810, 464, 463, 501, 7728, -810,
1922 5262, 402, 245, -810, 1021, -21, 437, -810, 269, -21,
1923 415, 8, 317, -810, 364, 440, 317, -810, -21, 525,
1924 615, 9746, 470, -810, 488, 508, 575, 612, -810, -810,
1925 -810, -810, -810, -810, 438, -810, 447, 451, 284, 475,
1926 540, 496, 60, 502, 576, 516, 61, 550, 565, -810,
1927 -810, -810, -810, -810, -810, -810, 6375, 9084, 9084, 9084,
1928 9084, 7728, 9084, 9084, -810, -810, -810, 549, -810, -810,
1929 -810, 8406, -810, 5262, 7393, 527, 8406, 8971, 8971, 8971,
1930 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971,
1931 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971, 8971,
1932 8971, 8971, 8971, 10025, 7615, 10102, 4619, 269, 110, 110,
1933 9084, 9084, 245, 654, 538, 631, -810, -810, 645, 668,
1934 85, 93, 108, 405, 410, 9084, 377, -810, 123, 661,
1935 -810, -810, -810, -810, 40, 42, 56, 167, 180, 279,
1936 332, 336, 343, -810, -810, -810, 30, -810, -810, 10179,
1937 -810, -810, 9197, 9197, -810, -810, 394, -810, -810, -810,
1938 8971, 8971, 7841, -810, -810, 10256, 7615, 10333, 8971, 8971,
1939 8067, -810, -21, 558, -810, -810, -21, -810, 564, 566,
1940 -810, 66, -810, -810, -810, -810, -810, 7025, -810, 8971,
1941 5671, 574, 10256, 10333, 8971, 1021, 581, -21, -810, -810,
1942 6488, 572, -21, -810, -810, 8180, -810, -810, 8293, -810,
1943 -810, -810, 360, 678, -810, -810, -810, 588, 9746, 10410,
1944 7615, 10487, 1081, -810, -810, -810, -810, -810, -810, -810,
1945 -810, -810, -810, -810, -810, 302, -810, -810, 594, -810,
1946 -810, -810, 306, -810, 597, -810, 8971, 8971, -810, -810,
1947 -810, -810, -810, -810, -810, -810, -810, 63, 63, -810,
1948 -810, 63, 8971, -810, 605, 607, -810, -21, 9746, 617,
1949 -810, -810, -810, 636, 1231, -810, -810, 463, 2567, 2567,
1950 2567, 2567, 976, 976, 2722, 2633, 2567, 2567, 3244, 3244,
1951 339, 339, 1305, 976, 976, 986, 986, 1119, 255, 255,
1952 463, 463, 463, 4345, 3400, 4480, 3535, 400, 620, -810,
1953 -21, 591, -810, 742, -810, 400, 4075, 747, 754, -810,
1954 4758, 756, 5036, 52, 52, 654, 8519, 747, 121, 10564,
1955 7615, 10641, -810, 269, -810, 678, -810, 245, -810, -810,
1956 -810, 10718, 7615, 10179, 4619, 9084, 1274, -810, -810, -810,
1957 1148, -810, 2322, -810, 3109, 7025, 2974, -810, 8971, 364,
1958 -810, 354, 2995, 3670, -21, 398, 497, -810, -810, -810,
1959 -810, 7841, 8067, -810, -810, 9084, 3109, 644, -810, -810,
1960 -810, 3109, 5671, 212, -810, -810, 317, 9746, 588, 495,
1961 323, -21, 337, 376, 676, -810, -810, -810, -810, 8971,
1962 -810, 896, -810, -810, -810, -810, -810, 1142, -810, -810,
1963 -810, -810, -810, -810, 656, -810, 657, 743, 663, -810,
1964 667, 750, 671, 760, -810, -810, 763, -810, -810, -810,
1965 -810, -810, 463, 463, -810, 793, 5810, -810, -810, 5540,
1966 63, 5810, 679, 8632, -810, 588, 9746, 9197, 8971, 699,
1967 9197, 9197, -810, 549, 400, 681, 759, 9197, 9197, -810,
1968 549, 400, -810, -810, 8745, 810, -810, 718, -810, 810,
1969 -810, -810, -810, -810, 747, 92, -810, 81, 149, -21,
1970 144, 155, 9084, 245, -810, 9084, 4619, 495, 323, -810,
1971 -21, 747, 66, 1142, 4619, 245, 7158, -810, 86, 120,
1972 -810, 8971, -810, -810, -810, 8971, 8971, 504, 8971, 8971,
1973 694, 66, -810, 700, -810, -810, 390, 8971, -810, -810,
1974 896, 473, -810, 702, -21, -810, -21, 124, 1142, -810,
1975 571, -810, -810, -810, 38, -810, 1142, -810, -810, 881,
1976 -810, -810, -810, -810, -810, -810, -810, -810, 720, 9855,
1977 -810, -21, 716, 703, -810, 707, 663, -810, 723, 724,
1978 -810, 725, 856, 737, 5540, 859, 8971, 740, 588, 3109,
1979 8971, -810, 3109, -810, 3109, -810, -810, -810, 9197, -810,
1980 3109, -810, 3109, -810, -810, 605, -810, 797, -810, 5149,
1981 872, -810, 9084, 747, -810, 747, 5810, 5810, -810, 8858,
1982 4897, 159, 52, -810, 245, 747, -810, -810, -810, -21,
1983 747, -810, -810, -810, -810, 3109, 8971, 8067, -810, -810,
1984 -810, -21, 875, 752, 953, -810, 762, 5810, 5540, -810,
1985 -810, -810, 753, 757, -810, 663, -810, 767, -810, 768,
1986 767, 5923, 9855, 848, 689, 787, -810, 1386, -810, 622,
1987 -810, -810, 1386, -810, 1533, -810, 1028, -810, -810, 778,
1988 -810, 784, 3109, -810, 3109, 9964, 110, -810, -810, 5810,
1989 -810, -810, 110, -810, -810, 747, 747, -810, 383, -810,
1990 4619, -810, -810, -810, -810, 1274, -810, 785, 875, 672,
1991 -810, -810, 911, 792, 1142, -810, 881, -810, -810, 881,
1992 -810, 881, -810, -810, 820, 689, -810, 10795, -810, -810,
1993 806, 809, -810, 663, 811, -810, 812, 811, -810, 352,
1994 -810, -810, -810, 891, -810, 691, 508, 575, 612, 4619,
1995 -810, 4758, -810, -810, -810, -810, -810, 5810, 747, 4619,
1996 875, 785, 875, 823, -810, -810, 767, 824, 767, 767,
1997 -810, 818, 826, 1386, -810, 1533, -810, -810, 1533, -810,
1998 1533, -810, -810, 1028, -810, 678, 10872, 7615, 10949, 754,
1999 718, 747, -810, 747, 785, 875, -810, 881, -810, -810,
2000 -810, 811, 825, 811, 811, -810, 49, 323, -21, 179,
2001 215, -810, -810, -810, -810, 785, 767, -810, 1533, -810,
2002 -810, -810, 216, -810, 811, -810
2008 -810, -810, -810, -382, -810, 26, -810, -549, -7, -810,
2009 513, -810, 33, -810, -315, -33, -63, -55, -810, -216,
2010 -810, 766, -13, 874, -164, 20, -73, -810, -409, 29,
2011 1882, -309, 882, -54, -810, -5, -810, -810, 6, -810,
2012 1208, -810, 1366, -810, -41, 256, -344, 78, -14, -810,
2013 -384, -205, -4, -304, -15, -810, -810, -810, -810, -810,
2014 -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
2015 -810, -810, 64, -810, -810, -810, -810, -810, -810, -810,
2016 -810, -810, -810, -1, -333, -519, -44, -623, -810, -789,
2017 -771, 211, 297, 71, -810, -437, -810, -693, -810, -29,
2018 -810, -810, -810, -810, -810, -810, 237, -810, -810, -810,
2019 -810, -810, -810, -810, -94, -810, -810, -531, -810, -31,
2020 -810, -810, -810, -810, -810, -810, 890, -810, -810, -810,
2021 -810, 701, -810, -810, -810, -810, -810, -810, -810, 940,
2022 -810, -126, -810, -810, -810, -810, -810, -3, -810, 11,
2023 -810, 1400, 1673, 905, 1898, 1689, -810, -810, 65, -451,
2024 -102, -385, -809, -588, -689, -289, 222, 107, -810, -810,
2025 -810, 18, -721, -764, 115, 235, -810, -634, -810, -37,
2026 -627, -810, -810, -810, 114, -388, -810, -324, -810, 623,
2027 -47, -9, -123, -568, -214, 21, -11, -2
2033 #define YYTABLE_NINF -620
2036 116, 283, 400, 208, 208, 198, 325, 208, 229, 299,
2037 560, 521, 214, 214, 196, 421, 214, 258, 232, 199,
2038 235, 659, 526, 234, 359, 198, 572, 362, 610, 558,
2039 117, 566, 617, 316, 196, 69, 610, 69, 273, 199,
2040 394, 785, 251, 363, 724, 741, 757, 261, 459, 263,
2041 267, 809, 461, 357, 357, 723, 306, 357, 627, 638,
2042 317, 196, -106, 775, 273, 888, 84, 586, 84, 256,
2043 617, 689, 614, 766, 691, 600, 273, 273, 273, 720,
2044 215, 215, 272, 876, 215, 940, 447, 660, 305, 881,
2045 -518, 558, 840, 566, 212, 222, 845, 971, 223, 314,
2046 196, 937, 3, 312, 313, 569, -106, 432, 895, 695,
2047 -102, 305, 314, 84, 215, 397, -102, 274, -103, 630,
2048 231, 488, 494, 569, 587, -510, 641, -509, 215, -338,
2049 220, 220, 451, -110, 220, 654, 453, -93, 965, 684,
2050 237, -511, 455, 274, 883, 659, -109, 630, 319, 456,
2051 215, 215, 889, 877, 215, 368, 379, 379, 655, 517,
2052 479, 851, 482, 398, 486, 262, 266, 991, 486, -105,
2053 489, 495, 856, -510, -108, -509, -338, -338, 900, 901,
2054 -107, 685, 775, 873, -104, -597, 247, 855, -106, -511,
2055 -106, 302, -105, 303, 289, 860, 251, 431, 466, 433,
2056 321, 940, 316, 315, 971, 449, 659, 231, 881, 227,
2057 291, 208, 414, 208, 208, -97, 315, -597, 414, -93,
2058 214, 1024, 214, 888, 421, 430, 849, -94, -107, -104,
2059 441, 302, 322, 303, 617, 878, 729, 610, 610, 965,
2060 588, 450, -101, 251, 500, 501, 502, 503, 740, 302,
2061 763, 303, -512, 814, 1045, -100, 273, 630, 948, 462,
2062 881, 326, 302, 961, 303, -514, 513, 84, 966, 630,
2063 256, 522, 776, 305, 357, 357, 357, 357, -96, 505,
2064 506, 445, 739, -99, 775, -598, 775, 818, 215, -98,
2065 215, 215, 659, -95, 215, -518, 215, 573, 574, 618,
2066 -512, 84, 422, 620, 425, 984, 312, 313, 623, 273,
2067 997, -519, 84, -514, 84, 575, 251, 515, -105, 881,
2068 -105, -102, 515, 327, 633, -74, 230, 357, 357, 635,
2069 56, 231, 499, 929, 419, 274, 1007, -103, 220, 69,
2070 220, 208, 583, 256, 504, 473, -88, 601, 603, 481,
2071 775, 993, 430, 519, -107, -104, -107, -104, 859, 678,
2072 -110, 564, -96, 473, -513, 293, 678, 473, 295, 1032,
2073 84, 215, 215, 215, 215, 84, 215, 215, 350, 351,
2074 352, 988, 521, 305, 302, 215, 303, 84, 274, 230,
2075 215, 474, 850, 475, 694, 466, 803, 985, 839, 590,
2076 576, -98, 775, 208, 775, 564, 754, 327, -293, 474,
2077 836, 475, -513, 474, 430, 475, -432, -515, 215, 404,
2078 84, -504, 764, 564, 215, 215, 414, 414, -507, 584,
2079 406, -594, 624, 585, 198, 402, -595, 775, 116, 215,
2080 1023, 410, 677, 196, 353, 466, 680, 412, 199, 564,
2081 -96, 458, 411, 273, 415, -293, -293, 208, 456, -598,
2082 348, 349, 350, 351, 352, -515, 215, 215, 430, -504,
2083 1052, -96, -519, 69, -96, -432, -507, 564, -96, 617,
2084 215, 444, 418, 610, 659, 758, 1013, 825, 420, -98,
2085 -504, 354, 355, 231, 833, -507, 438, 887, -103, 473,
2086 890, 416, 417, 273, 84, 688, 688, -109, 473, 688,
2087 -98, -105, 473, -98, 84, 224, 702, -98, 440, -94,
2088 -432, -601, -432, -432, 709, 769, 611, 645, 646, 647,
2089 648, 327, 274, 699, 215, -594, 227, -504, -504, 448,
2090 -595, -594, -507, -507, 703, 474, -595, 475, 476, 442,
2091 -73, 705, 710, 454, 474, 754, 475, 478, 474, 747,
2092 475, 480, 742, 717, 765, 719, 716, 208, 787, 636,
2093 790, 460, 725, 469, 297, 298, 726, 403, 430, 208,
2094 -601, 463, 274, 979, 759, 483, 749, 564, 444, 981,
2095 430, 866, 761, -516, 722, 722, 416, 443, 750, 564,
2096 752, 473, 198, -110, 468, 705, 487, 872, 734, 414,
2097 -107, 196, 490, 964, -109, 967, 199, -104, 496, 858,
2098 470, 471, 273, 466, -101, -601, 493, -601, -601, 649,
2099 116, -597, 705, 497, 84, -100, 84, 473, 868, 650,
2100 -516, -516, 522, 509, 215, 821, 823, 474, 810, 475,
2101 484, 875, 829, 831, 863, 996, 215, 998, 84, 215,
2102 -517, 520, 999, 826, 782, 69, 782, 653, 654, 852,
2103 747, 576, 854, 1038, 464, 465, 811, 498, 707, 812,
2104 799, 273, 813, 474, 815, 475, 491, 578, 688, 215,
2105 650, 655, 862, 582, 630, 619, 84, -284, 621, 357,
2106 622, 274, 357, 806, -105, 628, -88, -517, -517, 750,
2107 515, 632, 838, 841, 1031, 841, 1033, 841, 653, 654,
2108 705, 1034, 637, 848, 769, -96, 645, 646, 647, 648,
2109 579, 705, 842, 839, 679, 760, 933, 681, 1046, -268,
2110 857, 693, 655, 886, -284, -284, 591, 886, 936, 697,
2111 84, 696, 196, 84, 853, 84, -423, 712, 414, 1054,
2112 274, 215, 714, -294, 215, 215, 861, 811, 74, 718,
2113 74, 215, 215, 913, 957, 762, 1016, 580, 581, 922,
2114 945, 947, 74, 74, 273, 950, 74, 952, 953, 767,
2115 778, 780, 811, 592, 593, 783, 215, 784, 885, 215,
2116 84, 786, 788, 782, 782, 789, 992, 909, 84, 357,
2117 -294, -294, 791, -269, 820, 74, 74, 793, 794, 827,
2118 795, 592, 593, 1017, 1018, 839, 44, 45, 867, 708,
2119 74, 869, 918, 892, 896, 917, 874, 897, 921, 925,
2120 926, 899, 923, 928, 924, 798, 828, 645, 646, 647,
2121 648, 799, 74, 74, 932, -107, 74, 902, 904, 934,
2122 810, 650, 886, 894, 906, 810, 907, 810, 908, 910,
2123 942, 943, -104, 722, -270, 931, -98, 273, 84, 903,
2124 905, 919, 651, 782, 954, 915, 938, 944, 652, 653,
2125 654, 946, 215, -95, 1026, 1028, 1029, 1030, 434, 941,
2126 273, 949, 951, 84, 956, 958, 215, 435, 436, 972,
2127 84, 84, 980, 655, 84, 806, 656, 963, -271, 990,
2128 806, 994, 806, 995, 982, 983, 841, 769, 1000, 645,
2129 646, 647, 648, 769, 231, 645, 646, 647, 648, 649,
2130 1003, 84, 84, 1005, 1053, 1008, 1010, 1015, 769, 650,
2131 645, 646, 647, 648, -597, 84, 955, 1025, 1027, 1048,
2132 1014, 782, -598, 634, 770, 366, 810, 834, 810, 74,
2133 651, 810, 1019, 810, 1020, 383, 1042, 653, 654, 975,
2134 1021, 871, 800, 84, 1035, 770, 864, 1022, 1041, 401,
2135 74, 771, 74, 74, 84, 492, 74, 287, 74, 395,
2136 989, 655, 884, 74, 208, 769, 962, 645, 646, 647,
2137 648, 810, 960, 882, 74, 430, 74, 716, 841, 597,
2138 1043, 806, 1044, 806, 564, 0, 806, 0, 806, 705,
2139 0, 1004, 1006, 0, 0, 1009, 0, 1011, 1012, 0,
2140 0, 0, 770, 84, 327, 84, 0, 0, 939, 0,
2141 0, 84, 0, 84, 327, 0, 0, 0, 0, 340,
2142 341, 307, 308, 309, 310, 311, 806, 0, 0, 340,
2143 341, 0, 74, 74, 74, 74, 74, 74, 74, 74,
2144 968, 215, 645, 646, 647, 648, 0, 74, 0, 74,
2145 0, 0, 74, 0, 345, 346, 347, 348, 349, 350,
2146 351, 352, 1047, 1049, 1050, 1051, 347, 348, 349, 350,
2147 351, 352, 0, 0, 0, 0, 0, 0, 0, 0,
2148 74, 0, 74, 0, 0, 1055, 74, 74, 0, 0,
2149 0, 0, 0, 644, 0, 645, 646, 647, 648, 649,
2150 0, 74, 0, 0, 0, 0, 0, 0, -619, 650,
2151 0, 0, 0, 0, 0, 0, -619, -619, -619, 0,
2152 0, -619, -619, -619, 0, -619, 0, 0, 74, 74,
2153 651, 0, 0, 0, -619, -619, 652, 653, 654, 0,
2154 0, 0, 74, 0, 0, -619, -619, 327, -619, -619,
2155 -619, -619, -619, 0, 644, 0, 645, 646, 647, 648,
2156 649, 655, 340, 341, 656, 0, 74, 0, 0, 0,
2157 650, 0, 0, 0, 0, 0, 74, 657, 0, 0,
2158 0, 0, 0, 0, 210, 210, 0, 0, 210, 0,
2159 0, 651, 0, -619, 0, 0, 74, 652, 653, 654,
2160 348, 349, 350, 351, 352, 0, 0, 0, 0, 0,
2161 0, 0, 0, 0, 244, 246, -619, 0, 0, 210,
2162 210, 0, 655, 0, 0, 656, 0, 0, 0, 0,
2163 0, 0, 300, 301, 0, 698, 0, 0, -619, -619,
2164 0, -619, 0, 0, 227, -619, 0, -619, 0, -619,
2165 0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
2166 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
2167 338, 339, 0, 0, 340, 341, 0, 0, 0, 0,
2168 0, 0, 0, 0, 0, 0, 644, 0, 645, 646,
2169 647, 648, 649, 0, 0, 0, 74, 0, 74, 0,
2170 0, 0, 650, 0, 0, 342, 74, 343, 344, 345,
2171 346, 347, 348, 349, 350, 351, 352, 0, 74, 0,
2172 74, 74, 0, 651, 0, -245, 0, 0, 0, 652,
2173 653, 654, 0, 327, 328, 329, 330, 331, 332, 333,
2174 334, 335, 336, 337, 338, 339, 0, 0, 340, 341,
2175 0, 74, 0, 0, 655, 0, 0, 656, 74, 0,
2176 0, 0, 110, 0, 110, 0, 0, 0, 0, 210,
2177 743, 0, 210, 210, 210, 300, 0, 0, 264, 342,
2178 0, 343, 344, 345, 346, 347, 348, 349, 350, 351,
2179 352, 0, 210, 0, 210, 210, 0, 0, 798, 0,
2180 645, 646, 647, 648, 799, 0, 231, 0, 0, 110,
2181 0, 0, 74, 275, 650, 74, 0, 74, 0, 0,
2182 0, 0, 0, 74, 0, 0, 74, 74, 0, 0,
2183 0, 0, 0, 74, 74, 651, 0, 0, 0, 275,
2184 0, 652, 653, 654, 0, 0, 0, 0, 0, 0,
2185 0, 370, 380, 380, 380, 0, 0, 0, 74, 0,
2186 0, 74, 74, 0, 0, 0, 655, 0, 0, 656,
2187 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188 0, 0, 0, 0, 0, 0, 0, 0, 0, 210,
2189 0, 0, 0, 0, 524, 527, 528, 529, 530, 531,
2190 532, 533, 534, 535, 536, 537, 538, 539, 540, 541,
2191 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
2192 552, 0, 210, 0, 0, 0, 0, 405, 0, 0,
2193 407, 408, 409, 0, 0, 0, 0, 0, 0, 0,
2194 74, 0, 0, 0, 0, 769, 0, 645, 646, 647,
2195 648, 799, 0, 0, 74, 0, 0, 0, 0, 0,
2196 0, 650, 0, 110, 0, 74, 0, 0, 74, 0,
2197 602, 604, 74, 74, 0, 0, 74, 0, 606, 210,
2198 210, 0, 651, 0, 210, 0, 602, 604, 210, 653,
2199 654, 0, 0, 0, 0, 0, 0, 110, 0, 0,
2200 0, 0, 0, 74, 74, 0, 0, 626, 110, 0,
2201 110, 0, 631, 655, 0, 0, 0, 74, 0, 0,
2202 0, 0, 0, 210, 0, 0, 210, 0, 0, 0,
2203 0, 275, 0, 0, 0, 111, 0, 111, 210, 0,
2204 0, 0, 0, 0, 0, 74, 0, 514, 0, 0,
2205 0, 114, 525, 114, 0, 0, 74, 0, 0, 0,
2206 0, 0, 0, 0, 682, 683, 110, 0, 0, 0,
2207 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
2208 210, 0, 111, 110, 275, 0, 276, 0, 0, 0,
2209 0, 0, 0, 0, 0, 0, 0, 0, 114, 0,
2210 0, 0, 277, 0, 0, 74, 0, 74, 0, 0,
2211 0, 0, 276, 74, 0, 74, 110, 0, 0, 0,
2212 0, 0, 0, 0, 371, 381, 381, 381, 277, 0,
2213 0, 0, 0, 0, 0, 0, 0, 607, 609, 0,
2214 372, 382, 382, 74, 210, 0, 264, 0, 210, 0,
2215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2216 210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2217 0, 0, 0, 0, 0, 0, 210, 0, 0, 0,
2218 0, 609, 0, 0, 264, 0, 0, 0, 0, 210,
2219 210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2220 110, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2221 110, 0, 0, 0, 0, 0, 0, 210, 0, 0,
2222 0, 0, 0, 0, 0, 0, 0, 0, 275, 0,
2223 0, 0, 0, 0, 0, 0, 111, 0, 692, 0,
2224 0, 0, 0, 0, 81, 0, 81, 0, 0, 0,
2225 0, 0, 114, 0, 0, 0, 0, 0, 0, 0,
2226 113, 210, 113, 0, 0, 606, 819, 0, 822, 824,
2227 111, 0, 0, 0, 0, 830, 832, 0, 275, 0,
2228 0, 111, 210, 111, 0, 0, 114, 0, 0, 0,
2229 0, 81, 0, 0, 0, 0, 0, 114, 0, 114,
2230 0, 0, 525, 0, 276, 0, 0, 113, 0, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 865,
2232 277, 0, 0, 822, 824, 0, 830, 832, 0, 0,
2233 110, 0, 110, 367, 753, 210, 0, 0, 0, 111,
2234 0, 0, 0, 0, 111, 0, 0, 609, 264, 0,
2235 0, 0, 0, 0, 110, 114, 111, 276, 0, 0,
2236 114, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2237 0, 0, 114, 277, 0, 768, 0, 0, 0, 0,
2238 0, 0, 0, 0, 210, 0, 0, 0, 912, 111,
2239 0, 0, 110, 0, 0, 0, 914, 275, 0, 0,
2240 0, 0, 0, 0, 0, 114, 0, 0, 0, 0,
2241 0, 0, 0, 0, 0, 0, 0, 210, 0, 817,
2242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2243 0, 0, 0, 0, 914, 210, 0, 0, 0, 0,
2244 835, 0, 0, 0, 0, 81, 110, 0, 0, 110,
2245 0, 110, 0, 0, 0, 0, 275, 0, 0, 0,
2246 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2247 0, 0, 0, 111, 0, 0, 0, 0, 0, 81,
2248 0, 0, 0, 111, 0, 0, 0, 0, 0, 114,
2249 81, 0, 81, 870, 0, 113, 110, 0, 0, 114,
2250 0, 276, 0, 0, 110, 0, 113, 0, 113, 0,
2251 0, 0, 0, 0, 0, 0, 0, 277, 0, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 911, 0, 0, 0, 0, 0, 81, 0,
2255 0, 276, 0, 81, 0, 0, 0, 0, 0, 380,
2256 0, 0, 0, 0, 113, 81, 0, 277, 523, 113,
2257 0, 0, 0, 0, 110, 927, 0, 0, 0, 0,
2258 0, 113, 0, 0, 0, 210, 0, 0, 0, 0,
2259 0, 0, 0, 264, 0, 0, 0, 0, 81, 110,
2260 0, 0, 0, 111, 0, 111, 110, 110, 0, 0,
2261 110, 0, 0, 0, 113, 0, 0, 0, 0, 114,
2262 0, 114, 0, 0, 0, 0, 0, 111, 0, 0,
2263 0, 0, 0, 0, 0, 0, 0, 110, 110, 0,
2264 0, 0, 0, 114, 0, 0, 0, 0, 0, 0,
2265 0, 110, 380, 0, 0, 0, 0, 0, 0, 0,
2266 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
2267 276, 0, 0, 0, 0, 976, 0, 0, 0, 110,
2268 0, 114, 81, 0, 0, 0, 277, 0, 0, 0,
2269 110, 0, 81, 0, 0, 0, 0, 0, 113, 0,
2270 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
2271 0, 0, 0, 0, 0, 0, 0, 0, 0, 111,
2272 0, 0, 111, 0, 111, 797, 751, 0, 0, 276,
2273 0, 0, 0, 0, 0, 114, 0, 0, 114, 110,
2274 114, 110, 0, 0, 0, 277, 0, 110, 0, 110,
2275 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
2276 337, 338, 339, 0, 0, 340, 341, 0, 0, 111,
2277 0, 0, 0, 0, 0, 0, 0, 111, 0, 0,
2278 0, 0, 0, 0, 0, 114, 0, 0, 0, 0,
2279 0, 0, 0, 114, 0, 0, 342, 0, 343, 344,
2280 345, 346, 347, 348, 349, 350, 351, 352, 0, 0,
2281 0, 0, 81, 0, 81, 0, 0, 0, 0, 0,
2282 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
2283 113, 0, 381, 0, 0, 0, 81, 0, 0, 0,
2284 0, 0, 0, 0, 0, 0, 0, 111, 382, 0,
2285 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
2286 0, 0, 0, 114, 0, 0, 0, 0, 0, 0,
2287 0, 0, 111, 0, 81, 0, 0, 0, 0, 111,
2288 111, 0, 0, 111, 0, 0, 0, 0, 114, 0,
2289 113, 0, 0, 0, 0, 114, 114, 0, 0, 114,
2290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2291 111, 111, 0, 0, 0, 0, 0, 0, 0, 0,
2292 0, 0, 0, 0, 111, 381, 114, 114, 81, 0,
2293 0, 81, 0, 81, 0, 0, 0, 0, 0, 523,
2294 114, 382, 0, 0, 113, 0, 0, 113, 977, 113,
2295 0, 0, 111, 0, 0, 0, 0, 0, 0, 0,
2296 0, 0, 0, 111, 978, 0, 0, 0, 114, 0,
2297 0, 0, 0, 0, 0, 0, 0, 0, 81, 114,
2298 0, 0, 0, 0, 0, 0, 81, 0, 0, 0,
2299 0, 0, 0, 0, 113, 327, -620, -620, -620, -620,
2300 332, 333, 113, 0, -620, -620, 0, 0, 0, 0,
2301 340, 341, 111, 0, 111, 0, 0, 0, 0, 0,
2302 111, 0, 111, 0, 0, 0, 0, 0, 114, 0,
2303 114, 0, 0, 0, 0, 0, 114, 0, 114, 0,
2304 0, 0, 0, 343, 344, 345, 346, 347, 348, 349,
2305 350, 351, 352, 0, 0, 0, 81, 0, 0, 0,
2306 0, 327, 328, 329, 330, 331, 332, 333, 334, 0,
2307 336, 337, 113, 0, 0, 0, 340, 341, 0, 0,
2308 0, 81, 0, 0, 0, 0, 0, 0, 81, 81,
2309 0, 0, 81, 0, 0, 0, 0, 113, 0, 0,
2310 0, 0, 0, 0, 113, 113, 0, 0, 113, 343,
2311 344, 345, 346, 347, 348, 349, 350, 351, 352, 81,
2312 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2313 0, 0, 0, 81, 0, 113, 113, 0, 0, 0,
2314 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
2315 327, 328, 329, 330, 331, 332, 333, 974, 0, 336,
2316 337, 81, 0, 0, 0, 340, 341, 0, 0, 0,
2317 0, 0, 81, 0, 0, 0, 0, 113, 0, 0,
2318 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
2319 0, 0, 0, 0, 0, 0, 0, 0, 343, 344,
2320 345, 346, 347, 348, 349, 350, 351, 352, 0, 0,
2321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2322 0, 81, 0, 81, 0, 0, 0, 0, 0, 81,
2323 0, 81, 0, 0, 0, 0, 0, 113, 0, 113,
2324 0, 0, 0, 0, 0, 113, 0, 113, -619, 4,
2325 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2326 11, 0, 0, 0, 12, 0, 13, 14, 15, 16,
2327 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2328 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2329 0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
2330 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2331 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2333 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2334 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2335 58, 59, 60, 61, 62, -601, 0, 0, 0, 0,
2336 0, 0, 0, -601, -601, -601, 0, 0, -601, -601,
2337 -601, 0, -601, 0, 63, 64, 65, 0, 698, 0,
2338 0, -601, -601, -601, -601, 0, 0, -619, 0, -619,
2339 0, 0, -601, -601, 0, -601, -601, -601, -601, -601,
2340 0, 0, 327, 328, 329, 330, 331, 332, 333, 334,
2341 335, 336, 337, 338, 339, 0, 0, 340, 341, 0,
2342 0, 0, 0, -601, -601, -601, -601, -601, -601, -601,
2343 -601, -601, -601, -601, -601, -601, 0, 0, -601, -601,
2344 -601, 0, 755, -601, 0, 0, 0, 0, 342, -601,
2345 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2346 0, 0, 0, -601, 0, 0, -601, 0, -106, -601,
2347 -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
2348 -601, 0, 0, 0, 0, -601, -601, -601, -601, -601,
2349 -504, 0, -601, -601, -601, 0, -601, 0, -504, -504,
2350 -504, 0, 0, -504, -504, -504, 0, -504, 0, 0,
2351 0, 0, 0, 0, 0, -504, 0, -504, -504, -504,
2352 0, 0, 0, 0, 0, 0, 0, -504, -504, 0,
2353 -504, -504, -504, -504, -504, 0, 0, 327, 328, 329,
2354 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
2355 0, 0, 340, 341, 0, 0, 0, 0, -504, -504,
2356 -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
2357 -504, 0, 0, -504, -504, -504, 0, -504, -504, 0,
2358 0, 0, 0, 342, -504, 343, 344, 345, 346, 347,
2359 348, 349, 350, 351, 352, 0, 0, 0, -504, 0,
2360 0, -504, 0, -504, -504, -504, -504, -504, -504, -504,
2361 -504, -504, -504, -504, -504, -504, 0, 0, 0, 0,
2362 0, -504, -504, -504, -504, -507, 0, -504, -504, -504,
2363 0, -504, 0, -507, -507, -507, 0, 0, -507, -507,
2364 -507, 0, -507, 0, 0, 0, 0, 0, 0, 0,
2365 -507, 0, -507, -507, -507, 0, 0, 0, 0, 0,
2366 0, 0, -507, -507, 0, -507, -507, -507, -507, -507,
2367 0, 0, 327, 328, 329, 330, 331, 332, 333, 334,
2368 335, 336, 337, -620, -620, 0, 0, 340, 341, 0,
2369 0, 0, 0, -507, -507, -507, -507, -507, -507, -507,
2370 -507, -507, -507, -507, -507, -507, 0, 0, -507, -507,
2371 -507, 0, -507, -507, 0, 0, 0, 0, 0, -507,
2372 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2373 0, 0, 0, -507, 0, 0, -507, 0, -507, -507,
2374 -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
2375 -507, 0, 0, 0, 0, 0, -507, -507, -507, -507,
2376 -602, 0, -507, -507, -507, 0, -507, 0, -602, -602,
2377 -602, 0, 0, -602, -602, -602, 0, -602, 0, 0,
2378 0, 0, 0, 0, 0, 0, -602, -602, -602, -602,
2379 0, 0, 0, 0, 0, 0, 0, -602, -602, 0,
2380 -602, -602, -602, -602, -602, 0, 0, 0, 0, 0,
2381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2382 0, 0, 0, 0, 0, 0, 0, 0, -602, -602,
2383 -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
2384 -602, 0, 0, -602, -602, -602, 0, 0, -602, 0,
2385 0, 0, 0, 0, -602, 0, 0, 0, 0, 0,
2386 0, 0, 0, 0, 0, 0, 0, 0, -602, 0,
2387 0, -602, 0, 0, -602, -602, -602, -602, -602, -602,
2388 -602, -602, -602, -602, -602, -602, 0, 0, 0, 0,
2389 -602, -602, -602, -602, -602, -603, 0, -602, -602, -602,
2390 0, -602, 0, -603, -603, -603, 0, 0, -603, -603,
2391 -603, 0, -603, 0, 0, 0, 0, 0, 0, 0,
2392 0, -603, -603, -603, -603, 0, 0, 0, 0, 0,
2393 0, 0, -603, -603, 0, -603, -603, -603, -603, -603,
2394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2396 0, 0, 0, -603, -603, -603, -603, -603, -603, -603,
2397 -603, -603, -603, -603, -603, -603, 0, 0, -603, -603,
2398 -603, 0, 0, -603, 0, 0, 0, 0, 0, -603,
2399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2400 0, 0, 0, -603, 0, 0, -603, 0, 0, -603,
2401 -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
2402 -603, 0, 0, 0, 0, -603, -603, -603, -603, -603,
2403 -293, 0, -603, -603, -603, 0, -603, 0, -293, -293,
2404 -293, 0, 0, -293, -293, -293, 0, -293, 0, 0,
2405 0, 0, 0, 0, 0, 0, 0, -293, -293, -293,
2406 0, 0, 0, 0, 0, 0, 0, -293, -293, 0,
2407 -293, -293, -293, -293, -293, 0, 0, 0, 0, 0,
2408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2409 0, 0, 0, 0, 0, 0, 0, 0, -293, -293,
2410 -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
2411 -293, 0, 0, -293, -293, -293, 0, 756, -293, 0,
2412 0, 0, 0, 0, -293, 0, 0, 0, 0, 0,
2413 0, 0, 0, 0, 0, 0, 0, 0, -293, 0,
2414 0, -293, 0, -108, -293, -293, -293, -293, -293, -293,
2415 -293, -293, -293, -293, -293, -293, 0, 0, 0, 0,
2416 0, -293, -293, -293, -293, -431, 0, -293, -293, -293,
2417 0, -293, 0, -431, -431, -431, 0, 0, -431, -431,
2418 -431, 0, -431, 0, 0, 0, 0, 0, 0, 0,
2419 0, -431, -431, -431, 0, 0, 0, 0, 0, 0,
2420 0, 0, -431, -431, 0, -431, -431, -431, -431, -431,
2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2423 0, 0, 0, -431, -431, -431, -431, -431, -431, -431,
2424 -431, -431, -431, -431, -431, -431, 0, 0, -431, -431,
2425 -431, 0, 0, -431, 0, 0, 0, 0, 0, -431,
2426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2427 0, 0, 0, -431, 0, 0, 0, 0, 0, -431,
2428 0, -431, -431, -431, -431, -431, -431, -431, -431, -431,
2429 -431, 0, 0, 0, 0, -431, -431, -431, -431, -431,
2430 -285, 227, -431, -431, -431, 0, -431, 0, -285, -285,
2431 -285, 0, 0, -285, -285, -285, 0, -285, 0, 0,
2432 0, 0, 0, 0, 0, 0, 0, -285, -285, -285,
2433 0, 0, 0, 0, 0, 0, 0, -285, -285, 0,
2434 -285, -285, -285, -285, -285, 0, 0, 0, 0, 0,
2435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2436 0, 0, 0, 0, 0, 0, 0, 0, -285, -285,
2437 -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2438 -285, 0, 0, -285, -285, -285, 0, 0, -285, 0,
2439 0, 0, 0, 0, -285, 0, 0, 0, 0, 0,
2440 0, 0, 0, 0, 0, 0, 0, 0, -285, 0,
2441 0, -285, 0, 0, -285, -285, -285, -285, -285, -285,
2442 -285, -285, -285, -285, -285, -285, 0, 0, 0, 0,
2443 0, -285, -285, -285, -285, -421, 0, -285, -285, -285,
2444 0, -285, 0, -421, -421, -421, 0, 0, -421, -421,
2445 -421, 0, -421, 0, 0, 0, 0, 0, 0, 0,
2446 0, -421, -421, -421, 0, 0, 0, 0, 0, 0,
2447 0, 0, -421, -421, 0, -421, -421, -421, -421, -421,
2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2450 0, 0, 0, -421, -421, -421, -421, -421, -421, -421,
2451 -421, -421, -421, -421, -421, -421, 0, 0, -421, -421,
2452 -421, 0, 0, -421, 0, 0, 0, 0, 0, -421,
2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2454 0, 0, 0, -421, 0, 0, 0, 0, 0, -421,
2455 0, -421, -421, -421, -421, -421, -421, -421, -421, -421,
2456 -421, 0, 0, 0, 0, -421, -421, -421, -421, -421,
2457 -300, -421, -421, -421, -421, 0, -421, 0, -300, -300,
2458 -300, 0, 0, -300, -300, -300, 0, -300, 0, 0,
2459 0, 0, 0, 0, 0, 0, 0, -300, -300, 0,
2460 0, 0, 0, 0, 0, 0, 0, -300, -300, 0,
2461 -300, -300, -300, -300, -300, 0, 0, 0, 0, 0,
2462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2463 0, 0, 0, 0, 0, 0, 0, 0, -300, -300,
2464 -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
2465 -300, 0, 0, -300, -300, -300, 0, 0, -300, 0,
2466 0, 0, 0, 0, -300, 0, 0, 0, 0, 0,
2467 0, 0, 0, 0, 0, 0, 0, 0, -300, 0,
2468 0, 0, 0, 0, -300, 0, -300, -300, -300, -300,
2469 -300, -300, -300, -300, -300, -300, 0, 0, 0, 0,
2470 0, -300, -300, -300, -300, -601, 224, -300, -300, -300,
2471 0, -300, 0, -601, -601, -601, 0, 0, 0, -601,
2472 -601, 0, -601, 0, 0, 0, 0, 0, 0, 0,
2473 0, -601, 0, 0, 0, 0, 0, 0, 0, 0,
2474 0, 0, -601, -601, 0, -601, -601, -601, -601, -601,
2475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2477 0, 0, 0, -601, -601, -601, -601, -601, -601, -601,
2478 -601, -601, -601, -601, -601, -601, 0, 0, -601, -601,
2479 -601, 0, 700, 0, 0, 0, 0, 0, 0, 0,
2480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2481 0, 0, 0, -601, 0, 0, 0, 0, -106, -601,
2482 0, -601, -601, -601, -601, -601, -601, -601, -601, -601,
2483 -601, 0, 0, 0, 0, -601, -601, -601, -601, -97,
2484 -293, 0, -601, 0, -601, 0, -601, 0, -293, -293,
2485 -293, 0, 0, 0, -293, -293, 0, -293, 0, 0,
2486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2487 0, 0, 0, 0, 0, 0, 0, -293, -293, 0,
2488 -293, -293, -293, -293, -293, 0, 0, 0, 0, 0,
2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2490 0, 0, 0, 0, 0, 0, 0, 0, -293, -293,
2491 -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
2492 -293, 0, 0, -293, -293, -293, 0, 701, 0, 0,
2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2494 0, 0, 0, 0, 0, 0, 0, 0, -293, 0,
2495 0, 0, 0, -108, -293, 0, -293, -293, -293, -293,
2496 -293, -293, -293, -293, -293, -293, 0, 0, 0, 0,
2497 0, -293, -293, -293, -99, 0, 0, -293, 0, -293,
2498 248, -293, 5, 6, 7, 8, 9, -619, -619, -619,
2499 10, 11, 0, 0, -619, 12, 0, 13, 14, 15,
2500 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2501 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2502 0, 0, 0, 0, 28, 29, 249, 31, 32, 33,
2503 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2504 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2506 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2507 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2508 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2510 0, 0, 0, 0, 0, 63, 64, 65, 0, 0,
2511 0, 0, 0, 0, 0, 0, 0, 0, -619, 248,
2512 -619, 5, 6, 7, 8, 9, 0, 0, -619, 10,
2513 11, 0, -619, -619, 12, 0, 13, 14, 15, 16,
2514 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2515 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2516 0, 0, 0, 28, 29, 249, 31, 32, 33, 34,
2517 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2518 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2520 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2521 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2522 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2524 0, 0, 0, 0, 63, 64, 65, 0, 0, 0,
2525 0, 0, 0, 0, 0, 0, 0, -619, 248, -619,
2526 5, 6, 7, 8, 9, 0, 0, -619, 10, 11,
2527 0, 0, -619, 12, -619, 13, 14, 15, 16, 17,
2528 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2529 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2530 0, 0, 28, 29, 249, 31, 32, 33, 34, 35,
2531 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2532 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2534 0, 0, 0, 48, 0, 0, 49, 50, 0, 51,
2535 52, 0, 53, 0, 0, 54, 55, 56, 57, 58,
2536 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2538 0, 0, 0, 63, 64, 65, 0, 0, 0, 0,
2539 0, 0, 0, 0, 0, 0, -619, 248, -619, 5,
2540 6, 7, 8, 9, 0, 0, -619, 10, 11, 0,
2541 0, -619, 12, 0, 13, 14, 15, 16, 17, 18,
2542 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2543 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2544 0, 28, 29, 249, 31, 32, 33, 34, 35, 36,
2545 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2546 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2548 0, 0, 48, 0, 0, 49, 50, 0, 51, 52,
2549 0, 53, 0, 0, 54, 55, 56, 57, 58, 59,
2550 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2551 248, 0, 5, 6, 7, 8, 9, 0, -619, -619,
2552 10, 11, 63, 64, 65, 12, 0, 13, 14, 15,
2553 16, 17, 18, 19, 0, -619, 0, -619, 0, 20,
2554 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2555 0, 0, 0, 0, 28, 29, 249, 31, 32, 33,
2556 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2557 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2559 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2560 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2561 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2562 0, 0, 0, 248, 0, 5, 6, 7, 8, 9,
2563 0, 0, 0, 10, 11, 63, 64, 65, 12, 0,
2564 13, 14, 15, 16, 17, 18, 19, 0, -619, 0,
2565 -619, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2566 0, 27, 0, 0, 0, 0, 0, 28, 29, 249,
2567 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2568 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2570 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2571 0, 250, 50, 0, 51, 52, 0, 53, 0, 0,
2572 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2574 0, 0, 0, 0, 0, 0, 0, 0, 63, 64,
2575 65, 0, 0, 0, 0, 0, 0, 0, 0, -619,
2576 0, -619, 248, -619, 5, 6, 7, 8, 9, 0,
2577 0, 0, 10, 11, 0, 0, 0, 12, 0, 13,
2578 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2579 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2580 27, 0, 0, 0, 0, 0, 28, 29, 249, 31,
2581 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2582 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2584 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2585 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2586 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2588 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2589 0, 0, 0, 0, 0, 0, 0, 0, -619, 0,
2590 -619, 248, -619, 5, 6, 7, 8, 9, 0, 0,
2591 0, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2592 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2593 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2594 0, 0, 0, 0, 0, 28, 29, 249, 31, 32,
2595 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2596 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2598 0, 0, 0, 0, 0, 0, 48, 0, 0, 49,
2599 50, 0, 51, 52, 0, 53, 0, 0, 54, 55,
2600 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2602 0, 0, 0, 0, 0, 0, 63, 64, 65, 0,
2603 0, -619, 4, 0, 5, 6, 7, 8, 9, -619,
2604 0, -619, 10, 11, 0, 0, 0, 12, 0, 13,
2605 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2606 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2607 27, 0, 0, 0, 0, 0, 28, 29, 30, 31,
2608 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2609 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2612 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2613 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2615 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2616 0, 0, -619, 0, 0, 0, 0, 0, 0, 0,
2617 -619, 248, -619, 5, 6, 7, 8, 9, 0, 0,
2618 -619, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2619 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2620 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2621 0, 0, 0, 0, 0, 28, 29, 249, 31, 32,
2622 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2623 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2625 0, 0, 0, 0, 0, 0, 48, 0, 0, 49,
2626 50, 0, 51, 52, 0, 53, 0, 0, 54, 55,
2627 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2628 0, 0, 0, 0, 248, 0, 5, 6, 7, 8,
2629 9, 0, 0, 0, 10, 11, 63, 64, 65, 12,
2630 0, 13, 14, 15, 16, 17, 18, 19, 0, -619,
2631 0, -619, 0, 20, 21, 22, 23, 24, 25, 26,
2632 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2633 249, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2634 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2635 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2636 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2637 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
2638 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2639 0, -619, 0, 0, 0, 0, 0, 0, 0, 5,
2640 6, 7, 0, 9, 0, 0, 0, 10, 11, 63,
2641 64, 65, 12, 0, 13, 14, 15, 16, 17, 18,
2642 19, 0, -619, 0, -619, 0, 20, 21, 22, 23,
2643 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2644 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2645 37, 38, 39, 40, 201, 41, 42, 0, 43, 44,
2646 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2648 0, 0, 202, 0, 0, 203, 50, 0, 51, 52,
2649 0, 204, 205, 206, 54, 55, 56, 57, 58, 59,
2650 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2651 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2652 10, 11, 63, 207, 65, 12, 0, 13, 14, 15,
2653 16, 17, 18, 19, 0, 0, 0, 231, 0, 20,
2654 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2655 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2656 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2657 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2659 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2660 0, 51, 52, 0, 0, 0, 0, 54, 55, 56,
2661 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2662 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2663 0, 0, 0, 10, 11, 63, 64, 65, 12, 0,
2664 13, 14, 15, 16, 17, 18, 19, 0, 302, 0,
2665 303, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2666 0, 27, 0, 0, 0, 0, 0, 0, 29, 0,
2667 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2668 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2670 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2671 0, 203, 50, 0, 51, 52, 0, 0, 0, 0,
2672 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2673 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2674 7, 8, 9, 0, 0, 0, 10, 11, 63, 64,
2675 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2676 0, 0, 0, 231, 0, 20, 21, 22, 23, 24,
2677 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2678 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2679 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2680 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2682 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2683 53, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2684 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2685 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2686 11, 63, 64, 65, 12, 0, 13, 14, 15, 16,
2687 17, 18, 19, 0, 498, 0, 0, 0, 20, 21,
2688 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2689 0, 0, 0, 28, 29, 249, 31, 32, 33, 34,
2690 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2691 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2693 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2694 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2695 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 63, 64, 65, 0, 0, 0,
2698 0, 0, 0, 0, 0, 0, 0, 498, 118, 119,
2699 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2700 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2701 140, 141, 0, 0, 0, 142, 143, 144, 384, 385,
2702 386, 387, 149, 150, 151, 0, 0, 0, 0, 0,
2703 152, 153, 154, 155, 388, 389, 390, 391, 160, 37,
2704 38, 392, 40, 0, 0, 0, 0, 0, 0, 0,
2705 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2706 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
2707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
2709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2710 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2711 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
2712 191, 393, 118, 119, 120, 121, 122, 123, 124, 125,
2713 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2714 136, 137, 138, 139, 140, 141, 0, 0, 0, 142,
2715 143, 144, 145, 146, 147, 148, 149, 150, 151, 0,
2716 0, 0, 0, 0, 152, 153, 154, 155, 156, 157,
2717 158, 159, 160, 280, 281, 161, 282, 0, 0, 0,
2718 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
2719 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
2720 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
2721 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
2722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2723 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
2724 184, 185, 186, 187, 188, 0, 189, 190, 0, 0,
2725 0, 0, 0, 0, 191, 118, 119, 120, 121, 122,
2726 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2727 133, 134, 135, 136, 137, 138, 139, 140, 141, 0,
2728 0, 0, 142, 143, 144, 145, 146, 147, 148, 149,
2729 150, 151, 0, 0, 0, 0, 0, 152, 153, 154,
2730 155, 156, 157, 158, 159, 160, 233, 0, 161, 0,
2731 0, 0, 0, 0, 0, 0, 0, 0, 162, 163,
2732 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
2733 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
2734 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
2735 0, 55, 0, 0, 0, 0, 0, 0, 0, 0,
2736 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
2737 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
2738 190, 0, 0, 0, 0, 0, 0, 191, 118, 119,
2739 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2740 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2741 140, 141, 0, 0, 0, 142, 143, 144, 145, 146,
2742 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
2743 152, 153, 154, 155, 156, 157, 158, 159, 160, 0,
2744 0, 161, 0, 0, 0, 0, 0, 0, 0, 0,
2745 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2746 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748 177, 178, 0, 0, 55, 0, 0, 0, 0, 0,
2749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2750 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2751 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
2752 191, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2753 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2754 137, 138, 139, 140, 141, 0, 0, 0, 142, 143,
2755 144, 145, 146, 147, 148, 149, 150, 151, 0, 0,
2756 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
2757 159, 160, 0, 0, 161, 0, 0, 0, 0, 0,
2758 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
2759 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
2760 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
2761 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
2762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2763 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
2764 185, 186, 187, 188, 0, 189, 190, 5, 6, 7,
2765 0, 9, 0, 191, 0, 10, 11, 0, 0, 0,
2766 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2767 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2768 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2769 268, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2770 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773 269, 0, 0, 203, 50, 0, 51, 52, 0, 0,
2774 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2775 62, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2776 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
2777 270, 13, 14, 15, 238, 239, 18, 19, 271, 0,
2778 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2779 0, 0, 200, 0, 0, 0, 0, 0, 0, 268,
2780 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2781 40, 0, 41, 42, 0, 43, 44, 45, 0, 0,
2782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2783 0, 0, 0, 0, 0, 0, 0, 0, 0, 269,
2784 0, 0, 203, 50, 0, 51, 52, 0, 0, 0,
2785 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2786 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
2787 0, 0, 0, 10, 11, 0, 0, 0, 12, 270,
2788 13, 14, 15, 16, 17, 18, 19, 518, 0, 0,
2789 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2790 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2791 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2792 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2794 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2795 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2796 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2797 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2798 7, 0, 9, 0, 0, 0, 10, 11, 63, 64,
2799 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2800 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2801 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
2802 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2803 38, 39, 40, 201, 41, 42, 0, 43, 44, 45,
2804 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2807 204, 205, 206, 54, 55, 56, 57, 58, 59, 60,
2808 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2809 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2810 11, 63, 207, 65, 12, 0, 13, 14, 15, 16,
2811 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2812 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2813 0, 0, 0, 28, 29, 0, 31, 32, 33, 34,
2814 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2815 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2817 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2818 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2819 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2820 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2821 0, 0, 10, 11, 63, 64, 65, 12, 0, 13,
2822 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2823 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2824 200, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2825 32, 33, 34, 35, 36, 37, 38, 39, 40, 201,
2826 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2828 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
2829 203, 50, 0, 51, 52, 0, 608, 205, 206, 54,
2830 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2831 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2832 0, 9, 0, 0, 0, 10, 11, 63, 207, 65,
2833 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2834 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2835 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2836 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2837 39, 40, 201, 41, 42, 0, 43, 44, 45, 0,
2838 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2840 202, 0, 0, 203, 50, 0, 51, 52, 0, 204,
2841 205, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2842 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2843 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2844 63, 207, 65, 12, 0, 13, 14, 15, 238, 239,
2845 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
2846 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2847 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2848 36, 37, 38, 39, 40, 201, 41, 42, 0, 43,
2849 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2852 52, 0, 0, 205, 206, 54, 55, 56, 57, 58,
2853 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2854 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2855 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2856 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2857 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2858 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2859 33, 34, 35, 36, 37, 38, 39, 40, 201, 41,
2860 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2862 0, 0, 0, 0, 0, 0, 202, 0, 0, 203,
2863 50, 0, 51, 52, 0, 608, 205, 0, 54, 55,
2864 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2865 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2866 9, 0, 0, 0, 10, 11, 63, 207, 65, 12,
2867 0, 13, 14, 15, 238, 239, 18, 19, 0, 0,
2868 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2869 0, 0, 200, 0, 0, 0, 0, 0, 0, 29,
2870 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2871 40, 201, 41, 42, 0, 43, 44, 45, 0, 46,
2872 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 202,
2874 0, 0, 203, 50, 0, 51, 52, 0, 0, 205,
2875 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2876 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2877 6, 7, 0, 9, 0, 0, 0, 10, 11, 63,
2878 207, 65, 12, 0, 13, 14, 15, 16, 17, 18,
2879 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2880 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2881 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2882 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2883 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 0, 202, 0, 0, 203, 50, 0, 51, 52,
2886 0, 512, 0, 0, 54, 55, 56, 57, 58, 59,
2887 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2888 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2889 10, 11, 63, 207, 65, 12, 0, 13, 14, 15,
2890 238, 239, 18, 19, 0, 0, 0, 0, 0, 240,
2891 241, 242, 23, 24, 25, 26, 0, 0, 200, 0,
2892 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2893 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2894 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2897 0, 51, 52, 0, 204, 0, 0, 54, 55, 56,
2898 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2899 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2900 0, 0, 0, 10, 11, 63, 207, 65, 12, 0,
2901 13, 14, 15, 238, 239, 18, 19, 0, 0, 0,
2902 0, 0, 240, 241, 242, 23, 24, 25, 26, 0,
2903 0, 200, 0, 0, 0, 0, 0, 0, 29, 0,
2904 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2905 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2907 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2908 0, 203, 50, 0, 51, 52, 0, 816, 0, 0,
2909 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2910 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2911 7, 0, 9, 0, 0, 0, 10, 11, 63, 207,
2912 65, 12, 0, 13, 14, 15, 238, 239, 18, 19,
2913 0, 0, 0, 0, 0, 240, 241, 242, 23, 24,
2914 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
2915 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2916 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2917 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2919 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2920 512, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2921 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2922 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2923 11, 63, 207, 65, 12, 0, 13, 14, 15, 238,
2924 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2925 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2926 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2927 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2928 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2930 0, 0, 0, 0, 202, 0, 0, 203, 50, 0,
2931 51, 52, 0, 608, 0, 0, 54, 55, 56, 57,
2932 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2933 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2934 0, 0, 10, 11, 63, 207, 65, 12, 0, 13,
2935 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2936 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2937 200, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2938 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2939 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
2942 203, 50, 0, 51, 52, 0, 0, 0, 0, 54,
2943 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2944 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2945 0, 9, 0, 0, 0, 10, 11, 63, 207, 65,
2946 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2947 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2948 26, 0, 0, 27, 0, 0, 0, 0, 0, 0,
2949 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2950 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2951 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2953 202, 0, 0, 203, 50, 0, 51, 52, 0, 0,
2954 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2955 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2956 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2957 63, 64, 65, 12, 0, 13, 14, 15, 16, 17,
2958 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2959 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2960 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2961 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2962 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2964 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2965 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
2966 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2967 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2968 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2969 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2970 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2971 0, 0, 0, 0, 0, 0, 268, 0, 0, 32,
2972 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2973 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 0, 0, 0, 269, 0, 0, 323,
2976 50, 0, 51, 52, 0, 324, 0, 0, 54, 55,
2977 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2978 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2979 10, 11, 0, 0, 0, 12, 270, 13, 14, 15,
2980 238, 239, 18, 19, 0, 0, 0, 0, 0, 240,
2981 241, 242, 23, 24, 25, 26, 0, 0, 200, 0,
2982 0, 0, 0, 0, 0, 268, 0, 0, 32, 33,
2983 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2984 0, 43, 44, 45, 0, 0, 0, 0, 0, 0,
2985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2986 0, 0, 0, 0, 0, 365, 0, 0, 49, 50,
2987 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2988 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2989 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2990 11, 0, 0, 0, 12, 270, 13, 14, 15, 238,
2991 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2992 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2993 0, 0, 0, 0, 268, 0, 0, 32, 33, 34,
2994 373, 36, 37, 38, 374, 40, 0, 41, 42, 0,
2995 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997 0, 375, 0, 0, 376, 0, 0, 203, 50, 0,
2998 51, 52, 0, 0, 0, 0, 54, 55, 56, 57,
2999 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
3000 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3001 0, 0, 0, 12, 270, 13, 14, 15, 238, 239,
3002 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
3003 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
3004 0, 0, 0, 268, 0, 0, 32, 33, 34, 373,
3005 36, 37, 38, 374, 40, 0, 41, 42, 0, 43,
3006 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
3007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008 0, 0, 0, 376, 0, 0, 203, 50, 0, 51,
3009 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
3010 59, 60, 61, 62, 0, 0, 0, 0, 0, 5,
3011 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
3012 0, 0, 12, 270, 13, 14, 15, 238, 239, 18,
3013 19, 0, 0, 0, 0, 0, 240, 241, 242, 23,
3014 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
3015 0, 0, 268, 0, 0, 32, 33, 34, 35, 36,
3016 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
3017 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3019 0, 0, 269, 0, 0, 323, 50, 0, 51, 52,
3020 0, 0, 0, 0, 54, 55, 56, 57, 58, 59,
3021 60, 61, 62, 0, 0, 0, 0, 0, 5, 6,
3022 7, 0, 9, 0, 0, 0, 10, 11, 0, 0,
3023 0, 12, 270, 13, 14, 15, 238, 239, 18, 19,
3024 0, 0, 0, 0, 0, 240, 241, 242, 23, 24,
3025 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
3026 0, 268, 0, 0, 32, 33, 34, 35, 36, 37,
3027 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
3028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3030 0, 893, 0, 0, 203, 50, 0, 51, 52, 0,
3031 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
3032 61, 62, 0, 0, 0, 0, 0, 5, 6, 7,
3033 0, 9, 0, 0, 0, 10, 11, 0, 0, 0,
3034 12, 270, 13, 14, 15, 238, 239, 18, 19, 0,
3035 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
3036 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
3037 268, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3038 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
3039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3041 973, 0, 0, 203, 50, 0, 51, 52, 0, 0,
3042 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
3043 62, 0, 0, 0, 0, 0, 0, 553, 554, 0,
3044 0, 555, 0, 0, 0, 0, 0, 0, 0, 0,
3045 270, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3046 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3048 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3050 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3051 188, 0, 189, 190, 561, 562, 0, 0, 563, 0,
3052 191, 0, 0, 0, 0, 0, 0, 0, 162, 163,
3053 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
3054 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
3055 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
3056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3057 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
3058 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
3059 190, 598, 562, 0, 0, 599, 0, 191, 0, 0,
3060 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
3061 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
3062 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
3063 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
3064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3065 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
3066 184, 185, 186, 187, 188, 0, 189, 190, 612, 554,
3067 0, 0, 613, 0, 191, 0, 0, 0, 0, 0,
3068 0, 0, 162, 163, 164, 165, 166, 167, 168, 169,
3069 170, 0, 0, 171, 172, 0, 0, 173, 174, 175,
3070 176, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3071 0, 177, 178, 0, 0, 0, 0, 0, 0, 0,
3072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3073 0, 0, 179, 180, 181, 182, 183, 184, 185, 186,
3074 187, 188, 0, 189, 190, 615, 562, 0, 0, 616,
3075 0, 191, 0, 0, 0, 0, 0, 0, 0, 162,
3076 163, 164, 165, 166, 167, 168, 169, 170, 0, 0,
3077 171, 172, 0, 0, 173, 174, 175, 176, 0, 0,
3078 0, 0, 0, 0, 0, 0, 0, 0, 177, 178,
3079 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3080 0, 0, 0, 0, 0, 0, 0, 0, 0, 179,
3081 180, 181, 182, 183, 184, 185, 186, 187, 188, 0,
3082 189, 190, 639, 554, 0, 0, 640, 0, 191, 0,
3083 0, 0, 0, 0, 0, 0, 162, 163, 164, 165,
3084 166, 167, 168, 169, 170, 0, 0, 171, 172, 0,
3085 0, 173, 174, 175, 176, 0, 0, 0, 0, 0,
3086 0, 0, 0, 0, 0, 177, 178, 0, 0, 0,
3087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3088 0, 0, 0, 0, 0, 0, 179, 180, 181, 182,
3089 183, 184, 185, 186, 187, 188, 0, 189, 190, 642,
3090 562, 0, 0, 643, 0, 191, 0, 0, 0, 0,
3091 0, 0, 0, 162, 163, 164, 165, 166, 167, 168,
3092 169, 170, 0, 0, 171, 172, 0, 0, 173, 174,
3093 175, 176, 0, 0, 0, 0, 0, 0, 0, 0,
3094 0, 0, 177, 178, 0, 0, 0, 0, 0, 0,
3095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3096 0, 0, 0, 179, 180, 181, 182, 183, 184, 185,
3097 186, 187, 188, 0, 189, 190, 727, 554, 0, 0,
3098 728, 0, 191, 0, 0, 0, 0, 0, 0, 0,
3099 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
3100 0, 171, 172, 0, 0, 173, 174, 175, 176, 0,
3101 0, 0, 0, 0, 0, 0, 0, 0, 0, 177,
3102 178, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3104 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
3105 0, 189, 190, 730, 562, 0, 0, 731, 0, 191,
3106 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
3107 165, 166, 167, 168, 169, 170, 0, 0, 171, 172,
3108 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
3109 0, 0, 0, 0, 0, 0, 177, 178, 0, 0,
3110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3111 0, 0, 0, 0, 0, 0, 0, 179, 180, 181,
3112 182, 183, 184, 185, 186, 187, 188, 0, 189, 190,
3113 737, 554, 0, 0, 738, 0, 191, 0, 0, 0,
3114 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
3115 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
3116 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
3117 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
3118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3119 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
3120 185, 186, 187, 188, 0, 189, 190, 1001, 554, 0,
3121 0, 1002, 0, 191, 0, 0, 0, 0, 0, 0,
3122 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3123 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3125 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3127 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3128 188, 0, 189, 190, 1036, 554, 0, 0, 1037, 0,
3129 191, 0, 0, 0, 0, 0, 0, 0, 162, 163,
3130 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
3131 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
3132 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
3133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3134 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
3135 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
3136 190, 1039, 562, 0, 0, 1040, 0, 191, 0, 0,
3137 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
3138 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
3139 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
3140 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
3141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3142 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
3143 184, 185, 186, 187, 188, 0, 189, 190, 0, 0,
3147 #define yypact_value_is_default(yystate) \
3148 ((yystate) == (-810))
3150 #define yytable_value_is_error(yytable_value) \
3151 ((yytable_value) == (-620))
3155 2, 55, 96, 16, 17, 8, 79, 20, 22, 64,
3156 354, 326, 16, 17, 8, 220, 20, 50, 27, 8,
3157 29, 472, 326, 28, 87, 28, 359, 90, 412, 353,
3158 4, 355, 420, 74, 28, 2, 420, 4, 53, 28,
3159 94, 668, 49, 90, 575, 594, 614, 51, 262, 51,
3160 52, 685, 266, 86, 87, 574, 67, 90, 440, 468,
3161 74, 55, 13, 651, 79, 786, 2, 376, 4, 49,
3162 458, 508, 416, 641, 511, 399, 91, 92, 93, 27,
3163 16, 17, 53, 776, 20, 874, 250, 472, 67, 778,
3164 87, 415, 715, 417, 16, 17, 719, 906, 20, 26,
3165 94, 872, 0, 37, 38, 13, 25, 230, 801, 518,
3166 25, 90, 26, 49, 50, 85, 113, 53, 25, 443,
3167 141, 61, 61, 13, 1, 85, 470, 85, 64, 85,
3168 16, 17, 255, 25, 20, 97, 259, 134, 902, 76,
3169 130, 85, 134, 79, 778, 596, 25, 471, 28, 141,
3170 86, 87, 786, 29, 90, 91, 92, 93, 120, 323,
3171 286, 729, 288, 133, 290, 51, 52, 938, 294, 25,
3172 110, 110, 740, 133, 25, 133, 132, 133, 805, 806,
3173 25, 118, 770, 771, 25, 136, 56, 736, 139, 133,
3174 141, 139, 13, 141, 140, 744, 203, 230, 271, 232,
3175 113, 990, 243, 130, 1013, 252, 657, 141, 897, 136,
3176 140, 224, 214, 226, 227, 134, 130, 136, 220, 134,
3177 224, 992, 226, 944, 429, 227, 134, 134, 13, 13,
3178 237, 139, 134, 141, 622, 111, 580, 621, 622, 1003,
3179 117, 252, 134, 250, 307, 308, 309, 310, 592, 139,
3180 632, 141, 85, 690, 1025, 134, 271, 581, 885, 268,
3181 949, 113, 139, 897, 141, 85, 321, 203, 902, 593,
3182 250, 326, 657, 252, 307, 308, 309, 310, 134, 312,
3183 313, 248, 591, 134, 872, 136, 874, 696, 224, 134,
3184 226, 227, 743, 134, 230, 87, 232, 360, 361, 422,
3185 133, 237, 224, 426, 226, 928, 37, 38, 431, 324,
3186 944, 87, 248, 133, 250, 362, 323, 321, 139, 1008,
3187 141, 113, 326, 68, 447, 113, 136, 360, 361, 452,
3188 100, 141, 306, 852, 87, 271, 963, 113, 224, 306,
3189 226, 354, 375, 323, 311, 61, 134, 402, 403, 65,
3190 938, 939, 354, 324, 139, 139, 141, 141, 743, 485,
3191 113, 355, 25, 61, 85, 140, 492, 61, 140, 1003,
3192 306, 307, 308, 309, 310, 311, 312, 313, 123, 124,
3193 125, 930, 697, 362, 139, 321, 141, 323, 324, 136,
3194 326, 107, 725, 109, 517, 468, 685, 928, 15, 378,
3195 17, 25, 990, 416, 992, 399, 611, 68, 85, 107,
3196 714, 109, 133, 107, 416, 109, 26, 85, 354, 134,
3197 356, 85, 636, 417, 360, 361, 428, 429, 85, 52,
3198 56, 26, 437, 56, 437, 87, 26, 1025, 440, 375,
3199 989, 113, 140, 437, 85, 518, 140, 134, 437, 443,
3200 113, 134, 88, 468, 85, 132, 133, 470, 141, 136,
3201 121, 122, 123, 124, 125, 133, 402, 403, 470, 133,
3202 1038, 134, 87, 440, 137, 85, 133, 471, 141, 867,
3203 416, 87, 87, 867, 935, 87, 134, 703, 134, 113,
3204 85, 132, 133, 141, 710, 85, 136, 786, 113, 61,
3205 789, 132, 133, 518, 440, 507, 508, 113, 61, 511,
3206 134, 113, 61, 137, 450, 136, 557, 141, 130, 134,
3207 130, 26, 132, 133, 565, 52, 412, 54, 55, 56,
3208 57, 68, 468, 542, 470, 130, 136, 132, 133, 137,
3209 130, 136, 132, 133, 558, 107, 136, 109, 110, 85,
3210 113, 560, 566, 138, 107, 760, 109, 110, 107, 600,
3211 109, 110, 595, 570, 637, 572, 568, 580, 670, 455,
3212 672, 131, 576, 85, 59, 60, 577, 87, 580, 592,
3213 85, 56, 518, 916, 87, 110, 600, 581, 87, 922,
3214 592, 87, 625, 85, 573, 574, 132, 133, 600, 593,
3215 605, 61, 605, 113, 134, 614, 110, 134, 587, 611,
3216 113, 605, 110, 902, 113, 904, 605, 113, 68, 742,
3217 132, 133, 637, 696, 134, 130, 110, 132, 133, 58,
3218 632, 136, 641, 68, 570, 134, 572, 61, 761, 68,
3219 132, 133, 697, 94, 580, 700, 701, 107, 685, 109,
3220 110, 774, 707, 708, 748, 944, 592, 946, 594, 595,
3221 85, 134, 951, 704, 666, 632, 668, 96, 97, 732,
3222 711, 17, 735, 1017, 59, 60, 685, 139, 87, 686,
3223 58, 696, 689, 107, 691, 109, 110, 56, 690, 625,
3224 68, 120, 746, 25, 1018, 137, 632, 85, 134, 732,
3225 134, 637, 735, 685, 113, 131, 134, 132, 133, 711,
3226 714, 130, 714, 715, 1003, 717, 1005, 719, 96, 97,
3227 729, 1010, 134, 724, 52, 134, 54, 55, 56, 57,
3228 85, 740, 14, 15, 140, 621, 859, 140, 1027, 134,
3229 741, 134, 120, 780, 132, 133, 85, 784, 871, 113,
3230 686, 134, 746, 689, 733, 691, 136, 10, 760, 1048,
3231 696, 697, 8, 85, 700, 701, 745, 776, 2, 13,
3232 4, 707, 708, 828, 85, 131, 85, 132, 133, 842,
3233 882, 883, 16, 17, 799, 887, 20, 889, 890, 113,
3234 134, 134, 801, 132, 133, 52, 732, 134, 780, 735,
3235 736, 134, 52, 805, 806, 134, 134, 814, 744, 842,
3236 132, 133, 52, 134, 115, 49, 50, 54, 55, 138,
3237 57, 132, 133, 132, 133, 15, 63, 64, 134, 87,
3238 64, 131, 839, 113, 118, 837, 134, 134, 840, 846,
3239 847, 134, 843, 850, 845, 52, 87, 54, 55, 56,
3240 57, 58, 86, 87, 855, 113, 90, 134, 134, 860,
3241 897, 68, 899, 799, 139, 902, 10, 904, 131, 10,
3242 877, 878, 113, 852, 134, 854, 134, 892, 814, 808,
3243 809, 9, 89, 885, 891, 88, 134, 134, 95, 96,
3244 97, 134, 828, 134, 996, 997, 998, 999, 54, 137,
3245 915, 134, 134, 839, 56, 118, 842, 63, 64, 131,
3246 846, 847, 919, 120, 850, 897, 123, 899, 134, 134,
3247 902, 10, 904, 131, 925, 926, 928, 52, 108, 54,
3248 55, 56, 57, 52, 141, 54, 55, 56, 57, 58,
3249 134, 877, 878, 134, 1046, 134, 134, 56, 52, 68,
3250 54, 55, 56, 57, 136, 891, 892, 134, 134, 134,
3251 969, 963, 136, 450, 89, 91, 1003, 711, 1005, 203,
3252 89, 1008, 979, 1010, 981, 93, 1020, 96, 97, 915,
3253 987, 770, 685, 919, 1013, 89, 749, 988, 1019, 99,
3254 224, 95, 226, 227, 930, 294, 230, 57, 232, 94,
3255 935, 120, 780, 237, 1017, 52, 899, 54, 55, 56,
3256 57, 1048, 897, 778, 248, 1017, 250, 1019, 1020, 396,
3257 1021, 1003, 1023, 1005, 1018, -1, 1008, -1, 1010, 1038,
3258 -1, 960, 961, -1, -1, 964, -1, 966, 967, -1,
3259 -1, -1, 89, 979, 68, 981, -1, -1, 95, -1,
3260 -1, 987, -1, 989, 68, -1, -1, -1, -1, 83,
3261 84, 40, 41, 42, 43, 44, 1048, -1, -1, 83,
3262 84, -1, 306, 307, 308, 309, 310, 311, 312, 313,
3263 52, 1017, 54, 55, 56, 57, -1, 321, -1, 323,
3264 -1, -1, 326, -1, 118, 119, 120, 121, 122, 123,
3265 124, 125, 1031, 1032, 1033, 1034, 120, 121, 122, 123,
3266 124, 125, -1, -1, -1, -1, -1, -1, -1, -1,
3267 354, -1, 356, -1, -1, 1054, 360, 361, -1, -1,
3268 -1, -1, -1, 52, -1, 54, 55, 56, 57, 58,
3269 -1, 375, -1, -1, -1, -1, -1, -1, 0, 68,
3270 -1, -1, -1, -1, -1, -1, 8, 9, 10, -1,
3271 -1, 13, 14, 15, -1, 17, -1, -1, 402, 403,
3272 89, -1, -1, -1, 26, 27, 95, 96, 97, -1,
3273 -1, -1, 416, -1, -1, 37, 38, 68, 40, 41,
3274 42, 43, 44, -1, 52, -1, 54, 55, 56, 57,
3275 58, 120, 83, 84, 123, -1, 440, -1, -1, -1,
3276 68, -1, -1, -1, -1, -1, 450, 136, -1, -1,
3277 -1, -1, -1, -1, 16, 17, -1, -1, 20, -1,
3278 -1, 89, -1, 85, -1, -1, 470, 95, 96, 97,
3279 121, 122, 123, 124, 125, -1, -1, -1, -1, -1,
3280 -1, -1, -1, -1, 46, 47, 108, -1, -1, 51,
3281 52, -1, 120, -1, -1, 123, -1, -1, -1, -1,
3282 -1, -1, 64, 65, -1, 44, -1, -1, 130, 131,
3283 -1, 133, -1, -1, 136, 137, -1, 139, -1, 141,
3284 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3285 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3286 79, 80, -1, -1, 83, 84, -1, -1, -1, -1,
3287 -1, -1, -1, -1, -1, -1, 52, -1, 54, 55,
3288 56, 57, 58, -1, -1, -1, 570, -1, 572, -1,
3289 -1, -1, 68, -1, -1, 114, 580, 116, 117, 118,
3290 119, 120, 121, 122, 123, 124, 125, -1, 592, -1,
3291 594, 595, -1, 89, -1, 134, -1, -1, -1, 95,
3292 96, 97, -1, 68, 69, 70, 71, 72, 73, 74,
3293 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3294 -1, 625, -1, -1, 120, -1, -1, 123, 632, -1,
3295 -1, -1, 2, -1, 4, -1, -1, -1, -1, 201,
3296 136, -1, 204, 205, 206, 207, -1, -1, 52, 114,
3297 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3298 125, -1, 224, -1, 226, 227, -1, -1, 52, -1,
3299 54, 55, 56, 57, 58, -1, 141, -1, -1, 49,
3300 -1, -1, 686, 53, 68, 689, -1, 691, -1, -1,
3301 -1, -1, -1, 697, -1, -1, 700, 701, -1, -1,
3302 -1, -1, -1, 707, 708, 89, -1, -1, -1, 79,
3303 -1, 95, 96, 97, -1, -1, -1, -1, -1, -1,
3304 -1, 91, 92, 93, 94, -1, -1, -1, 732, -1,
3305 -1, 735, 736, -1, -1, -1, 120, -1, -1, 123,
3306 744, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3307 -1, -1, -1, -1, -1, -1, -1, -1, -1, 321,
3308 -1, -1, -1, -1, 326, 327, 328, 329, 330, 331,
3309 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
3310 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
3311 352, -1, 354, -1, -1, -1, -1, 201, -1, -1,
3312 204, 205, 206, -1, -1, -1, -1, -1, -1, -1,
3313 814, -1, -1, -1, -1, 52, -1, 54, 55, 56,
3314 57, 58, -1, -1, 828, -1, -1, -1, -1, -1,
3315 -1, 68, -1, 203, -1, 839, -1, -1, 842, -1,
3316 402, 403, 846, 847, -1, -1, 850, -1, 410, 411,
3317 412, -1, 89, -1, 416, -1, 418, 419, 420, 96,
3318 97, -1, -1, -1, -1, -1, -1, 237, -1, -1,
3319 -1, -1, -1, 877, 878, -1, -1, 439, 248, -1,
3320 250, -1, 444, 120, -1, -1, -1, 891, -1, -1,
3321 -1, -1, -1, 455, -1, -1, 458, -1, -1, -1,
3322 -1, 271, -1, -1, -1, 2, -1, 4, 470, -1,
3323 -1, -1, -1, -1, -1, 919, -1, 321, -1, -1,
3324 -1, 2, 326, 4, -1, -1, 930, -1, -1, -1,
3325 -1, -1, -1, -1, 496, 497, 306, -1, -1, -1,
3326 -1, 311, -1, -1, -1, -1, -1, -1, -1, -1,
3327 512, -1, 49, 323, 324, -1, 53, -1, -1, -1,
3328 -1, -1, -1, -1, -1, -1, -1, -1, 49, -1,
3329 -1, -1, 53, -1, -1, 979, -1, 981, -1, -1,
3330 -1, -1, 79, 987, -1, 989, 356, -1, -1, -1,
3331 -1, -1, -1, -1, 91, 92, 93, 94, 79, -1,
3332 -1, -1, -1, -1, -1, -1, -1, 411, 412, -1,
3333 91, 92, 93, 1017, 576, -1, 420, -1, 580, -1,
3334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3335 592, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3336 -1, -1, -1, -1, -1, -1, 608, -1, -1, -1,
3337 -1, 455, -1, -1, 458, -1, -1, -1, -1, 621,
3338 622, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3339 440, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3340 450, -1, -1, -1, -1, -1, -1, 649, -1, -1,
3341 -1, -1, -1, -1, -1, -1, -1, -1, 468, -1,
3342 -1, -1, -1, -1, -1, -1, 203, -1, 512, -1,
3343 -1, -1, -1, -1, 2, -1, 4, -1, -1, -1,
3344 -1, -1, 203, -1, -1, -1, -1, -1, -1, -1,
3345 2, 693, 4, -1, -1, 697, 698, -1, 700, 701,
3346 237, -1, -1, -1, -1, 707, 708, -1, 518, -1,
3347 -1, 248, 714, 250, -1, -1, 237, -1, -1, -1,
3348 -1, 49, -1, -1, -1, -1, -1, 248, -1, 250,
3349 -1, -1, 576, -1, 271, -1, -1, 49, -1, -1,
3350 -1, -1, -1, -1, -1, -1, -1, -1, -1, 751,
3351 271, -1, -1, 755, 756, -1, 758, 759, -1, -1,
3352 570, -1, 572, 91, 608, 767, -1, -1, -1, 306,
3353 -1, -1, -1, -1, 311, -1, -1, 621, 622, -1,
3354 -1, -1, -1, -1, 594, 306, 323, 324, -1, -1,
3355 311, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3356 -1, -1, 323, 324, -1, 649, -1, -1, -1, -1,
3357 -1, -1, -1, -1, 816, -1, -1, -1, 820, 356,
3358 -1, -1, 632, -1, -1, -1, 828, 637, -1, -1,
3359 -1, -1, -1, -1, -1, 356, -1, -1, -1, -1,
3360 -1, -1, -1, -1, -1, -1, -1, 849, -1, 693,
3361 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3362 -1, -1, -1, -1, 866, 867, -1, -1, -1, -1,
3363 714, -1, -1, -1, -1, 203, 686, -1, -1, 689,
3364 -1, 691, -1, -1, -1, -1, 696, -1, -1, -1,
3365 -1, 203, -1, -1, -1, -1, -1, -1, -1, -1,
3366 -1, -1, -1, 440, -1, -1, -1, -1, -1, 237,
3367 -1, -1, -1, 450, -1, -1, -1, -1, -1, 440,
3368 248, -1, 250, 767, -1, 237, 736, -1, -1, 450,
3369 -1, 468, -1, -1, 744, -1, 248, -1, 250, -1,
3370 -1, -1, -1, -1, -1, -1, -1, 468, -1, -1,
3371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3373 -1, -1, 816, -1, -1, -1, -1, -1, 306, -1,
3374 -1, 518, -1, 311, -1, -1, -1, -1, -1, 799,
3375 -1, -1, -1, -1, 306, 323, -1, 518, 326, 311,
3376 -1, -1, -1, -1, 814, 849, -1, -1, -1, -1,
3377 -1, 323, -1, -1, -1, 1017, -1, -1, -1, -1,
3378 -1, -1, -1, 867, -1, -1, -1, -1, 356, 839,
3379 -1, -1, -1, 570, -1, 572, 846, 847, -1, -1,
3380 850, -1, -1, -1, 356, -1, -1, -1, -1, 570,
3381 -1, 572, -1, -1, -1, -1, -1, 594, -1, -1,
3382 -1, -1, -1, -1, -1, -1, -1, 877, 878, -1,
3383 -1, -1, -1, 594, -1, -1, -1, -1, -1, -1,
3384 -1, 891, 892, -1, -1, -1, -1, -1, -1, -1,
3385 -1, -1, -1, -1, -1, 632, -1, -1, -1, -1,
3386 637, -1, -1, -1, -1, 915, -1, -1, -1, 919,
3387 -1, 632, 440, -1, -1, -1, 637, -1, -1, -1,
3388 930, -1, 450, -1, -1, -1, -1, -1, 440, -1,
3389 -1, -1, -1, -1, -1, -1, -1, -1, 450, -1,
3390 -1, -1, -1, -1, -1, -1, -1, -1, -1, 686,
3391 -1, -1, 689, -1, 691, 676, 44, -1, -1, 696,
3392 -1, -1, -1, -1, -1, 686, -1, -1, 689, 979,
3393 691, 981, -1, -1, -1, 696, -1, 987, -1, 989,
3394 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3395 78, 79, 80, -1, -1, 83, 84, -1, -1, 736,
3396 -1, -1, -1, -1, -1, -1, -1, 744, -1, -1,
3397 -1, -1, -1, -1, -1, 736, -1, -1, -1, -1,
3398 -1, -1, -1, 744, -1, -1, 114, -1, 116, 117,
3399 118, 119, 120, 121, 122, 123, 124, 125, -1, -1,
3400 -1, -1, 570, -1, 572, -1, -1, -1, -1, -1,
3401 -1, -1, -1, -1, -1, -1, -1, -1, 570, -1,
3402 572, -1, 799, -1, -1, -1, 594, -1, -1, -1,
3403 -1, -1, -1, -1, -1, -1, -1, 814, 799, -1,
3404 -1, -1, 594, -1, -1, -1, -1, -1, -1, -1,
3405 -1, -1, -1, 814, -1, -1, -1, -1, -1, -1,
3406 -1, -1, 839, -1, 632, -1, -1, -1, -1, 846,
3407 847, -1, -1, 850, -1, -1, -1, -1, 839, -1,
3408 632, -1, -1, -1, -1, 846, 847, -1, -1, 850,
3409 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3410 877, 878, -1, -1, -1, -1, -1, -1, -1, -1,
3411 -1, -1, -1, -1, 891, 892, 877, 878, 686, -1,
3412 -1, 689, -1, 691, -1, -1, -1, -1, -1, 697,
3413 891, 892, -1, -1, 686, -1, -1, 689, 915, 691,
3414 -1, -1, 919, -1, -1, -1, -1, -1, -1, -1,
3415 -1, -1, -1, 930, 915, -1, -1, -1, 919, -1,
3416 -1, -1, -1, -1, -1, -1, -1, -1, 736, 930,
3417 -1, -1, -1, -1, -1, -1, 744, -1, -1, -1,
3418 -1, -1, -1, -1, 736, 68, 69, 70, 71, 72,
3419 73, 74, 744, -1, 77, 78, -1, -1, -1, -1,
3420 83, 84, 979, -1, 981, -1, -1, -1, -1, -1,
3421 987, -1, 989, -1, -1, -1, -1, -1, 979, -1,
3422 981, -1, -1, -1, -1, -1, 987, -1, 989, -1,
3423 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122,
3424 123, 124, 125, -1, -1, -1, 814, -1, -1, -1,
3425 -1, 68, 69, 70, 71, 72, 73, 74, 75, -1,
3426 77, 78, 814, -1, -1, -1, 83, 84, -1, -1,
3427 -1, 839, -1, -1, -1, -1, -1, -1, 846, 847,
3428 -1, -1, 850, -1, -1, -1, -1, 839, -1, -1,
3429 -1, -1, -1, -1, 846, 847, -1, -1, 850, 116,
3430 117, 118, 119, 120, 121, 122, 123, 124, 125, 877,
3431 878, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3432 -1, -1, -1, 891, -1, 877, 878, -1, -1, -1,
3433 -1, -1, -1, -1, -1, -1, -1, -1, -1, 891,
3434 68, 69, 70, 71, 72, 73, 74, 915, -1, 77,
3435 78, 919, -1, -1, -1, 83, 84, -1, -1, -1,
3436 -1, -1, 930, -1, -1, -1, -1, 919, -1, -1,
3437 -1, -1, -1, -1, -1, -1, -1, -1, 930, -1,
3438 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
3439 118, 119, 120, 121, 122, 123, 124, 125, -1, -1,
3440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3441 -1, 979, -1, 981, -1, -1, -1, -1, -1, 987,
3442 -1, 989, -1, -1, -1, -1, -1, 979, -1, 981,
3443 -1, -1, -1, -1, -1, 987, -1, 989, 0, 1,
3444 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3445 12, -1, -1, -1, 16, -1, 18, 19, 20, 21,
3446 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3447 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3448 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3449 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3450 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3452 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3453 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3454 102, 103, 104, 105, 106, 0, -1, -1, -1, -1,
3455 -1, -1, -1, 8, 9, 10, -1, -1, 13, 14,
3456 15, -1, 17, -1, 126, 127, 128, -1, 44, -1,
3457 -1, 26, 27, 28, 29, -1, -1, 139, -1, 141,
3458 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3459 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3460 76, 77, 78, 79, 80, -1, -1, 83, 84, -1,
3461 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3462 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3463 85, -1, 87, 88, -1, -1, -1, -1, 114, 94,
3464 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3465 -1, -1, -1, 108, -1, -1, 111, -1, 113, 114,
3466 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3467 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3468 0, -1, 137, 138, 139, -1, 141, -1, 8, 9,
3469 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3470 -1, -1, -1, -1, -1, 25, -1, 27, 28, 29,
3471 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3472 40, 41, 42, 43, 44, -1, -1, 68, 69, 70,
3473 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3474 -1, -1, 83, 84, -1, -1, -1, -1, 68, 69,
3475 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3476 80, -1, -1, 83, 84, 85, -1, 87, 88, -1,
3477 -1, -1, -1, 114, 94, 116, 117, 118, 119, 120,
3478 121, 122, 123, 124, 125, -1, -1, -1, 108, -1,
3479 -1, 111, -1, 113, 114, 115, 116, 117, 118, 119,
3480 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3481 -1, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3482 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3483 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3484 25, -1, 27, 28, 29, -1, -1, -1, -1, -1,
3485 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3486 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3487 76, 77, 78, 79, 80, -1, -1, 83, 84, -1,
3488 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3489 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3490 85, -1, 87, 88, -1, -1, -1, -1, -1, 94,
3491 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3492 -1, -1, -1, 108, -1, -1, 111, -1, 113, 114,
3493 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3494 125, -1, -1, -1, -1, -1, 131, 132, 133, 134,
3495 0, -1, 137, 138, 139, -1, 141, -1, 8, 9,
3496 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3497 -1, -1, -1, -1, -1, -1, 26, 27, 28, 29,
3498 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3499 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3501 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3502 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3503 80, -1, -1, 83, 84, 85, -1, -1, 88, -1,
3504 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3505 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3506 -1, 111, -1, -1, 114, 115, 116, 117, 118, 119,
3507 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3508 130, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3509 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3510 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3511 -1, 26, 27, 28, 29, -1, -1, -1, -1, -1,
3512 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3515 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3516 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3517 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3519 -1, -1, -1, 108, -1, -1, 111, -1, -1, 114,
3520 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3521 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3522 0, -1, 137, 138, 139, -1, 141, -1, 8, 9,
3523 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3524 -1, -1, -1, -1, -1, -1, -1, 27, 28, 29,
3525 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3526 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3528 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3529 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3530 80, -1, -1, 83, 84, 85, -1, 87, 88, -1,
3531 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3532 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3533 -1, 111, -1, 113, 114, 115, 116, 117, 118, 119,
3534 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3535 -1, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3536 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3537 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3538 -1, 26, 27, 28, -1, -1, -1, -1, -1, -1,
3539 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3542 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3543 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3544 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3546 -1, -1, -1, 108, -1, -1, -1, -1, -1, 114,
3547 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3548 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3549 0, 136, 137, 138, 139, -1, 141, -1, 8, 9,
3550 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3551 -1, -1, -1, -1, -1, -1, -1, 27, 28, 29,
3552 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3553 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3555 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3556 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3557 80, -1, -1, 83, 84, 85, -1, -1, 88, -1,
3558 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3559 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3560 -1, 111, -1, -1, 114, 115, 116, 117, 118, 119,
3561 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3562 -1, 131, 132, 133, 134, 0, -1, 137, 138, 139,
3563 -1, 141, -1, 8, 9, 10, -1, -1, 13, 14,
3564 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3565 -1, 26, 27, 28, -1, -1, -1, -1, -1, -1,
3566 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3569 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3570 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3571 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3572 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3573 -1, -1, -1, 108, -1, -1, -1, -1, -1, 114,
3574 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3575 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3576 0, 136, 137, 138, 139, -1, 141, -1, 8, 9,
3577 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3578 -1, -1, -1, -1, -1, -1, -1, 27, 28, -1,
3579 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3580 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3582 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3583 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3584 80, -1, -1, 83, 84, 85, -1, -1, 88, -1,
3585 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3586 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3587 -1, -1, -1, -1, 114, -1, 116, 117, 118, 119,
3588 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3589 -1, 131, 132, 133, 134, 0, 136, 137, 138, 139,
3590 -1, 141, -1, 8, 9, 10, -1, -1, -1, 14,
3591 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3592 -1, 26, -1, -1, -1, -1, -1, -1, -1, -1,
3593 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3596 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
3597 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3598 85, -1, 87, -1, -1, -1, -1, -1, -1, -1,
3599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3600 -1, -1, -1, 108, -1, -1, -1, -1, 113, 114,
3601 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3602 125, -1, -1, -1, -1, 130, 131, 132, 133, 134,
3603 0, -1, 137, -1, 139, -1, 141, -1, 8, 9,
3604 10, -1, -1, -1, 14, 15, -1, 17, -1, -1,
3605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3606 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3607 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3609 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
3610 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3611 80, -1, -1, 83, 84, 85, -1, 87, -1, -1,
3612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3613 -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
3614 -1, -1, -1, 113, 114, -1, 116, 117, 118, 119,
3615 120, 121, 122, 123, 124, 125, -1, -1, -1, -1,
3616 -1, 131, 132, 133, 134, -1, -1, 137, -1, 139,
3617 1, 141, 3, 4, 5, 6, 7, 8, 9, 10,
3618 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3619 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3620 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3621 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3622 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3623 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3625 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3626 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3627 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3628 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3629 -1, -1, -1, -1, -1, 126, 127, 128, -1, -1,
3630 -1, -1, -1, -1, -1, -1, -1, -1, 139, 1,
3631 141, 3, 4, 5, 6, 7, -1, -1, 10, 11,
3632 12, -1, 14, 15, 16, -1, 18, 19, 20, 21,
3633 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3634 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3635 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3636 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3637 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3638 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3639 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3640 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3641 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, 126, 127, 128, -1, -1, -1,
3644 -1, -1, -1, -1, -1, -1, -1, 139, 1, 141,
3645 3, 4, 5, 6, 7, -1, -1, 10, 11, 12,
3646 -1, -1, 15, 16, 17, 18, 19, 20, 21, 22,
3647 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3648 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3649 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3650 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3651 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3652 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3653 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3654 93, -1, 95, -1, -1, 98, 99, 100, 101, 102,
3655 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3657 -1, -1, -1, 126, 127, 128, -1, -1, -1, -1,
3658 -1, -1, -1, -1, -1, -1, 139, 1, 141, 3,
3659 4, 5, 6, 7, -1, -1, 10, 11, 12, -1,
3660 -1, 15, 16, -1, 18, 19, 20, 21, 22, 23,
3661 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3662 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3663 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3664 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3665 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3667 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3668 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
3669 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
3670 1, -1, 3, 4, 5, 6, 7, -1, 9, 10,
3671 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3672 21, 22, 23, 24, -1, 139, -1, 141, -1, 30,
3673 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3674 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3675 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3676 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3677 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3678 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3679 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3680 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3681 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
3682 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3683 18, 19, 20, 21, 22, 23, 24, -1, 139, -1,
3684 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3685 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3686 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3687 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3689 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3690 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3691 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3693 -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
3694 128, -1, -1, -1, -1, -1, -1, -1, -1, 137,
3695 -1, 139, 1, 141, 3, 4, 5, 6, 7, -1,
3696 -1, -1, 11, 12, -1, -1, -1, 16, -1, 18,
3697 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3698 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3699 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3700 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3701 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3703 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3704 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3705 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3707 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3708 -1, -1, -1, -1, -1, -1, -1, -1, 137, -1,
3709 139, 1, 141, 3, 4, 5, 6, 7, -1, -1,
3710 -1, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3711 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3712 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3713 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3714 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3715 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3717 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3718 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
3719 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3720 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3721 -1, -1, -1, -1, -1, -1, 126, 127, 128, -1,
3722 -1, 131, 1, -1, 3, 4, 5, 6, 7, 139,
3723 -1, 141, 11, 12, -1, -1, -1, 16, -1, 18,
3724 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3725 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3726 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3727 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3728 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3730 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3731 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3732 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3734 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3735 -1, -1, 131, -1, -1, -1, -1, -1, -1, -1,
3736 139, 1, 141, 3, 4, 5, 6, 7, -1, -1,
3737 10, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3738 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3739 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3740 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3741 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3742 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3744 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3745 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
3746 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3747 -1, -1, -1, -1, 1, -1, 3, 4, 5, 6,
3748 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
3749 -1, 18, 19, 20, 21, 22, 23, 24, -1, 139,
3750 -1, 141, -1, 30, 31, 32, 33, 34, 35, 36,
3751 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3752 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3753 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3754 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3755 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3756 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3757 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3758 -1, 108, -1, -1, -1, -1, -1, -1, -1, 3,
3759 4, 5, -1, 7, -1, -1, -1, 11, 12, 126,
3760 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3761 24, -1, 139, -1, 141, -1, 30, 31, 32, 33,
3762 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3763 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3764 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
3765 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3766 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3767 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3768 -1, 95, 96, 97, 98, 99, 100, 101, 102, 103,
3769 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
3770 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3771 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3772 21, 22, 23, 24, -1, -1, -1, 141, -1, 30,
3773 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3774 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3775 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3776 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3777 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3778 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3779 -1, 92, 93, -1, -1, -1, -1, 98, 99, 100,
3780 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3781 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3782 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3783 18, 19, 20, 21, 22, 23, 24, -1, 139, -1,
3784 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3785 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3786 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3787 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3789 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3790 -1, 89, 90, -1, 92, 93, -1, -1, -1, -1,
3791 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3792 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3793 5, 6, 7, -1, -1, -1, 11, 12, 126, 127,
3794 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3795 -1, -1, -1, 141, -1, 30, 31, 32, 33, 34,
3796 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3797 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3798 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3799 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3801 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3802 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3803 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3804 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3805 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3806 22, 23, 24, -1, 139, -1, -1, -1, 30, 31,
3807 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3808 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3809 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3810 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3811 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3812 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3813 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3814 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3816 -1, -1, -1, -1, 126, 127, 128, -1, -1, -1,
3817 -1, -1, -1, -1, -1, -1, -1, 139, 3, 4,
3818 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3819 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3820 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3821 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3822 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3823 55, 56, 57, -1, -1, -1, -1, -1, -1, -1,
3824 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3825 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3826 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3827 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
3828 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3829 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3830 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
3831 135, 136, 3, 4, 5, 6, 7, 8, 9, 10,
3832 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3833 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
3834 31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
3835 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3836 51, 52, 53, 54, 55, 56, 57, -1, -1, -1,
3837 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
3838 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
3839 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
3840 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
3841 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3842 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
3843 121, 122, 123, 124, 125, -1, 127, 128, -1, -1,
3844 -1, -1, -1, -1, 135, 3, 4, 5, 6, 7,
3845 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3846 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
3847 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
3848 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3849 48, 49, 50, 51, 52, 53, 54, -1, 56, -1,
3850 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
3851 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3852 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
3853 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
3854 -1, 99, -1, -1, -1, -1, -1, -1, -1, -1,
3855 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
3856 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
3857 128, -1, -1, -1, -1, -1, -1, 135, 3, 4,
3858 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3859 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3860 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3861 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3862 45, 46, 47, 48, 49, 50, 51, 52, 53, -1,
3863 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3864 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3865 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3866 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3867 95, 96, -1, -1, 99, -1, -1, -1, -1, -1,
3868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3869 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3870 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
3871 135, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3872 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3873 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3874 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3875 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3876 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
3877 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3878 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3879 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3880 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
3881 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3882 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
3883 122, 123, 124, 125, -1, 127, 128, 3, 4, 5,
3884 -1, 7, -1, 135, -1, 11, 12, -1, -1, -1,
3885 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3886 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3887 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3888 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3889 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3891 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3892 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
3893 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3894 106, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3895 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
3896 126, 18, 19, 20, 21, 22, 23, 24, 134, -1,
3897 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3898 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3899 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3900 57, -1, 59, 60, -1, 62, 63, 64, -1, -1,
3901 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3902 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3903 -1, -1, 89, 90, -1, 92, 93, -1, -1, -1,
3904 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3905 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
3906 -1, -1, -1, 11, 12, -1, -1, -1, 16, 126,
3907 18, 19, 20, 21, 22, 23, 24, 134, -1, -1,
3908 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3909 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3910 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3911 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3913 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3914 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3915 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3916 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3917 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
3918 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3919 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3920 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3921 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3922 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3923 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3924 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3925 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3926 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
3927 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3928 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3929 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3930 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3931 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3932 -1, -1, -1, 45, 46, -1, 48, 49, 50, 51,
3933 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3934 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3935 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3936 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3937 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3938 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3939 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3940 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3941 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3942 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3943 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3944 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
3945 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3947 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3948 89, 90, -1, 92, 93, -1, 95, 96, 97, 98,
3949 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3950 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3951 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
3952 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3953 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3954 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3955 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3956 56, 57, 58, 59, 60, -1, 62, 63, 64, -1,
3957 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3958 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3959 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3960 96, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3961 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3962 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3963 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
3964 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3965 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3966 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3967 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3968 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3969 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3970 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3971 93, -1, -1, 96, 97, 98, 99, 100, 101, 102,
3972 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
3973 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3974 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
3975 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3976 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3977 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3978 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3979 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3980 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3981 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3982 90, -1, 92, 93, -1, 95, 96, -1, 98, 99,
3983 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3984 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3985 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
3986 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3987 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3988 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3989 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3990 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
3991 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3992 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3993 -1, -1, 89, 90, -1, 92, 93, -1, -1, 96,
3994 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3995 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3996 4, 5, -1, 7, -1, -1, -1, 11, 12, 126,
3997 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3998 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3999 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4000 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4001 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4002 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
4003 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4004 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4005 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
4006 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
4007 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4008 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
4009 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4010 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4011 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4012 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4013 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
4014 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4015 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
4016 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
4017 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
4018 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4019 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
4020 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4021 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4022 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4023 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4024 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
4025 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4026 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
4027 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
4028 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
4029 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4030 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
4031 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4032 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4033 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4034 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4035 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
4036 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
4037 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4038 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
4039 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
4040 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
4041 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4042 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
4043 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4044 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4045 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4046 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
4047 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
4048 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4049 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
4050 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
4051 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
4052 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4053 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
4054 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4055 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4056 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4057 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4058 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
4059 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4060 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
4061 89, 90, -1, 92, 93, -1, -1, -1, -1, 98,
4062 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
4063 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4064 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
4065 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4066 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4067 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4068 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4069 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
4070 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
4071 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4072 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
4073 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
4074 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4075 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4076 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
4077 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4078 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4079 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4080 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4081 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
4082 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4083 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4084 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4085 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4086 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4087 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
4088 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4089 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4090 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4091 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4092 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
4093 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4094 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4095 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
4096 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4097 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4098 11, 12, -1, -1, -1, 16, 126, 18, 19, 20,
4099 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4100 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4101 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4102 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4103 -1, 62, 63, 64, -1, -1, -1, -1, -1, -1,
4104 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4105 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
4106 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
4107 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
4108 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4109 12, -1, -1, -1, 16, 126, 18, 19, 20, 21,
4110 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4111 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4112 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4113 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
4114 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
4115 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4116 -1, 83, -1, -1, 86, -1, -1, 89, 90, -1,
4117 92, 93, -1, -1, -1, -1, 98, 99, 100, 101,
4118 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
4119 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4120 -1, -1, -1, 16, 126, 18, 19, 20, 21, 22,
4121 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4122 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4123 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4124 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4125 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
4126 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4127 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4128 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4129 103, 104, 105, 106, -1, -1, -1, -1, -1, 3,
4130 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4131 -1, -1, 16, 126, 18, 19, 20, 21, 22, 23,
4132 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4133 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4134 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4135 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4136 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4137 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4138 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4139 -1, -1, -1, -1, 98, 99, 100, 101, 102, 103,
4140 104, 105, 106, -1, -1, -1, -1, -1, 3, 4,
4141 5, -1, 7, -1, -1, -1, 11, 12, -1, -1,
4142 -1, 16, 126, 18, 19, 20, 21, 22, 23, 24,
4143 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4144 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4145 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4146 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
4147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4148 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4149 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
4150 -1, -1, -1, 98, 99, 100, 101, 102, 103, 104,
4151 105, 106, -1, -1, -1, -1, -1, 3, 4, 5,
4152 -1, 7, -1, -1, -1, 11, 12, -1, -1, -1,
4153 16, 126, 18, 19, 20, 21, 22, 23, 24, -1,
4154 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4155 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4156 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4157 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
4158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4159 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4160 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
4161 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
4162 106, -1, -1, -1, -1, -1, -1, 52, 53, -1,
4163 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
4164 126, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4165 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4167 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4168 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4169 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4170 125, -1, 127, 128, 52, 53, -1, -1, 56, -1,
4171 135, -1, -1, -1, -1, -1, -1, -1, 66, 67,
4172 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4173 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4174 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
4175 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4176 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
4177 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
4178 128, 52, 53, -1, -1, 56, -1, 135, -1, -1,
4179 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
4180 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4181 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4182 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
4183 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4184 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
4185 121, 122, 123, 124, 125, -1, 127, 128, 52, 53,
4186 -1, -1, 56, -1, 135, -1, -1, -1, -1, -1,
4187 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
4188 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4189 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4190 -1, 95, 96, -1, -1, -1, -1, -1, -1, -1,
4191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4192 -1, -1, 116, 117, 118, 119, 120, 121, 122, 123,
4193 124, 125, -1, 127, 128, 52, 53, -1, -1, 56,
4194 -1, 135, -1, -1, -1, -1, -1, -1, -1, 66,
4195 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4196 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4197 -1, -1, -1, -1, -1, -1, -1, -1, 95, 96,
4198 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4199 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
4200 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
4201 127, 128, 52, 53, -1, -1, 56, -1, 135, -1,
4202 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
4203 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4204 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4205 -1, -1, -1, -1, -1, 95, 96, -1, -1, -1,
4206 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4207 -1, -1, -1, -1, -1, -1, 116, 117, 118, 119,
4208 120, 121, 122, 123, 124, 125, -1, 127, 128, 52,
4209 53, -1, -1, 56, -1, 135, -1, -1, -1, -1,
4210 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
4211 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4212 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4213 -1, -1, 95, 96, -1, -1, -1, -1, -1, -1,
4214 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4215 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122,
4216 123, 124, 125, -1, 127, 128, 52, 53, -1, -1,
4217 56, -1, 135, -1, -1, -1, -1, -1, -1, -1,
4218 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4219 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4220 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4221 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4223 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
4224 -1, 127, 128, 52, 53, -1, -1, 56, -1, 135,
4225 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
4226 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4227 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4228 -1, -1, -1, -1, -1, -1, 95, 96, -1, -1,
4229 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4230 -1, -1, -1, -1, -1, -1, -1, 116, 117, 118,
4231 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
4232 52, 53, -1, -1, 56, -1, 135, -1, -1, -1,
4233 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
4234 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4235 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4236 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
4237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4238 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
4239 122, 123, 124, 125, -1, 127, 128, 52, 53, -1,
4240 -1, 56, -1, 135, -1, -1, -1, -1, -1, -1,
4241 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4242 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4243 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4244 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4246 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4247 125, -1, 127, 128, 52, 53, -1, -1, 56, -1,
4248 135, -1, -1, -1, -1, -1, -1, -1, 66, 67,
4249 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4250 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4251 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
4252 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4253 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
4254 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
4255 128, 52, 53, -1, -1, 56, -1, 135, -1, -1,
4256 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
4257 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4258 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4259 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
4260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4261 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
4262 121, 122, 123, 124, 125, -1, 127, 128, -1, -1,
4270 0, 143, 144, 0, 1, 3, 4, 5, 6, 7,
4271 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4272 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4273 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4274 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4275 90, 92, 93, 95, 98, 99, 100, 101, 102, 103,
4276 104, 105, 106, 126, 127, 128, 145, 146, 147, 154,
4277 156, 157, 159, 160, 163, 164, 165, 167, 168, 169,
4278 171, 172, 182, 196, 214, 215, 216, 217, 218, 219,
4279 220, 221, 222, 223, 224, 250, 251, 265, 266, 267,
4280 268, 269, 270, 271, 274, 276, 277, 289, 291, 292,
4281 293, 294, 295, 296, 297, 328, 339, 147, 3, 4,
4282 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
4283 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
4284 25, 26, 30, 31, 32, 33, 34, 35, 36, 37,
4285 38, 39, 45, 46, 47, 48, 49, 50, 51, 52,
4286 53, 56, 66, 67, 68, 69, 70, 71, 72, 73,
4287 74, 77, 78, 81, 82, 83, 84, 95, 96, 116,
4288 117, 118, 119, 120, 121, 122, 123, 124, 125, 127,
4289 128, 135, 175, 176, 177, 178, 180, 181, 289, 291,
4290 39, 58, 86, 89, 95, 96, 97, 127, 164, 172,
4291 182, 184, 189, 192, 194, 214, 293, 294, 296, 297,
4292 326, 327, 189, 189, 136, 190, 191, 136, 186, 190,
4293 136, 141, 333, 54, 177, 333, 148, 130, 21, 22,
4294 30, 31, 32, 163, 182, 214, 182, 56, 1, 47,
4295 89, 150, 151, 152, 154, 166, 167, 339, 157, 198,
4296 185, 194, 326, 339, 184, 325, 326, 339, 46, 86,
4297 126, 134, 171, 196, 214, 293, 294, 297, 242, 243,
4298 54, 55, 57, 175, 281, 290, 280, 281, 282, 140,
4299 272, 140, 278, 140, 275, 140, 279, 59, 60, 159,
4300 182, 182, 139, 141, 332, 337, 338, 40, 41, 42,
4301 43, 44, 37, 38, 26, 130, 186, 190, 256, 28,
4302 248, 113, 134, 89, 95, 168, 113, 68, 69, 70,
4303 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4304 83, 84, 114, 116, 117, 118, 119, 120, 121, 122,
4305 123, 124, 125, 85, 132, 133, 197, 157, 158, 158,
4306 201, 203, 158, 332, 338, 86, 165, 172, 214, 230,
4307 293, 294, 297, 52, 56, 83, 86, 173, 174, 214,
4308 293, 294, 297, 174, 33, 34, 35, 36, 49, 50,
4309 51, 52, 56, 136, 175, 295, 323, 85, 133, 331,
4310 256, 268, 87, 87, 134, 184, 56, 184, 184, 184,
4311 113, 88, 134, 193, 339, 85, 132, 133, 87, 87,
4312 134, 193, 189, 333, 334, 189, 188, 189, 194, 326,
4313 339, 157, 334, 157, 54, 63, 64, 155, 136, 183,
4314 130, 150, 85, 133, 87, 154, 153, 166, 137, 332,
4315 338, 334, 199, 334, 138, 134, 141, 336, 134, 336,
4316 131, 336, 333, 56, 59, 60, 168, 170, 134, 85,
4317 132, 133, 244, 61, 107, 109, 110, 283, 110, 283,
4318 110, 65, 283, 110, 110, 273, 283, 110, 61, 110,
4319 110, 110, 273, 110, 61, 110, 68, 68, 139, 147,
4320 158, 158, 158, 158, 154, 157, 157, 258, 257, 94,
4321 161, 249, 95, 159, 184, 194, 195, 166, 134, 171,
4322 134, 156, 159, 172, 182, 184, 195, 182, 182, 182,
4323 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4324 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4325 182, 182, 182, 52, 53, 56, 180, 255, 329, 330,
4326 188, 52, 53, 56, 180, 254, 329, 149, 150, 13,
4327 226, 337, 226, 158, 158, 332, 17, 259, 56, 85,
4328 132, 133, 25, 157, 52, 56, 173, 1, 117, 298,
4329 337, 85, 132, 133, 210, 324, 211, 331, 52, 56,
4330 329, 159, 182, 159, 182, 179, 182, 184, 95, 184,
4331 192, 326, 52, 56, 188, 52, 56, 327, 334, 137,
4332 334, 134, 134, 334, 177, 200, 182, 145, 131, 329,
4333 329, 182, 130, 334, 152, 334, 326, 134, 170, 52,
4334 56, 188, 52, 56, 52, 54, 55, 56, 57, 58,
4335 68, 89, 95, 96, 97, 120, 123, 136, 246, 301,
4336 303, 304, 305, 306, 307, 308, 311, 312, 313, 314,
4337 317, 318, 319, 320, 321, 285, 284, 140, 283, 140,
4338 140, 140, 182, 182, 76, 118, 237, 238, 339, 237,
4339 162, 237, 184, 134, 334, 170, 134, 113, 44, 333,
4340 87, 87, 186, 190, 253, 333, 335, 87, 87, 186,
4341 190, 252, 10, 225, 8, 261, 339, 150, 13, 150,
4342 27, 227, 337, 227, 259, 194, 225, 52, 56, 188,
4343 52, 56, 205, 208, 337, 299, 207, 52, 56, 173,
4344 188, 149, 157, 136, 300, 303, 212, 186, 187, 190,
4345 339, 44, 177, 184, 193, 87, 87, 335, 87, 87,
4346 326, 157, 131, 145, 336, 168, 335, 113, 184, 52,
4347 89, 95, 231, 232, 233, 305, 303, 245, 134, 302,
4348 134, 322, 339, 52, 134, 322, 134, 302, 52, 134,
4349 302, 52, 286, 54, 55, 57, 288, 297, 52, 58,
4350 234, 236, 239, 307, 309, 310, 313, 315, 316, 319,
4351 321, 333, 150, 150, 237, 150, 95, 184, 170, 182,
4352 115, 159, 182, 159, 182, 161, 186, 138, 87, 159,
4353 182, 159, 182, 161, 187, 184, 195, 262, 339, 15,
4354 229, 339, 14, 228, 229, 229, 202, 204, 225, 134,
4355 226, 335, 158, 337, 158, 149, 335, 225, 334, 303,
4356 149, 337, 175, 256, 248, 182, 87, 134, 334, 131,
4357 184, 233, 134, 305, 134, 334, 239, 29, 111, 247,
4358 301, 306, 317, 319, 308, 313, 321, 307, 314, 319,
4359 307, 287, 113, 86, 214, 239, 118, 134, 235, 134,
4360 322, 322, 134, 235, 134, 235, 139, 10, 131, 150,
4361 10, 184, 182, 159, 182, 88, 263, 339, 150, 9,
4362 264, 339, 158, 225, 225, 150, 150, 184, 150, 227,
4363 209, 337, 225, 334, 225, 213, 334, 232, 134, 95,
4364 231, 137, 150, 150, 134, 302, 134, 302, 322, 134,
4365 302, 134, 302, 302, 150, 214, 56, 85, 118, 234,
4366 316, 319, 309, 313, 307, 315, 319, 307, 52, 240,
4367 241, 304, 131, 86, 172, 214, 293, 294, 297, 226,
4368 150, 226, 225, 225, 229, 259, 260, 206, 149, 300,
4369 134, 232, 134, 305, 10, 131, 307, 319, 307, 307,
4370 108, 52, 56, 134, 235, 134, 235, 322, 134, 235,
4371 134, 235, 235, 134, 333, 56, 85, 132, 133, 150,
4372 150, 150, 225, 149, 232, 134, 302, 134, 302, 302,
4373 302, 307, 319, 307, 307, 241, 52, 56, 188, 52,
4374 56, 261, 228, 225, 225, 232, 307, 235, 134, 235,
4375 235, 235, 335, 302, 307, 235
4378 #define yyerrok (yyerrstatus = 0)
4379 #define yyclearin (yychar = YYEMPTY)
4380 #define YYEMPTY (-2)
4383 #define YYACCEPT goto yyacceptlab
4384 #define YYABORT goto yyabortlab
4385 #define YYERROR goto yyerrorlab
4395 #define YYFAIL goto yyerrlab
4403 #define YYRECOVERING() (!!yyerrstatus)
4405 #define YYBACKUP(Token, Value) \
4407 if (yychar == YYEMPTY && yylen == 1) \
4416 parser_yyerror (parser, YY_("syntax error: cannot back up")); \
4423 #define YYERRCODE 256
4430 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4431 #ifndef YYLLOC_DEFAULT
4432 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4436 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4437 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4438 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4439 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4443 (Current).first_line = (Current).last_line = \
4444 YYRHSLOC (Rhs, 0).last_line; \
4445 (Current).first_column = (Current).last_column = \
4446 YYRHSLOC (Rhs, 0).last_column; \
4454 #ifndef YY_LOCATION_PRINT
4455 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4462 # define YYLEX yylex (&yylval, YYLEX_PARAM)
4464 # define YYLEX yylex (&yylval, parser)
4472 # define YYFPRINTF fprintf
4475 # define YYDPRINTF(Args) \
4481 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4485 YYFPRINTF (stderr, "%s ", Title); \
4486 yy_symbol_print (stderr, \
4487 Type, Value, parser); \
4488 YYFPRINTF (stderr, "\n"); \
4498 #if (defined __STDC__ || defined __C99__FUNC__ \
4499 || defined __cplusplus || defined _MSC_VER)
4516 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4532 #if (defined __STDC__ || defined __C99__FUNC__ \
4533 || defined __cplusplus || defined _MSC_VER)
4546 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4548 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4559 #if (defined __STDC__ || defined __C99__FUNC__ \
4560 || defined __cplusplus || defined _MSC_VER)
4566 yytype_int16 *yybottom;
4567 yytype_int16 *yytop;
4571 for (; yybottom <= yytop; yybottom++)
4573 int yybot = *yybottom;
4579 # define YY_STACK_PRINT(Bottom, Top) \
4582 yy_stack_print ((Bottom), (Top)); \
4590 #if (defined __STDC__ || defined __C99__FUNC__ \
4591 || defined __cplusplus || defined _MSC_VER)
4602 int yynrhs = yyr2[yyrule];
4604 unsigned long int yylno = yyrline[yyrule];
4605 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4608 for (yyi = 0; yyi < yynrhs; yyi++)
4612 &(yyvsp[(yyi + 1) - (yynrhs)])
4618 # define YY_REDUCE_PRINT(Rule) \
4621 yy_reduce_print (yyvsp, Rule, parser); \
4630 # define YYDPRINTF(Args)
4631 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4632 # define YY_STACK_PRINT(Bottom, Top)
4633 # define YY_REDUCE_PRINT(Rule)
4639 # define YYINITDEPTH 200
4650 # define YYMAXDEPTH 10000
4657 # if defined __GLIBC__ && defined _STRING_H
4658 # define yystrlen strlen
4661 #if (defined __STDC__ || defined __C99__FUNC__ \
4662 || defined __cplusplus || defined _MSC_VER)
4672 for (yylen = 0; yystr[yylen]; yylen++)
4680 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4681 # define yystpcpy stpcpy
4685 #if (defined __STDC__ || defined __C99__FUNC__ \
4686 || defined __cplusplus || defined _MSC_VER)
4688 yystpcpy (
char *yydest,
const char *yysrc)
4697 const char *yys = yysrc;
4699 while ((*yyd++ = *yys++) !=
'\0')
4721 char const *yyp = yystr;
4728 goto do_not_strip_quotes;
4732 goto do_not_strip_quotes;
4745 do_not_strip_quotes: ;
4751 return yystpcpy (yyres, yystr) - yyres;
4765 yytype_int16 *yyssp,
int yytoken)
4770 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4772 const char *yyformat = 0;
4774 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4808 int yyn = yypact[*yyssp];
4809 yyarg[yycount++] = yytname[yytoken];
4815 int yyxbegin = yyn < 0 ? -yyn : 0;
4817 int yychecklim =
YYLAST - yyn + 1;
4821 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4822 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR
4825 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4831 yyarg[yycount++] = yytname[yyx];
4832 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
4833 if (! (yysize <= yysize1
4843 # define YYCASE_(N, S) \
4848 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
4849 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4850 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4851 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4852 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4856 yysize1 = yysize +
yystrlen (yyformat);
4861 if (*yymsg_alloc < yysize)
4863 *yymsg_alloc = 2 * yysize;
4864 if (! (yysize <= *yymsg_alloc
4876 while ((*yyp = *yyformat) !=
'\0')
4877 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
4897 #if (defined __STDC__ || defined __C99__FUNC__ \
4898 || defined __cplusplus || defined _MSC_VER)
4927 #ifdef YYPARSE_PARAM
4928 #if defined __STDC__ || defined __cplusplus
4929 int yyparse (
void *YYPARSE_PARAM);
4934 #if defined __STDC__ || defined __cplusplus
4946 #ifdef YYPARSE_PARAM
4947 #if (defined __STDC__ || defined __C99__FUNC__ \
4948 || defined __cplusplus || defined _MSC_VER)
4954 void *YYPARSE_PARAM;
4957 #if (defined __STDC__ || defined __C99__FUNC__ \
4958 || defined __cplusplus || defined _MSC_VER)
4991 yytype_int16 *yyssp;
5011 char *yymsg = yymsgbuf;
5012 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
5015 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
5026 YYDPRINTF ((stderr,
"Starting parse\n"));
5053 if (yyss + yystacksize - 1 <= yyssp)
5056 YYSIZE_T yysize = yyssp - yyss + 1;
5064 yytype_int16 *yyss1 = yyss;
5070 yyoverflow (
YY_(
"memory exhausted"),
5071 &yyss1, yysize *
sizeof (*yyssp),
5072 &yyvs1, yysize *
sizeof (*yyvsp),
5079 # ifndef YYSTACK_RELOCATE
5080 goto yyexhaustedlab;
5084 goto yyexhaustedlab;
5090 yytype_int16 *yyss1 = yyss;
5094 goto yyexhaustedlab;
5097 # undef YYSTACK_RELOCATE
5104 yyssp = yyss + yysize - 1;
5105 yyvsp = yyvs + yysize - 1;
5107 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
5108 (
unsigned long int) yystacksize));
5110 if (yyss + yystacksize - 1 <= yyssp)
5114 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
5130 yyn = yypact[yystate];
5139 YYDPRINTF ((stderr,
"Reading a token: "));
5143 if (yychar <=
YYEOF)
5145 yychar = yytoken =
YYEOF;
5146 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5157 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5189 yyn = yydefact[yystate];
5210 yyval = yyvsp[1-yylen];
5240 NODE *node = (yyvsp[(2) - (2)].
node);
5241 while (node->nd_next) {
5242 node = node->nd_next;
5266 (yyval.
node) = (yyvsp[(1) - (2)].node);
5338 (yyvsp[(4) - (5)].node));
5354 (yyval.
node) = (yyvsp[(1) - (4)].node);
5355 if ((yyvsp[(2) - (4)].node)) {
5356 (yyval.
node) =
NEW_RESCUE((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].
node), (yyvsp[(3) - (4)].node));
5358 else if ((yyvsp[(3) - (4)].node)) {
5359 rb_warn0(
"else without rescue is useless");
5362 if ((yyvsp[(4) - (4)].node)) {
5391 (yyval.
node) = (yyvsp[(1) - (2)].node);
5412 #line 1003 "parse.y"
5425 #line 1011 "parse.y"
5438 #line 1019 "parse.y"
5447 #line 1025 "parse.y"
5449 (yyval.
node) = (yyvsp[(1) - (1)].node);
5456 #line 1029 "parse.y"
5458 yyerror(
"BEGIN is permitted only at toplevel");
5469 #line 1037 "parse.y"
5473 (yyvsp[(4) - (5)].node));
5486 #line 1049 "parse.y"
5493 #line 1050 "parse.y"
5506 #line 1058 "parse.y"
5519 #line 1066 "parse.y"
5524 buf[1] = (char)(yyvsp[(3) - (3)].node)->nd_nth;
5535 #line 1077 "parse.y"
5538 yyerror(
"can't make alias for the number variables");
5550 #line 1087 "parse.y"
5553 (yyval.
node) = (yyvsp[(2) - (2)].node);
5563 #line 1095 "parse.y"
5577 #line 1104 "parse.y"
5591 #line 1113 "parse.y"
5594 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5598 (yyval.
node) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5609 #line 1126 "parse.y"
5612 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5613 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
5616 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5627 #line 1139 "parse.y"
5641 #line 1148 "parse.y"
5644 rb_warn0(
"END in method; use at_exit");
5648 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].node) , 0 ));
5658 #line 1161 "parse.y"
5662 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5663 (yyval.
node) = (yyvsp[(1) - (3)].node);
5673 #line 1171 "parse.y"
5676 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
5683 #line 1176 "parse.y"
5689 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
5690 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
5691 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
5692 (yyvsp[(5) - (6)].
id) = 0;
5694 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
5695 (yyvsp[(5) - (6)].
id) = 1;
5709 #line 1197 "parse.y"
5712 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5719 #line 1202 "parse.y"
5722 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5729 #line 1207 "parse.y"
5744 #line 1217 "parse.y"
5754 #line 1222 "parse.y"
5769 #line 1232 "parse.y"
5783 #line 1241 "parse.y"
5786 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5787 (yyval.
node) = (yyvsp[(1) - (3)].node);
5797 #line 1250 "parse.y"
5800 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5801 (yyval.
node) = (yyvsp[(1) - (3)].node);
5811 #line 1262 "parse.y"
5825 #line 1271 "parse.y"
5839 #line 1284 "parse.y"
5852 #line 1292 "parse.y"
5865 #line 1300 "parse.y"
5878 #line 1308 "parse.y"
5891 #line 1319 "parse.y"
5895 (yyval.
node) = (yyvsp[(1) - (1)].node);
5906 #line 1336 "parse.y"
5909 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5920 #line 1347 "parse.y"
5933 #line 1357 "parse.y"
5948 #line 1369 "parse.y"
5961 #line 1379 "parse.y"
5964 (yyval.
node) = (yyvsp[(1) - (2)].node);
5975 #line 1388 "parse.y"
5979 (yyvsp[(1) - (3)].
node)->
nd_args = (yyvsp[(2) - (3)].node);
5980 (yyvsp[(3) - (3)].
node)->
nd_iter = (yyvsp[(1) - (3)].node);
5981 (yyval.
node) = (yyvsp[(3) - (3)].node);
5993 #line 1401 "parse.y"
5996 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
6007 #line 1410 "parse.y"
6011 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
6012 (yyval.
node) = (yyvsp[(5) - (5)].node);
6024 #line 1422 "parse.y"
6027 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
6038 #line 1431 "parse.y"
6042 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
6043 (yyval.
node) = (yyvsp[(5) - (5)].node);
6055 #line 1443 "parse.y"
6069 #line 1452 "parse.y"
6083 #line 1461 "parse.y"
6096 #line 1469 "parse.y"
6109 #line 1477 "parse.y"
6122 #line 1488 "parse.y"
6125 (yyval.
node) = (yyvsp[(2) - (3)].node);
6135 #line 1499 "parse.y"
6148 #line 1509 "parse.y"
6161 #line 1517 "parse.y"
6174 #line 1525 "parse.y"
6187 #line 1533 "parse.y"
6201 #line 1542 "parse.y"
6214 #line 1550 "parse.y"
6228 #line 1559 "parse.y"
6241 #line 1567 "parse.y"
6255 #line 1576 "parse.y"
6268 #line 1584 "parse.y"
6282 #line 1596 "parse.y"
6285 (yyval.
node) = (yyvsp[(2) - (3)].node);
6295 #line 1606 "parse.y"
6308 #line 1614 "parse.y"
6321 #line 1624 "parse.y"
6334 #line 1632 "parse.y"
6347 #line 1642 "parse.y"
6356 #line 1646 "parse.y"
6365 #line 1650 "parse.y"
6368 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6378 #line 1658 "parse.y"
6381 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6391 #line 1666 "parse.y"
6394 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6404 #line 1674 "parse.y"
6407 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6417 #line 1682 "parse.y"
6421 yyerror(
"dynamic constant assignment");
6434 #line 1694 "parse.y"
6438 yyerror(
"dynamic constant assignment");
6449 #line 1704 "parse.y"
6464 #line 1716 "parse.y"
6478 #line 1725 "parse.y"
6492 #line 1734 "parse.y"
6495 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6505 #line 1742 "parse.y"
6508 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6518 #line 1750 "parse.y"
6521 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6531 #line 1758 "parse.y"
6534 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6544 #line 1766 "parse.y"
6548 yyerror(
"dynamic constant assignment");
6562 #line 1779 "parse.y"
6566 yyerror(
"dynamic constant assignment");
6580 #line 1792 "parse.y"
6594 #line 1803 "parse.y"
6597 yyerror(
"class/module name must be CONSTANT");
6607 #line 1814 "parse.y"
6620 #line 1822 "parse.y"
6633 #line 1830 "parse.y"
6646 #line 1843 "parse.y"
6649 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6656 #line 1848 "parse.y"
6660 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6670 #line 1863 "parse.y"
6683 #line 1874 "parse.y"
6696 #line 1881 "parse.y"
6703 #line 1882 "parse.y"
6716 #line 1891 "parse.y"
6723 #line 1892 "parse.y"
6730 #line 1893 "parse.y"
6737 #line 1894 "parse.y"
6744 #line 1895 "parse.y"
6751 #line 1896 "parse.y"
6758 #line 1897 "parse.y"
6765 #line 1898 "parse.y"
6772 #line 1899 "parse.y"
6779 #line 1900 "parse.y"
6786 #line 1901 "parse.y"
6793 #line 1902 "parse.y"
6800 #line 1903 "parse.y"
6807 #line 1904 "parse.y"
6814 #line 1905 "parse.y"
6821 #line 1906 "parse.y"
6828 #line 1907 "parse.y"
6835 #line 1908 "parse.y"
6842 #line 1909 "parse.y"
6849 #line 1910 "parse.y"
6856 #line 1911 "parse.y"
6863 #line 1912 "parse.y"
6870 #line 1913 "parse.y"
6877 #line 1914 "parse.y"
6884 #line 1915 "parse.y"
6891 #line 1916 "parse.y"
6898 #line 1917 "parse.y"
6905 #line 1918 "parse.y"
6912 #line 1919 "parse.y"
6919 #line 1920 "parse.y"
6926 #line 1938 "parse.y"
6940 #line 1947 "parse.y"
6955 #line 1957 "parse.y"
6958 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
6965 #line 1962 "parse.y"
6973 (yyval.
node) =
new_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].node));
6980 #line 1972 "parse.y"
6986 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
6988 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6991 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6993 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
6994 (yyvsp[(5) - (6)].
id) = 0;
6996 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
6997 (yyvsp[(5) - (6)].
id) = 1;
7011 #line 1998 "parse.y"
7014 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
7021 #line 2003 "parse.y"
7024 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
7031 #line 2008 "parse.y"
7041 #line 2013 "parse.y"
7056 #line 2023 "parse.y"
7071 #line 2033 "parse.y"
7087 #line 2044 "parse.y"
7106 #line 2058 "parse.y"
7125 #line 2072 "parse.y"
7138 #line 2080 "parse.y"
7151 #line 2088 "parse.y"
7164 #line 2096 "parse.y"
7177 #line 2104 "parse.y"
7190 #line 2112 "parse.y"
7203 #line 2120 "parse.y"
7217 #line 2129 "parse.y"
7231 #line 2138 "parse.y"
7244 #line 2146 "parse.y"
7257 #line 2154 "parse.y"
7270 #line 2162 "parse.y"
7283 #line 2170 "parse.y"
7296 #line 2178 "parse.y"
7309 #line 2186 "parse.y"
7322 #line 2194 "parse.y"
7335 #line 2202 "parse.y"
7348 #line 2210 "parse.y"
7361 #line 2218 "parse.y"
7374 #line 2226 "parse.y"
7387 #line 2234 "parse.y"
7400 #line 2242 "parse.y"
7416 #line 2253 "parse.y"
7429 #line 2261 "parse.y"
7442 #line 2269 "parse.y"
7455 #line 2277 "parse.y"
7468 #line 2285 "parse.y"
7481 #line 2293 "parse.y"
7494 #line 2301 "parse.y"
7507 #line 2308 "parse.y"
7514 #line 2309 "parse.y"
7529 #line 2319 "parse.y"
7533 (yyval.
node) =
NEW_IF(
cond((yyvsp[(1) - (6)].node)), (yyvsp[(3) - (6)].
node), (yyvsp[(6) - (6)].node));
7544 #line 2329 "parse.y"
7546 (yyval.
node) = (yyvsp[(1) - (1)].node);
7553 #line 2335 "parse.y"
7557 (yyval.
node) = (yyvsp[(1) - (1)].node);
7568 #line 2348 "parse.y"
7570 (yyval.
node) = (yyvsp[(1) - (2)].node);
7577 #line 2352 "parse.y"
7590 #line 2360 "parse.y"
7603 #line 2370 "parse.y"
7606 (yyval.
node) = (yyvsp[(2) - (3)].node);
7616 #line 2386 "parse.y"
7618 (yyval.
node) = (yyvsp[(1) - (2)].node);
7625 #line 2390 "parse.y"
7638 #line 2398 "parse.y"
7651 #line 2408 "parse.y"
7665 #line 2417 "parse.y"
7678 #line 2425 "parse.y"
7693 #line 2435 "parse.y"
7707 #line 2452 "parse.y"
7717 #line 2457 "parse.y"
7721 (yyval.
node) = (yyvsp[(2) - (2)].node);
7728 #line 2465 "parse.y"
7741 #line 2475 "parse.y"
7743 (yyval.
node) = (yyvsp[(2) - (2)].node);
7750 #line 2479 "parse.y"
7759 #line 2485 "parse.y"
7772 #line 2493 "parse.y"
7785 #line 2501 "parse.y"
7789 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7804 #line 2515 "parse.y"
7823 #line 2531 "parse.y"
7827 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7842 #line 2545 "parse.y"
7847 (n1 =
splat_array((yyvsp[(1) - (4)].node))) != 0) {
7862 #line 2560 "parse.y"
7875 #line 2580 "parse.y"
7888 #line 2588 "parse.y"
7902 #line 2598 "parse.y"
7906 if ((yyvsp[(3) - (4)].node) ==
NULL) {
7912 nd_set_line((yyvsp[(3) - (4)].node), (yyvsp[(2) - (4)].num));
7925 #line 2615 "parse.y"
7932 #line 2616 "parse.y"
7945 #line 2623 "parse.y"
7952 #line 2624 "parse.y"
7955 (yyval.
node) = (yyvsp[(2) - (4)].node);
7965 #line 2632 "parse.y"
7968 (yyval.
node) = (yyvsp[(2) - (3)].node);
7978 #line 2640 "parse.y"
7991 #line 2648 "parse.y"
8004 #line 2656 "parse.y"
8007 if ((yyvsp[(2) - (3)].node) == 0) {
8011 (yyval.
node) = (yyvsp[(2) - (3)].node);
8022 #line 2669 "parse.y"
8035 #line 2677 "parse.y"
8048 #line 2685 "parse.y"
8061 #line 2693 "parse.y"
8074 #line 2701 "parse.y"
8087 #line 2708 "parse.y"
8094 #line 2709 "parse.y"
8109 #line 2719 "parse.y"
8122 #line 2727 "parse.y"
8135 #line 2735 "parse.y"
8138 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8139 (yyval.
node) = (yyvsp[(2) - (2)].node);
8150 #line 2746 "parse.y"
8154 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8155 (yyval.
node) = (yyvsp[(2) - (2)].node);
8165 #line 2756 "parse.y"
8167 (yyval.
node) = (yyvsp[(2) - (2)].node);
8174 #line 2763 "parse.y"
8177 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].
node));
8188 #line 2775 "parse.y"
8191 (yyval.
node) =
NEW_UNLESS(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node));
8202 #line 2783 "parse.y"
8209 #line 2783 "parse.y"
8216 #line 2786 "parse.y"
8230 #line 2794 "parse.y"
8237 #line 2794 "parse.y"
8244 #line 2797 "parse.y"
8258 #line 2808 "parse.y"
8272 #line 2817 "parse.y"
8285 #line 2825 "parse.y"
8292 #line 2827 "parse.y"
8299 #line 2830 "parse.y"
8344 m->nd_next = (yyvsp[(2) - (9)].
node);
8353 tbl[0] = 1; tbl[1] =
id;
8354 (yyval.
node) =
NEW_FOR(0, (yyvsp[(5) - (9)].node), scope);
8365 #line 2891 "parse.y"
8368 yyerror(
"class definition in method body");
8380 #line 2902 "parse.y"
8383 (yyval.
node) =
NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(3) - (6)].node));
8395 #line 2912 "parse.y"
8405 #line 2917 "parse.y"
8416 #line 2924 "parse.y"
8433 #line 2936 "parse.y"
8436 yyerror(
"module definition in method body");
8448 #line 2947 "parse.y"
8463 #line 2957 "parse.y"
8475 #line 2966 "parse.y"
8494 #line 2979 "parse.y"
8501 #line 2980 "parse.y"
8512 #line 2988 "parse.y"
8517 (yyval.
node) =
NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].
id), (yyvsp[(7) - (9)].node), body);
8530 #line 3001 "parse.y"
8543 #line 3009 "parse.y"
8556 #line 3017 "parse.y"
8569 #line 3025 "parse.y"
8582 #line 3035 "parse.y"
8586 (yyval.
node) = (yyvsp[(1) - (1)].node);
8597 #line 3047 "parse.y"
8606 #line 3053 "parse.y"
8615 #line 3059 "parse.y"
8624 #line 3065 "parse.y"
8633 #line 3071 "parse.y"
8642 #line 3077 "parse.y"
8651 #line 3083 "parse.y"
8660 #line 3089 "parse.y"
8669 #line 3095 "parse.y"
8678 #line 3101 "parse.y"
8691 #line 3111 "parse.y"
8700 #line 3141 "parse.y"
8703 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (5)].node)), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
8714 #line 3153 "parse.y"
8717 (yyval.
node) = (yyvsp[(2) - (2)].node);
8727 #line 3167 "parse.y"
8740 #line 3175 "parse.y"
8743 (yyval.
node) = (yyvsp[(2) - (3)].node);
8753 #line 3185 "parse.y"
8766 #line 3193 "parse.y"
8779 #line 3203 "parse.y"
8792 #line 3211 "parse.y"
8806 #line 3220 "parse.y"
8820 #line 3229 "parse.y"
8833 #line 3237 "parse.y"
8846 #line 3245 "parse.y"
8860 #line 3254 "parse.y"
8877 #line 3266 "parse.y"
8890 #line 3274 "parse.y"
8903 #line 3285 "parse.y"
8905 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
8912 #line 3289 "parse.y"
8921 #line 3293 "parse.y"
8930 #line 3297 "parse.y"
8939 #line 3303 "parse.y"
8941 (yyval.
node) = (yyvsp[(2) - (2)].node);
8948 #line 3307 "parse.y"
8957 #line 3313 "parse.y"
8959 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
8966 #line 3317 "parse.y"
8968 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
8975 #line 3321 "parse.y"
8984 #line 3325 "parse.y"
8986 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8993 #line 3329 "parse.y"
9002 #line 3333 "parse.y"
9015 #line 3341 "parse.y"
9017 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9024 #line 3345 "parse.y"
9033 #line 3349 "parse.y"
9042 #line 3353 "parse.y"
9044 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
9051 #line 3357 "parse.y"
9060 #line 3361 "parse.y"
9069 #line 3365 "parse.y"
9078 #line 3369 "parse.y"
9087 #line 3373 "parse.y"
9096 #line 3380 "parse.y"
9105 #line 3386 "parse.y"
9119 #line 3395 "parse.y"
9133 #line 3404 "parse.y"
9136 (yyval.
node) = (yyvsp[(2) - (4)].node);
9146 #line 3415 "parse.y"
9155 #line 3419 "parse.y"
9168 #line 3445 "parse.y"
9181 #line 3453 "parse.y"
9190 #line 3458 "parse.y"
9199 #line 3461 "parse.y"
9209 #line 3466 "parse.y"
9218 #line 3470 "parse.y"
9234 #line 3483 "parse.y"
9237 (yyval.
node) = (yyvsp[(2) - (4)].node);
9247 #line 3491 "parse.y"
9250 (yyval.
node) = (yyvsp[(1) - (1)].node);
9260 #line 3501 "parse.y"
9262 (yyval.
node) = (yyvsp[(2) - (3)].node);
9269 #line 3505 "parse.y"
9271 (yyval.
node) = (yyvsp[(2) - (3)].node);
9278 #line 3511 "parse.y"
9290 #line 3520 "parse.y"
9305 #line 3532 "parse.y"
9314 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
9315 (yyval.
node) = (yyvsp[(2) - (2)].node);
9326 #line 3548 "parse.y"
9329 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
9340 #line 3557 "parse.y"
9344 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
9345 (yyval.
node) = (yyvsp[(5) - (5)].node);
9357 #line 3569 "parse.y"
9361 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
9362 (yyval.
node) = (yyvsp[(5) - (5)].node);
9374 #line 3583 "parse.y"
9377 (yyval.
node) = (yyvsp[(1) - (2)].node);
9388 #line 3592 "parse.y"
9399 #line 3598 "parse.y"
9402 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
9414 #line 3608 "parse.y"
9425 #line 3614 "parse.y"
9428 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
9440 #line 3624 "parse.y"
9443 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id), 0);
9453 #line 3632 "parse.y"
9464 #line 3638 "parse.y"
9480 #line 3649 "parse.y"
9491 #line 3655 "parse.y"
9507 #line 3666 "parse.y"
9520 #line 3674 "parse.y"
9533 #line 3682 "parse.y"
9536 if ((yyvsp[(1) - (4)].node) &&
nd_type((yyvsp[(1) - (4)].node)) ==
NODE_SELF)
9539 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node),
tAREF, (yyvsp[(3) - (4)].node));
9550 #line 3696 "parse.y"
9563 #line 3705 "parse.y"
9578 #line 3715 "parse.y"
9591 #line 3724 "parse.y"
9606 #line 3738 "parse.y"
9609 (yyval.
node) =
NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
9619 #line 3754 "parse.y"
9622 if ((yyvsp[(3) - (6)].node)) {
9626 (yyval.
node) =
NEW_RESBODY((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(6) - (6)].node));
9641 #line 3774 "parse.y"
9654 #line 3782 "parse.y"
9667 #line 3793 "parse.y"
9669 (yyval.
node) = (yyvsp[(2) - (2)].node);
9676 #line 3800 "parse.y"
9679 (yyval.
node) = (yyvsp[(2) - (2)].node);
9689 #line 3812 "parse.y"
9702 #line 3823 "parse.y"
9705 NODE *node = (yyvsp[(1) - (1)].
node);
9712 (yyval.
node) = node;
9722 #line 3842 "parse.y"
9735 #line 3852 "parse.y"
9738 (yyval.
node) = (yyvsp[(2) - (3)].node);
9748 #line 3862 "parse.y"
9751 NODE *node = (yyvsp[(2) - (3)].
node);
9768 (yyval.
node) = node;
9778 #line 3889 "parse.y"
9782 NODE *node = (yyvsp[(2) - (3)].
node);
9790 VALUE src = node->nd_lit;
9806 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9808 VALUE tail = list->nd_head->nd_lit;
9810 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9816 prev->nd_next = list->nd_next;
9829 if (!node->nd_next) {
9830 VALUE src = node->nd_lit;
9836 (yyval.
node) = node;
9846 #line 3954 "parse.y"
9860 #line 3963 "parse.y"
9863 (yyval.
node) = (yyvsp[(2) - (3)].node);
9873 #line 3973 "parse.y"
9886 #line 3981 "parse.y"
9899 #line 3999 "parse.y"
9912 #line 4009 "parse.y"
9926 #line 4018 "parse.y"
9929 (yyval.
node) = (yyvsp[(2) - (3)].node);
9939 #line 4028 "parse.y"
9952 #line 4036 "parse.y"
9967 #line 4048 "parse.y"
9981 #line 4057 "parse.y"
9984 (yyval.
node) = (yyvsp[(2) - (3)].node);
9994 #line 4067 "parse.y"
10008 #line 4076 "parse.y"
10011 (yyval.
node) = (yyvsp[(2) - (3)].node);
10021 #line 4086 "parse.y"
10034 #line 4094 "parse.y"
10047 #line 4104 "parse.y"
10060 #line 4112 "parse.y"
10077 #line 4126 "parse.y"
10090 #line 4134 "parse.y"
10103 #line 4144 "parse.y"
10116 #line 4152 "parse.y"
10129 #line 4162 "parse.y"
10142 #line 4170 "parse.y"
10145 NODE *
head = (yyvsp[(1) - (2)].
node), *tail = (yyvsp[(2) - (2)].node);
10147 (yyval.
node) = tail;
10150 (yyval.
node) = head;
10174 #line 4200 "parse.y"
10185 #line 4206 "parse.y"
10200 #line 4216 "parse.y"
10212 #line 4222 "parse.y"
10223 #line 4227 "parse.y"
10233 #line 4232 "parse.y"
10240 if ((yyvsp[(5) - (6)].node)) (yyvsp[(5) - (6)].node)->flags &= ~
NODE_FL_NEWLINE;
10251 #line 4247 "parse.y"
10264 #line 4255 "parse.y"
10277 #line 4263 "parse.y"
10290 #line 4274 "parse.y"
10294 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10304 #line 4291 "parse.y"
10318 #line 4304 "parse.y"
10331 #line 4312 "parse.y"
10344 #line 4328 "parse.y"
10351 #line 4329 "parse.y"
10358 #line 4330 "parse.y"
10365 #line 4331 "parse.y"
10372 #line 4332 "parse.y"
10379 #line 4333 "parse.y"
10386 #line 4334 "parse.y"
10393 #line 4338 "parse.y"
10411 #line 4351 "parse.y"
10424 #line 4361 "parse.y"
10437 #line 4369 "parse.y"
10450 #line 4383 "parse.y"
10463 #line 4391 "parse.y"
10473 #line 4396 "parse.y"
10475 (yyval.
node) = (yyvsp[(3) - (4)].node);
10482 #line 4400 "parse.y"
10497 #line 4412 "parse.y"
10500 (yyval.
node) = (yyvsp[(2) - (3)].node);
10512 #line 4422 "parse.y"
10514 (yyval.
node) = (yyvsp[(1) - (2)].node);
10523 #line 4430 "parse.y"
10525 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
10532 #line 4434 "parse.y"
10541 #line 4438 "parse.y"
10550 #line 4442 "parse.y"
10559 #line 4448 "parse.y"
10561 (yyval.
node) = (yyvsp[(2) - (2)].node);
10568 #line 4452 "parse.y"
10577 #line 4458 "parse.y"
10579 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
10586 #line 4462 "parse.y"
10588 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
10595 #line 4466 "parse.y"
10604 #line 4470 "parse.y"
10606 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10613 #line 4474 "parse.y"
10622 #line 4478 "parse.y"
10624 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10631 #line 4482 "parse.y"
10640 #line 4486 "parse.y"
10649 #line 4490 "parse.y"
10651 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10658 #line 4494 "parse.y"
10667 #line 4498 "parse.y"
10676 #line 4502 "parse.y"
10685 #line 4506 "parse.y"
10694 #line 4510 "parse.y"
10703 #line 4514 "parse.y"
10713 #line 4521 "parse.y"
10716 yyerror(
"formal argument cannot be a constant");
10727 #line 4530 "parse.y"
10730 yyerror(
"formal argument cannot be an instance variable");
10741 #line 4539 "parse.y"
10744 yyerror(
"formal argument cannot be a global variable");
10755 #line 4548 "parse.y"
10758 yyerror(
"formal argument cannot be a class variable");
10769 #line 4560 "parse.y"
10772 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10779 #line 4567 "parse.y"
10793 #line 4576 "parse.y"
10815 #line 4602 "parse.y"
10818 (yyval.
node) = (yyvsp[(1) - (3)].node);
10831 #line 4615 "parse.y"
10846 #line 4627 "parse.y"
10861 #line 4639 "parse.y"
10864 (yyval.
node) = (yyvsp[(1) - (1)].node);
10874 #line 4647 "parse.y"
10877 NODE *kws = (yyvsp[(1) - (3)].
node);
10879 while (kws->nd_next) {
10880 kws = kws->nd_next;
10882 kws->nd_next = (yyvsp[(3) - (3)].
node);
10883 (yyval.
node) = (yyvsp[(1) - (3)].node);
10893 #line 4664 "parse.y"
10896 (yyval.
node) = (yyvsp[(1) - (1)].node);
10906 #line 4672 "parse.y"
10909 NODE *kws = (yyvsp[(1) - (3)].
node);
10911 while (kws->nd_next) {
10912 kws = kws->nd_next;
10914 kws->nd_next = (yyvsp[(3) - (3)].
node);
10915 (yyval.
node) = (yyvsp[(1) - (3)].node);
10925 #line 4692 "parse.y"
10928 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10935 #line 4697 "parse.y"
10944 #line 4703 "parse.y"
10959 #line 4715 "parse.y"
10974 #line 4727 "parse.y"
10977 (yyval.
node) = (yyvsp[(1) - (1)].node);
10987 #line 4735 "parse.y"
10990 NODE *opts = (yyvsp[(1) - (3)].
node);
10992 while (opts->nd_next) {
10993 opts = opts->nd_next;
10995 opts->nd_next = (yyvsp[(3) - (3)].
node);
10996 (yyval.
node) = (yyvsp[(1) - (3)].node);
11006 #line 4751 "parse.y"
11009 (yyval.
node) = (yyvsp[(1) - (1)].node);
11019 #line 4759 "parse.y"
11022 NODE *opts = (yyvsp[(1) - (3)].
node);
11024 while (opts->nd_next) {
11025 opts = opts->nd_next;
11027 opts->nd_next = (yyvsp[(3) - (3)].
node);
11028 (yyval.
node) = (yyvsp[(1) - (3)].node);
11038 #line 4779 "parse.y"
11042 yyerror(
"rest argument must be local variable");
11046 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11056 #line 4792 "parse.y"
11070 #line 4807 "parse.y"
11074 yyerror(
"block argument must be local variable");
11076 yyerror(
"duplicated block argument name");
11080 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11090 #line 4824 "parse.y"
11092 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11099 #line 4828 "parse.y"
11112 #line 4838 "parse.y"
11116 (yyval.
node) = (yyvsp[(1) - (1)].node);
11127 #line 4847 "parse.y"
11134 #line 4848 "parse.y"
11137 if ((yyvsp[(3) - (4)].node) == 0) {
11138 yyerror(
"can't define singleton method for ().");
11141 switch (
nd_type((yyvsp[(3) - (4)].node))) {
11150 yyerror(
"can't define singleton method for literals");
11156 (yyval.
node) = (yyvsp[(3) - (4)].node);
11166 #line 4878 "parse.y"
11169 (yyval.
node) = (yyvsp[(1) - (2)].node);
11179 #line 4895 "parse.y"
11192 #line 4905 "parse.y"
11205 #line 4913 "parse.y"
11218 #line 4921 "parse.y"
11231 #line 4979 "parse.y"
11238 #line 4984 "parse.y"
11245 #line 4988 "parse.y"
11258 #line 11257 "parse.c"
11286 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
11287 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
11288 yystate = yytable[yystate];
11307 #if ! YYERROR_VERBOSE
11310 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
11313 char const *yymsgp =
YY_(
"syntax error");
11314 int yysyntax_error_status;
11316 if (yysyntax_error_status == 0)
11318 else if (yysyntax_error_status == 1)
11320 if (yymsg != yymsgbuf)
11326 yymsg_alloc =
sizeof yymsgbuf;
11327 yysyntax_error_status = 2;
11336 if (yysyntax_error_status == 2)
11337 goto yyexhaustedlab;
11339 # undef YYSYNTAX_ERROR
11345 if (yyerrstatus == 3)
11350 if (yychar <=
YYEOF)
11353 if (yychar ==
YYEOF)
11359 yytoken, &yylval, parser);
11397 yyn = yypact[yystate];
11403 yyn = yytable[yyn];
11415 yystos[yystate], yyvsp, parser);
11445 #if !defined(yyoverflow) || YYERROR_VERBOSE
11461 yydestruct (
"Cleanup: discarding lookahead",
11462 yytoken, &yylval, parser);
11468 while (yyssp != yyss)
11471 yystos[*yyssp], yyvsp, parser);
11478 #if YYERROR_VERBOSE
11479 if (yymsg != yymsgbuf)
11483 return YYID (yyresult);
11489 #line 4996 "parse.y"
11494 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
11503 # define nextc() parser_nextc(parser)
11504 # define pushback(c) parser_pushback(parser, (c))
11505 # define newtok() parser_newtok(parser)
11506 # define tokspace(n) parser_tokspace(parser, (n))
11507 # define tokadd(c) parser_tokadd(parser, (c))
11508 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
11509 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
11510 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
11511 # define regx_options() parser_regx_options(parser)
11512 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
11513 # define parse_string(n) parser_parse_string(parser,(n))
11514 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
11515 # define here_document(n) parser_here_document(parser,(n))
11516 # define heredoc_identifier() parser_heredoc_identifier(parser)
11517 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
11518 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
11521 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
11522 # define set_yylval_num(x) (yylval.num = (x))
11523 # define set_yylval_id(x) (yylval.id = (x))
11524 # define set_yylval_name(x) (yylval.id = (x))
11525 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
11526 # define set_yylval_node(x) (yylval.node = (x))
11527 # define yylval_id() (yylval.id)
11529 static inline VALUE
11530 ripper_yylval_id(
ID x)
11534 # define set_yylval_str(x) (void)(x)
11535 # define set_yylval_num(x) (void)(x)
11536 # define set_yylval_id(x) (void)(x)
11537 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
11538 # define set_yylval_literal(x) (void)(x)
11539 # define set_yylval_node(x) (void)(x)
11540 # define yylval_id() yylval.id
11544 #define ripper_flush(p) (void)(p)
11546 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
11548 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
11555 return lex_p > parser->tokp;
11568 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11570 if (!ripper_has_scan_event(parser))
return;
11571 yylval_rval = ripper_scan_event_val(parser, t);
11575 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11577 if (!ripper_has_scan_event(parser))
return;
11578 (void)ripper_scan_event_val(parser, t);
11582 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11585 const char *saved_tokp = parser->tokp;
11588 parser->tokp =
lex_pbeg + parser->delayed_col;
11590 parser->delayed =
Qnil;
11592 parser->tokp = saved_tokp;
11603 #undef SIGN_EXTEND_CHAR
11605 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
11608 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
11611 #define parser_encoding_name() (current_enc->name)
11612 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
11613 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
11614 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
11615 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
11617 #define parser_isascii() ISASCII(*(lex_p-1))
11625 for (p =
lex_pbeg; p < pend; p++) {
11627 column = (((column - 1) / 8) + 1) * 8;
11638 for (p =
lex_pbeg; p < pend; p++) {
11639 if (*p !=
' ' && *p !=
'\t') {
11646 #undef token_info_push
11663 #undef token_info_pop
11670 if (!ptinfo)
return;
11676 if (linenum == ptinfo->
linenum) {
11684 "mismatched indentations at '%s' with '%s' at %d",
11697 const int max_line_margin = 30;
11698 const char *
p, *pe;
11706 if (*p ==
'\n')
break;
11713 if (*pe ==
'\n')
break;
11720 const char *pre =
"", *post =
"";
11722 if (len > max_line_margin * 2 + 10) {
11723 if (
lex_p - p > max_line_margin) {
11727 if (pe -
lex_p > max_line_margin) {
11734 MEMCPY(buf, p,
char, len);
11738 i = (int)(
lex_p - p);
11739 p2 =
buf; pe = buf + len;
11742 if (*p2 !=
'\t') *p2 =
' ';
11750 dispatch1(parse_error,
STR_NEW2(msg));
11762 CONST_ID(script_lines,
"SCRIPT_LINES__");
11779 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11783 RBASIC(lines)->klass = 0;
11785 RARRAY(lines)->as.heap.len = n;
11845 if (parser->
nerr) {
11855 return (
VALUE)tree;
11880 char *beg, *end, *pend;
11890 while (end < pend) {
11891 if (*end++ ==
'\n')
break;
11901 if (
NIL_P(line))
return line;
12000 #define STR_FUNC_ESCAPE 0x01
12001 #define STR_FUNC_EXPAND 0x02
12002 #define STR_FUNC_REGEXP 0x04
12003 #define STR_FUNC_QWORDS 0x08
12004 #define STR_FUNC_SYMBOL 0x10
12005 #define STR_FUNC_INDENT 0x20
12035 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
12036 #define lex_eol_p() (lex_p >= lex_pend)
12037 #define peek(c) peek_n((c), 0)
12038 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
12061 if (
NIL_P(parser->delayed)) {
12065 parser->tokp,
lex_pend - parser->tokp);
12067 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
12071 parser->tokp,
lex_pend - parser->tokp);
12087 c = (
unsigned char)*
lex_p++;
12088 if (c ==
'\r' &&
peek(
'\n')) {
12099 if (c == -1)
return;
12106 #define was_bol() (lex_p == lex_pbeg + 1)
12108 #define tokfix() (tokenbuf[tokidx]='\0')
12109 #define tok() tokenbuf
12110 #define toklen() tokidx
12111 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
12158 yyerror(
"invalid hex escape");
12165 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
12170 int string_literal,
int symbol_literal,
int regexp_literal)
12190 yyerror(
"invalid Unicode escape");
12193 if (codepoint > 0x10ffff) {
12194 yyerror(
"invalid Unicode codepoint (too large)");
12198 if (regexp_literal) {
12201 else if (codepoint >= 0x80) {
12203 if (string_literal)
tokaddmbc(codepoint, *encp);
12205 else if (string_literal) {
12208 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
12211 yyerror(
"unterminated Unicode escape");
12215 if (regexp_literal) {
tokadd(
'}'); }
12221 yyerror(
"invalid Unicode escape");
12225 if (regexp_literal) {
12228 else if (codepoint >= 0x80) {
12230 if (string_literal)
tokaddmbc(codepoint, *encp);
12232 else if (string_literal) {
12240 #define ESCAPE_CONTROL 1
12241 #define ESCAPE_META 2
12250 switch (c =
nextc()) {
12275 case '0':
case '1':
case '2':
case '3':
12276 case '4':
case '5':
case '6':
case '7':
12284 if (numlen == 0)
return 0;
12295 if ((c =
nextc()) !=
'-') {
12299 if ((c =
nextc()) ==
'\\') {
12300 if (
peek(
'u'))
goto eof;
12301 return read_escape(flags|ESCAPE_META, encp) | 0x80;
12303 else if (c == -1 || !
ISASCII(c))
goto eof;
12305 return ((c & 0xff) | 0x80);
12309 if ((c =
nextc()) !=
'-') {
12315 if ((c =
nextc())==
'\\') {
12316 if (
peek(
'u'))
goto eof;
12321 else if (c == -1 || !
ISASCII(c))
goto eof;
12326 yyerror(
"Invalid escape character syntax");
12349 switch (c =
nextc()) {
12353 case '0':
case '1':
case '2':
case '3':
12354 case '4':
case '5':
case '6':
case '7':
12357 if (numlen == 0)
goto eof;
12366 if (numlen == 0)
return -1;
12373 if ((c =
nextc()) !=
'-') {
12383 if ((c =
nextc()) !=
'-') {
12391 if (flags & ESCAPE_CONTROL)
goto eof;
12395 if ((c =
nextc()) ==
'\\') {
12398 else if (c == -1)
goto eof;
12404 yyerror(
"Invalid escape character syntax");
12471 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
12477 case '$':
case '*':
case '+':
case '.':
12478 case '?':
case '^':
case '|':
12479 case ')':
case ']':
case '}':
case '>':
12488 int func,
int term,
int paren,
long *nest,
12492 int has_nonascii = 0;
12495 static const char mixed_msg[] =
"%s mixed within %s source";
12497 #define mixed_error(enc1, enc2) if (!errbuf) { \
12498 size_t len = sizeof(mixed_msg) - 4; \
12499 len += strlen(rb_enc_name(enc1)); \
12500 len += strlen(rb_enc_name(enc2)); \
12501 errbuf = ALLOCA_N(char, len); \
12502 snprintf(errbuf, len, mixed_msg, \
12503 rb_enc_name(enc1), \
12504 rb_enc_name(enc2)); \
12507 #define mixed_escape(beg, enc1, enc2) do { \
12508 const char *pos = lex_p; \
12510 mixed_error((enc1), (enc2)); \
12514 while ((c =
nextc()) != -1) {
12515 if (paren && c == paren) {
12518 else if (c == term) {
12519 if (!nest || !*nest) {
12527 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12532 else if (c ==
'\\') {
12533 const char *beg =
lex_p - 1;
12538 if (func & STR_FUNC_EXPAND)
continue;
12547 if ((func & STR_FUNC_EXPAND) == 0) {
12554 if (has_nonascii && enc != *encp) {
12560 if (c == -1)
return -1;
12562 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12565 if (func & STR_FUNC_REGEXP) {
12573 if (has_nonascii && enc != *encp) {
12578 else if (func & STR_FUNC_EXPAND) {
12580 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12583 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12586 else if (c != term && !(paren && c == paren)) {
12596 if (enc != *encp) {
12609 if (enc != *encp) {
12620 #define NEW_STRTERM(func, term, paren) \
12621 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
12627 if (!
NIL_P(parser->delayed)) {
12628 ptrdiff_t len =
lex_p - parser->tokp;
12633 parser->tokp =
lex_p;
12637 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
12639 #define flush_string_content(enc) ((void)(enc))
12646 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
12647 #define SPECIAL_PUNCT(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) | \
12652 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
12660 #undef SPECIAL_PUNCT
12666 if (c <= 0x20 || 0x7e < c)
return 0;
12667 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
12674 const char *p =
lex_p;
12680 if ((c = *p) ==
'-') {
12689 if ((c = *p) ==
'@') {
12709 int func = (int)quote->nd_func;
12721 if (c == term && !quote->nd_nest) {
12722 if (func & STR_FUNC_QWORDS) {
12723 quote->nd_func = -1;
12785 while ((c =
nextc()) != -1 && c != term) {
12832 line = here->nd_orig;
12846 const char *eos,
long len,
int indent)
12852 while (*p &&
ISSPACE(*p)) p++;
12855 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
12856 return strncmp(eos, p, len) == 0;
12863 if (!
NIL_P(parser->delayed))
12866 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12869 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
12871 #define dispatch_heredoc_end() ((void)0)
12877 int c,
func, indent = 0;
12878 const char *eos, *
p, *pend;
12887 if ((c =
nextc()) == -1) {
12891 if (
NIL_P(parser->delayed)) {
12896 ((len =
lex_p - parser->tokp) > 0 &&
12897 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
12920 switch (pend[-1]) {
12922 if (--pend == p || pend[-1] !=
'\r') {
12936 if (
nextc() == -1) {
12954 if (parser->
eofp)
goto error;
12964 if ((c =
nextc()) == -1)
goto error;
12981 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
12986 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
12993 yyerror(
"formal argument must be local variable");
13011 if (len > 5 && name[nlen = len - 5] ==
'-') {
13012 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
13015 if (len > 4 && name[nlen = len - 4] ==
'-') {
13018 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
13019 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
13034 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
13051 for (i = 0; i < n; ++
i) {
13089 case 't':
case 'T':
13095 case 'f':
case 'F':
13118 static const char *
13126 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13127 return str + i + 1;
13132 if (i + 1 >= len)
return 0;
13133 if (str[i+1] !=
'-') {
13136 else if (str[i-1] !=
'-') {
13140 return str + i + 2;
13155 const char *beg, *end, *vbeg, *vend;
13156 #define str_copy(_s, _p, _n) ((_s) \
13157 ? (void)(rb_str_resize((_s), (_n)), \
13158 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
13159 : (void)((_s) = STR_NEW((_p), (_n))))
13161 if (len <= 7)
return FALSE;
13165 len = end - beg - 3;
13176 for (; len > 0 && *str; str++, --len) {
13178 case '\'':
case '"':
case ':':
case ';':
13183 for (beg = str; len > 0; str++, --len) {
13185 case '\'':
case '"':
case ':':
case ';':
13193 for (end = str; len > 0 &&
ISSPACE(*str); str++, --len);
13195 if (*str !=
':')
continue;
13197 do str++;
while (--len > 0 &&
ISSPACE(*str));
13200 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13201 if (*str ==
'\\') {
13213 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --len, str++);
13216 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13221 for (i = 0; i < n; ++
i) {
13222 if (s[i] ==
'-') s[
i] =
'_';
13229 n = (*p->
length)(parser, vbeg, n);
13235 }
while (++p < magic_comments +
numberof(magic_comments));
13249 const char *beg = str;
13253 if (send - str <= 6)
return;
13255 case 'C':
case 'c': str += 6;
continue;
13256 case 'O':
case 'o': str += 5;
continue;
13257 case 'D':
case 'd': str += 4;
continue;
13258 case 'I':
case 'i': str += 3;
continue;
13259 case 'N':
case 'n': str += 2;
continue;
13260 case 'G':
case 'g': str += 1;
continue;
13261 case '=':
case ':':
13274 if (++str >= send)
return;
13277 if (*str !=
'=' && *str !=
':')
return;
13282 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13298 (
unsigned char)
lex_p[0] == 0xbb &&
13299 (
unsigned char)
lex_p[1] == 0xbf) {
13313 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
13314 #define IS_END() IS_lex_state(EXPR_END_ANY)
13315 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY)
13316 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
13317 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
13318 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
13319 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
13322 #define ambiguous_operator(op, syn) ( \
13323 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
13324 rb_warning0("even though it seems like "syn""))
13326 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
13328 #define warn_balanced(op, syn) ((void) \
13329 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
13330 space_seen && !ISSPACE(c) && \
13331 (ambiguous_operator(op, syn), 0)))
13337 int space_seen = 0;
13343 int fallthru =
FALSE;
13369 switch (c =
nextc()) {
13377 case ' ':
case '\t':
case '\f':
case '\r':
13381 while ((c =
nextc())) {
13383 case ' ':
case '\t':
case '\f':
case '\r':
13392 ripper_dispatch_scan_event(parser,
tSP);
13405 ripper_dispatch_scan_event(parser,
tCOMMENT);
13410 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT)) {
13419 while ((c =
nextc())) {
13421 case ' ':
case '\t':
case '\f':
case '\r':
13426 if ((c =
nextc()) !=
'.') {
13439 parser->tokp =
lex_p;
13442 goto normal_newline;
13451 if ((c =
nextc()) ==
'*') {
13452 if ((c =
nextc()) ==
'=') {
13459 rb_warning0(
"`**' interpreted as argument prefix");
13478 rb_warning0(
"`*' interpreted as argument prefix");
13517 int first_p =
TRUE;
13526 ripper_dispatch_scan_event(parser,
tEMBDOC);
13535 if (c !=
'=')
continue;
13536 if (strncmp(
lex_p,
"end", 3) == 0 &&
13550 if ((c =
nextc()) ==
'=') {
13551 if ((c =
nextc()) ==
'=') {
13560 else if (c ==
'>') {
13572 (!
IS_ARG() || space_seen)) {
13574 if (token)
return token;
13585 if ((c =
nextc()) ==
'>') {
13592 if ((c =
nextc()) ==
'=') {
13606 if ((c =
nextc()) ==
'=') {
13610 if ((c =
nextc()) ==
'=') {
13678 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13695 else if (c ==
'\\') {
13724 if ((c =
nextc()) ==
'&') {
13726 if ((c =
nextc()) ==
'=') {
13734 else if (c ==
'=') {
13741 rb_warning0(
"`&' interpreted as argument prefix");
13755 if ((c =
nextc()) ==
'|') {
13757 if ((c =
nextc()) ==
'=') {
13837 if ((c =
nextc()) ==
'.') {
13838 if ((c =
nextc()) ==
'.') {
13846 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13852 case '0':
case '1':
case '2':
case '3':
case '4':
13853 case '5':
case '6':
case '7':
case '8':
case '9':
13855 int is_float, seen_point, seen_e, nondigit;
13857 is_float = seen_point = seen_e = nondigit = 0;
13860 if (c ==
'-' || c ==
'+') {
13865 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
13868 if (c ==
'x' || c ==
'X') {
13874 if (nondigit)
break;
13881 }
while ((c =
nextc()) != -1);
13885 if (
toklen() == start) {
13888 else if (nondigit)
goto trailing_uc;
13892 if (c ==
'b' || c ==
'B') {
13895 if (c ==
'0' || c ==
'1') {
13898 if (nondigit)
break;
13902 if (c !=
'0' && c !=
'1')
break;
13905 }
while ((c =
nextc()) != -1);
13909 if (
toklen() == start) {
13912 else if (nondigit)
goto trailing_uc;
13916 if (c ==
'd' || c ==
'D') {
13922 if (nondigit)
break;
13929 }
while ((c =
nextc()) != -1);
13933 if (
toklen() == start) {
13936 else if (nondigit)
goto trailing_uc;
13944 if (c ==
'o' || c ==
'O') {
13947 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13951 if (c >=
'0' && c <=
'7') {
13956 if (nondigit)
break;
13960 if (c < '0' || c >
'9')
break;
13961 if (c >
'7')
goto invalid_octal;
13964 }
while ((c =
nextc()) != -1);
13968 if (nondigit)
goto trailing_uc;
13977 if (c >
'7' && c <=
'9') {
13979 yyerror(
"Invalid octal digit");
13981 else if (c ==
'.' || c ==
'e' || c ==
'E') {
13993 case '0':
case '1':
case '2':
case '3':
case '4':
13994 case '5':
case '6':
case '7':
case '8':
case '9':
14000 if (nondigit)
goto trailing_uc;
14001 if (seen_point || seen_e) {
14006 if (c0 == -1 || !
ISDIGIT(c0)) {
14034 if (c !=
'-' && c !=
'+')
continue;
14040 if (nondigit)
goto decode_num;
14055 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14061 if (
errno == ERANGE) {
14122 if ((c =
nextc()) ==
'=') {
14138 if ((c =
nextc()) ==
'=') {
14158 if ((c =
nextc()) !=
'@') {
14185 if ((c =
nextc()) ==
']') {
14186 if ((c =
nextc()) ==
'=') {
14198 else if (
IS_ARG() && space_seen) {
14233 ripper_dispatch_scan_event(parser,
tSP);
14247 if (c == -1 || !
ISALNUM(c)) {
14254 yyerror(
"unknown type of %string");
14258 if (c == -1 || term == -1) {
14263 if (term ==
'(') term =
')';
14264 else if (term ==
'[') term =
']';
14265 else if (term ==
'{') term =
'}';
14266 else if (term ==
'<') term =
'>';
14316 yyerror(
"unknown type of %string");
14320 if ((c =
nextc()) ==
'=') {
14397 case '1':
case '2':
case '3':
14398 case '4':
case '5':
case '6':
14399 case '7':
case '8':
case '9':
14404 }
while (c != -1 &&
ISDIGIT(c));
14450 ripper_dispatch_scan_event(parser,
k__END__);
14473 switch (
tok()[0]) {
14474 case '@':
case '$':
14478 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14491 switch (
tok()[0]) {
14498 if (
tok()[1] ==
'@')
14544 if (state == EXPR_FNAME) {
14558 if (
CMDARG_P() && state != EXPR_CMDARG)
14560 if (state & (EXPR_BEG | EXPR_ENDARG))
14564 if (state & (EXPR_BEG | EXPR_VALUE))
14567 if (kw->
id[0] != kw->
id[1])
14618 if (!
NIL_P(parser->delayed)) {
14619 ripper_dispatch_delayed_token(parser, t);
14623 ripper_dispatch_scan_event(parser, t);
14665 if (orig == (
NODE*)1)
return;
14674 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
14681 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
14688 if (tail == 0)
return head;
14690 if (h == 0)
return tail;
14729 tail->nd_end =
tail;
14731 end->nd_next =
tail;
14732 h->nd_end = tail->nd_end;
14742 if (list == 0)
return NEW_LIST(item);
14743 if (list->nd_next) {
14744 last = list->nd_next->nd_end;
14750 list->nd_alen += 1;
14752 list->nd_next->nd_end = last->nd_next;
14762 if (head->nd_next) {
14763 last = head->nd_next->nd_end;
14769 head->nd_alen += tail->nd_alen;
14770 last->nd_next =
tail;
14771 if (tail->nd_next) {
14772 head->nd_next->nd_end = tail->nd_next->nd_end;
14775 head->nd_next->nd_end =
tail;
14784 if (
NIL_P(tail))
return 1;
14805 if (!head)
return tail;
14806 if (!tail)
return head;
14816 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14819 lit = headlast->nd_lit;
14822 lit = head->nd_lit;
14842 tail->nd_lit = head->nd_lit;
14846 else if (
NIL_P(tail->nd_lit)) {
14848 head->nd_alen += tail->nd_alen - 1;
14849 head->nd_next->nd_end->nd_next = tail->nd_next;
14850 head->nd_next->nd_end = tail->nd_next->nd_end;
14853 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14855 lit = headlast->nd_lit;
14858 tail->nd_lit =
Qnil;
14863 tail->nd_head =
NEW_STR(tail->nd_lit);
15010 static const char *
15013 static const char names[][12] = {
15014 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15015 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15020 return names[
ffs(state)];
15035 # define assignable_result(x) get_value(lhs)
15036 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
15038 # define assignable_result(x) (x)
15043 yyerror(
"Can't change the value of self");
15046 yyerror(
"Can't assign to nil");
15049 yyerror(
"Can't assign to true");
15052 yyerror(
"Can't assign to false");
15055 yyerror(
"Can't assign to __FILE__");
15058 yyerror(
"Can't assign to __LINE__");
15061 yyerror(
"Can't assign to __ENCODING__");
15095 yyerror(
"dynamic constant assignment");
15104 #undef assignable_result
15105 #undef parser_yyerror
15112 if (name == idUScore)
return 1;
15119 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
15127 yyerror(
"duplicated argument name");
15139 yyerror(
"duplicated argument name");
15197 int scope = (int)(
id & ID_SCOPE_MASK);
15206 id_type_names[scope],
ID2SYM(
id));
15210 id &= ~ID_SCOPE_MASK;
15239 if (!node2)
return node1;
15242 if (node1->nd_head)
15243 node1->nd_head =
arg_concat(node1->nd_head, node2);
15255 node1->nd_body =
list_concat(node1->nd_body, node2);
15264 if (!node1)
return NEW_LIST(node2);
15269 node1->nd_head =
arg_append(node1->nd_head, node2);
15290 if (!lhs)
return 0;
15302 lhs->nd_value = rhs;
15307 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
15338 if (!cond)
yyerror(
"void value expression");
15343 while (node->nd_next) {
15344 node = node->nd_next;
15346 node = node->nd_head;
15350 node = node->nd_body;
15354 if (!node->nd_body) {
15355 node = node->nd_else;
15358 else if (!node->nd_else) {
15359 node = node->nd_body;
15363 node = node->nd_else;
15369 node = node->nd_2nd;
15383 const char *useless = 0;
15390 switch (node->nd_mid) {
15421 useless =
"a variable";
15424 useless =
"a constant";
15431 useless =
"a literal";
15456 useless =
"defined?";
15464 rb_warnS(
"possibly useless use of %s in void context", useless);
15477 if (!node->nd_next)
return;
15479 node = node->nd_next;
15486 NODE **n = &node, *n1 = node;
15488 *n = n1 = n1->nd_body;
15496 NODE *node = *body;
15502 #define subnodes(n1, n2) \
15503 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
15504 (!node->n2) ? (body = &node->n1, 1) : \
15505 (reduce_nodes(&node->n1), body = &node->n2, 1))
15515 *body = node = node->nd_stts;
15519 *body = node = node->nd_body;
15523 body = &node->nd_end->nd_head;
15529 body = &node->nd_body;
15538 if (node->nd_else) {
15539 body = &node->nd_resq;
15557 if (!node)
return 1;
15560 if (!(node = node->nd_head))
break;
15564 }
while ((node = node->nd_next) != 0);
15583 yyerror(
"multiple assignment in conditional");
15597 if (!node->nd_value)
return 1;
15600 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15622 for (node = *rootnode; node; node = next) {
15626 next = node->nd_next;
15627 head = node->nd_head;
15630 switch (type =
nd_type(head)) {
15633 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
15638 head->nd_lit =
val;
15653 if (node == 0)
return 0;
15661 return cond0(parser, node);
15667 if (!node)
return 1;
15688 if (node == 0)
return 0;
15695 rb_warn0(
"string literal in condition");
15705 node->nd_1st =
cond0(parser, node->nd_1st);
15706 node->nd_2nd =
cond0(parser, node->nd_2nd);
15711 node->nd_beg =
range_op(parser, node->nd_beg);
15712 node->nd_end =
range_op(parser, node->nd_end);
15745 if (node == 0)
return 0;
15746 return cond0(parser, node);
15754 NODE *node = left, *second;
15755 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
15758 node->nd_2nd =
NEW_NODE(type, second, right, 0);
15761 return NEW_NODE(type, left, right, 0);
15778 if (node->nd_next == 0) {
15779 node = node->nd_head;
15800 switch (
TYPE(node->nd_lit)) {
15829 node2->nd_head = node1;
15843 args->
pre_init = m ? m->nd_next : 0;
15897 lit = node->nd_lit;
15916 ID vid = lhs->nd_vid;
15918 lhs->nd_value = rhs;
15921 asgn->nd_aid = vid;
15924 else if (op ==
tANDOP) {
15925 lhs->nd_value = rhs;
15947 else if (op ==
tANDOP) {
15963 else if (op ==
tANDOP) {
15979 return dispatch3(opassign, lhs, op, rhs);
15985 VALUE recv = dispatch3(field, lhs, type, attr);
15986 return dispatch3(opassign, recv, op, rhs);
15996 if (!local->
used)
return;
16000 if (cnt != local->
vars->
pos) {
16001 rb_bug(
"local->used->pos != local->vars->pos");
16003 for (i = 0; i <
cnt; ++
i) {
16004 if (!v[i] || (u[i] &
LVAR_USED))
continue;
16019 local->
used = !(inherit_dvars &&
16050 for (i = 0; i <
cnt; i++) {
16051 buf[
i] = src->
tbl[
i];
16064 if (cnt <= 0)
return 0;
16095 vars =
lvtbl->vars;
16096 args =
lvtbl->args;
16097 used =
lvtbl->used;
16102 if (used) used = used->
prev;
16118 static const struct vtable *
16126 return lvtbl->args;
16134 if ((tmp =
lvtbl->used) != 0) {
16150 while (
lvtbl->args != lvargs) {
16152 if (!
lvtbl->args) {
16173 args =
lvtbl->args;
16174 vars =
lvtbl->vars;
16175 used =
lvtbl->used;
16188 if (used) used = used->
prev;
16241 "regexp encoding option '%c' differs from source encoding '%s'",
16270 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
16275 long len = name_end -
name;
16276 const char *s = (
const char *)name;
16293 rb_warningS(
"named capture conflicts a local variable - %s",
16373 NODE *scope = node;
16376 if (!node)
return node;
16380 node = node->nd_body;
16384 node = node->nd_body;
16391 prelude->nd_body = node;
16392 scope->nd_body = prelude;
16395 scope->nd_body = node;
16405 NODE *scope = node;
16408 if (!node)
return node;
16412 node = node->nd_body;
16416 node = node->nd_body;
16432 prelude->nd_body = node;
16433 scope->nd_body = prelude;
16436 scope->nd_body = node;
16442 static const struct {
16467 #define op_tbl_count numberof(op_tbl)
16469 #ifndef ENABLE_SELECTOR_NAMESPACE
16470 #define ENABLE_SELECTOR_NAMESPACE 0
16477 #if ENABLE_SELECTOR_NAMESPACE
16489 #if ENABLE_SELECTOR_NAMESPACE
16496 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
16498 if (key1->id == key2->id && key1->klass == key2->klass) {
16505 ivar2_hash(
struct ivar2_key *
key)
16507 return (key->id << 8) ^ (key->klass >> 2);
16521 #if ENABLE_SELECTOR_NAMESPACE
16529 (void)lex_state_name(-1);
16558 if (m >= e)
return 0;
16562 else if (*m ==
'-') {
16576 return m == e ? mb + 1 : 0;
16591 #define IDSET_ATTRSET_FOR_SYNTAX ((1U<<ID_LOCAL)|(1U<<ID_CONST))
16592 #define IDSET_ATTRSET_FOR_INTERN (~(~0U<<(1<<ID_SCOPE_SHIFT)) & ~(1U<<ID_ATTRSET))
16597 const char *m =
name;
16598 const char *e = m + len;
16601 if (!m || len <= 0)
return -1;
16621 case '<': ++m;
break;
16622 case '=':
if (*++m ==
'>') ++m;
break;
16629 case '>':
case '=': ++m;
break;
16635 case '~': ++m;
break;
16636 case '=':
if (*++m ==
'=') ++m;
break;
16637 default:
return -1;
16642 if (*++m ==
'*') ++m;
16645 case '+':
case '-':
16646 if (*++m ==
'@') ++m;
16649 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16654 if (*++m !=
']')
return -1;
16655 if (*++m ==
'=') ++m;
16659 if (len == 1)
return ID_JUNK;
16661 case '=':
case '~': ++m;
break;
16662 default:
return -1;
16674 case '!':
case '?':
16678 if (m + 1 < e || *m !=
'=')
break;
16681 if (!(allowed_atttset & (1
U << type)))
return -1;
16688 return m == e ? type : -1;
16752 fake_str.
as.
heap.ptr = (
char *)name;
16754 str = (
VALUE)&fake_str;
16768 const char *
name, *m, *e;
16790 if (len < 2)
goto junk;
16799 if (len < 3)
goto junk;
16804 if (len < 2)
goto junk;
16820 if (*
op_tbl[i].name == *m &&
16821 strcmp(
op_tbl[i].name, m) == 0) {
16829 if (name[last] ==
'=') {
16831 if (last > 1 && name[last-1] ==
'=')
16841 else if (
id == 0) {
16913 name[0] = (char)
id;
16936 if (
RBASIC(str)->klass == 0)
16942 ID id_stem = (
id & ~ID_SCOPE_MASK);
16959 if (
RBASIC(str)->klass == 0)
16972 if (!str)
return 0;
17066 VALUE name = *namep;
17117 fake_str.
as.
heap.ptr = (
char *)ptr;
17127 fake_str.
as.
heap.len = len - 1;
17225 parser->parser_ruby_sourcefile_string =
Qnil;
17226 parser->delayed =
Qnil;
17228 parser->result =
Qnil;
17229 parser->parsing_thread =
Qnil;
17230 parser->toplevel_p =
TRUE;
17239 #define parser_mark ripper_parser_mark
17240 #define parser_free ripper_parser_free
17258 rb_gc_mark(p->parser_ruby_sourcefile_string);
17280 prev = local->
prev;
17294 size_t size =
sizeof(*p);
17296 if (!ptr)
return 0;
17299 size +=
sizeof(*local);
17324 #undef rb_reserved_word
17408 yydebug =
RTEST(flag);
17413 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
17414 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
17415 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
17416 (n)->u3.cnt = (c), (p))
17433 void *ptr =
xcalloc(nelem, size);
17444 if (ptr && (n = parser->
heap) !=
NULL) {
17446 if (n->
u1.
node == ptr) {
17463 while ((n = *prev) !=
NULL) {
17464 if (n->u1.node == ptr) {
17477 #ifdef RIPPER_DEBUG
17478 extern int rb_is_pointer_to_heap(
VALUE);
17484 if (x ==
Qfalse)
return x;
17485 if (x ==
Qtrue)
return x;
17486 if (x ==
Qnil)
return x;
17491 if (!rb_is_pointer_to_heap(x))
17504 return ((
NODE *)x)->nd_rval;
17513 #define validate(x) ((x) = get_value(x))
17525 return rb_funcall(parser->value, mid, 1, a);
17533 return rb_funcall(parser->value, mid, 2, a, b);
17542 return rb_funcall(parser->value, mid, 3, a, b, c);
17552 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17563 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17576 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
17579 static const struct kw_assoc {
17582 } keyword_to_name[] = {
17635 keyword_id_to_str(
ID id)
17637 const struct kw_assoc *a;
17639 for (a = keyword_to_name; a->id; a++) {
17646 #undef ripper_id2sym
17648 ripper_id2sym(
ID id)
17658 if ((name = keyword_id_to_str(
id))) {
17671 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
17689 ripper_get_value(
VALUE v)
17696 return nd->nd_rval;
17700 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17705 va_start(args, fmt);
17712 ripper_warn0(
struct parser_params *parser,
const char *fmt)
17718 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
17725 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
17732 ripper_warning0(
struct parser_params *parser,
const char *fmt)
17738 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
17751 ripper_s_allocate(
VALUE klass)
17763 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
17779 VALUE src, fname, lineno;
17782 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
17792 if (
NIL_P(fname)) {
17800 parser->parser_ruby_sourcefile_string = fname;
17807 struct ripper_args {
17814 ripper_parse0(
VALUE parser_v)
17820 ripper_yyparse((
void*)parser);
17821 return parser->result;
17825 ripper_ensure(
VALUE parser_v)
17830 parser->parsing_thread =
Qnil;
17841 ripper_parse(
VALUE self)
17846 if (!ripper_initialized_p(parser)) {
17849 if (!
NIL_P(parser->parsing_thread)) {
17856 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17858 return parser->result;
17869 ripper_column(
VALUE self)
17875 if (!ripper_initialized_p(parser)) {
17878 if (
NIL_P(parser->parsing_thread))
return Qnil;
17890 ripper_filename(
VALUE self)
17895 if (!ripper_initialized_p(parser)) {
17898 return parser->parser_ruby_sourcefile_string;
17909 ripper_lineno(
VALUE self)
17914 if (!ripper_initialized_p(parser)) {
17917 if (
NIL_P(parser->parsing_thread))
return Qnil;
17921 #ifdef RIPPER_DEBUG
17957 InitVM_ripper(
void)
17973 #ifdef RIPPER_DEBUG
#define rb_enc_islower(c, enc)
char * parser_ruby_sourcefile
#define RB_TYPE_P(obj, type)
#define NEW_ARGSCAT(a, b)
static const char id_type_names[][9]
VALUE rb_const_get_at(VALUE, ID)
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 YY_REDUCE_PRINT(Rule)
#define shadowing_lvar(name)
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)
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)
st_table * st_init_table_with_size(const struct st_hash_type *, st_index_t)
#define NEW_IASGN(v, val)
VALUE rb_get_coverages(void)
void rb_bug(const char *fmt,...)
#define NEW_DASGN_CURR(v, val)
#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)
void rb_mark_tbl(struct st_table *)
int rb_is_class_name(VALUE name)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
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 *)
const char * rb_obj_classname(VALUE)
#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)
#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.
#define NEW_CALL(r, m, a)
int st_lookup(st_table *, st_data_t, st_data_t *)
void st_add_direct(st_table *, st_data_t, st_data_t)
static NODE * evstr2dstr_gen(struct parser_params *, NODE *)
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
VALUE rb_str_buf_append(VALUE, VALUE)
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)
#define NEW_OP_CDECL(v, op, val)
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
ID rb_intern_str(VALUE str)
#define rb_usascii_str_new2
#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)
void rb_define_global_const(const char *, VALUE)
#define set_yylval_str(x)
void rb_gc_force_recycle(VALUE)
static const yytype_uint16 yyr1[]
#define set_yylval_literal(x)
#define yytable_value_is_error(yytable_value)
#define IDSET_ATTRSET_FOR_SYNTAX
#define ADD2HEAP(n, c, p)
VALUE rb_parser_encoding(VALUE vparser)
#define literal_concat(h, t)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
stack_type parser_cmdarg_stack
static int lvar_defined_gen(struct parser_params *, ID)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
int rb_is_method_name(VALUE name)
static ID * local_tbl_gen(struct parser_params *)
#define rb_enc_isalnum(c, enc)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
#define rb_enc_prev_char(s, p, e, enc)
VALUE rb_ary_push(VALUE ary, VALUE item)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
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 *)
#define NEW_MATCH2(n1, n2)
VALUE op_sym[tLAST_OP_ID]
int rb_is_junk_name(VALUE name)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
static int parser_regx_options(struct parser_params *)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
static NODE * newline_node(NODE *)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
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 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)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
#define attrset(node, id)
primary_value operation2 command_args prec tLOWEST
#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)
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 *)
static NODE * gettable_gen(struct parser_params *, ID)
static struct symbols global_symbols
static NODE * cond0(struct parser_params *, NODE *)
void rb_gc_mark_parser(void)
#define NEW_CVASGN(v, val)
#define reg_compile(str, options)
static int local_var_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
#define NEW_OP_ASGN_OR(i, val)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
#define ENCODING_IS_ASCII8BIT(obj)
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
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 rb_enc_isdigit(c, enc)
#define tokadd_string(f, t, p, n, e)
#define ENC_CODERANGE_BROKEN
#define is_identchar(p, e, enc)
VALUE rb_str_append(VALUE, VALUE)
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
#define NEW_CLASS(n, b, s)
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 NEW_PRELUDE(p, b)
#define ENCODING_GET(obj)
static const yytype_int16 yytable[]
NODE * parser_deferred_nodes
void rb_name_error(ID id, const char *fmt,...)
static int dyna_in_block_gen(struct parser_params *)
static const rb_data_type_t parser_data_type
#define nd_set_type(n, t)
#define logop(type, node1, node2)
static rb_encoding * must_be_ascii_compatible(VALUE s)
#define MEMZERO(p, type, n)
static void dyna_pop_1(struct parser_params *parser)
void rb_exc_raise(VALUE mesg)
#define NEW_UNLESS(c, t, e)
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
VALUE rb_usascii_str_new(const char *, long)
#define parser_warn(node, mesg)
#define RUBY_DTRACE_PARSE_END(arg0, arg1)
struct RString::@63::@64 heap
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
int rb_is_instance_name(VALUE name)
#define NEW_OP_ASGN_AND(i, val)
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)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
#define TypedData_Get_Struct(obj, type, data_type, sval)
void rb_compile_error_append(const char *fmt,...)
VALUE rb_parser_get_yydebug(VALUE self)
#define StringValuePtr(v)
#define match_op(node1, node2)
static enum node_type nodetype(NODE *node)
#define NEW_STRTERM(func, term, paren)
const rb_data_type_t * parent
#define NEW_RESCUE(b, res, e)
static const struct magic_comment magic_comments[]
#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)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ENSURE(b, en)
RUBY_EXTERN VALUE rb_mKernel
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
char * ruby_strdup(const char *)
static int e_option_supplied(struct parser_params *parser)
static struct vtable * vtable_alloc(struct vtable *prev)
#define token_info_push(token)
static int rb_str_symname_type(VALUE name, unsigned int allowed_atttset)
int rb_ascii8bit_encindex(void)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
static const yytype_uint16 yyrline[]
void rb_define_const(VALUE, const char *, VALUE)
#define NEW_WHEN(c, t, e)
top_stmt escape_Qundef($1)
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)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
NODE * rb_compile_string(const char *f, VALUE s, int line)
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)
#define MBCLEN_CHARFOUND_P(ret)
static NODE * splat_array(NODE *)
static void parser_mark(void *ptr)
static void parser_tokadd(struct parser_params *parser, int c)
#define nd_set_line(n, l)
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)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define warn_balanced(op, syn)
#define NEW_ARGS_AUX(r, b)
#define TypedData_Wrap_Struct(klass, data_type, sval)
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
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
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 ALLOCA_N(type, n)
#define IDSET_ATTRSET_FOR_INTERN
#define ENC_CODERANGE_UNKNOWN
#define set_yylval_num(x)
#define parser_encoding_name()
token_info * parser_token_info
#define new_op_assign(lhs, op, rhs)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_str_buf_cat(VALUE, const char *, long)
static const yytype_int16 yycheck[]
static int literal_node(NODE *node)
static int dvar_curr_gen(struct parser_params *, ID)
#define NEW_LASGN(v, val)
#define flush_string_content(enc)
VALUE rb_obj_as_string(VALUE)
#define NEW_OPT_ARG(i, v)
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
int rb_dvar_defined(ID id)
VALUE rb_str_resize(VALUE, long)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
static int parser_yyerror(struct parser_params *, const char *)
#define RUBY_DTRACE_PARSE_END_ENABLED()
static const yytype_int16 yypgoto[]
SSL_METHOD *(* func)(void)
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_thread_current(void)
VALUE rb_range_new(VALUE, VALUE, int)
VALUE rb_sprintf(const char *format,...)
#define rb_enc_mbcput(c, buf, enc)
static VALUE debug_lines(const char *f)
static void yydestruct(char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
#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 NEW_DASGN(v, val)
#define NEW_POSTARG(i, v)
#define CONST_ID(var, str)
#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)
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 void Init_id(void)
static char * parser_newtok(struct parser_params *parser)
static void fixup_nodes(NODE **)
rb_encoding * rb_usascii_encoding(void)
#define list_concat(h, t)
static int options(unsigned char *cp)
#define heredoc_restore(n)
#define NEW_UNTIL(c, b, n)
#define NEW_MATCH3(r, n2)
VALUE rb_str_buf_new(long)
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)
int rb_const_defined_at(VALUE, ID)
#define heredoc_identifier()
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#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)
VALUE rb_attr_get(VALUE, ID)
#define rb_enc_ispunct(c, enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
static VALUE yycompile0(VALUE arg)
#define NEW_RESBODY(a, ex, n)
#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 **)
VALUE rb_reg_check_preprocess(VALUE)
expr ripper_intern("and")
RUBY_EXTERN VALUE rb_cString
#define dvar_defined_get(id)
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
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)
VALUE rb_vsprintf(const char *, va_list)
static const struct @118 op_tbl[]
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
#define MEMCPY(p1, p2, type, n)
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 NEW_GASGN(v, val)
#define NEW_ARGSPUSH(a, b)
static int rb_enc_symname_type(const char *name, long len, rb_encoding *enc, unsigned int allowed_atttset)
#define reg_fragment_check(str, options)
const struct vtable * vars
VALUE rb_str_cat(VALUE, const char *, long)
#define ENC_CODERANGE_7BIT
rb_encoding * rb_enc_get(VALUE obj)
#define NEW_WHILE(c, b, n)
static void reduce_nodes_gen(struct parser_params *, NODE **)
#define NEW_DEFS(r, i, a, d)
#define YYSTACK_ALLOC_MAXIMUM
#define set_yylval_name(x)
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 *)
VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *)
void rb_set_errinfo(VALUE err)
#define rb_enc_isspace(c, enc)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
NODE * parser_lex_strterm
int rb_is_global_id(ID id)
top_stmts dispatch0(stmts_new)
static void local_pop_gen(struct parser_params *)
#define NEW_ATTRASGN(r, m, a)
static int simple_re_meta(int c)
#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)
st_index_t rb_str_hash(VALUE)
#define NEW_OP_ASGN2(r, i, o, val)
#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,...)
RUBY_EXTERN VALUE rb_cObject
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)
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 *)
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[]
#define STRNCASECMP(s1, s2, n)
rb_encoding * rb_filesystem_encoding(void)
VALUE rb_make_backtrace(void)
static int yylex(void *, void *)
int rb_is_global_name(VALUE name)
#define node_assign(node1, node2)
#define NEW_OP_ASGN1(p, id, a)
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)
VALUE rb_str_new(const char *, long)
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)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
#define NEW_CDECL(v, val, path)
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 rb_enc_asciicompat(enc)
#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 rb_enc_isupper(c, enc)
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
static NODE * yycompile(struct parser_params *parser, const char *f, int line)
#define rb_enc_isascii(c, enc)
int rb_str_hash_cmp(VALUE, VALUE)
static void vtable_add(struct vtable *tbl, ID id)
int rb_is_class_id(ID id)
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 RSTRING_GETMEM(str, ptrvar, lenvar)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
#define NEW_DEFN(i, a, d, p)
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)
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)
#define ENCODING_SET(obj, i)
int rb_memcicmp(const void *, const void *, long)
#define rb_node_newnode(type, a1, a2, a3)
#define block_append(h, t)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define rb_enc_isalpha(c, enc)
struct token_info token_info
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_check_string_type(VALUE)
#define REALLOC_N(var, type, n)
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)
int rb_enc_str_coderange(VALUE)
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)
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
static VALUE lex_getline(struct parser_params *parser)
VALUE rb_sym_all_symbols(void)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
#define RTYPEDDATA_TYPE(v)
#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)
#define is_attrset_id(id)
static int local_id_gen(struct parser_params *, ID)
#define SPECIAL_PUNCT(idx)
#define rb_backref_error(n)
static void ripper_init_eventids2_table(VALUE self)
static NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
#define rb_warningS(fmt, a)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
rb_encoding * rb_enc_from_index(int index)
#define NEW_BLOCK_PASS(b)