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))
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) {
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 ruby_sourcefile_string (parser->parser_ruby_sourcefile_string)
401 #define current_enc (parser->enc)
402 #define yydebug (parser->parser_yydebug)
405 #define ruby_eval_tree (parser->parser_eval_tree)
406 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
407 #define ruby_debug_lines (parser->debug_lines)
408 #define ruby_coverage (parser->coverage)
412 static int yylex(
void*,
void*);
414 static int yylex(
void*);
418 #define yyparse ruby_yyparse
421 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
424 #define cond(node) cond_gen(parser, (node))
426 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2))
434 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
435 #define void_expr0(node) void_expr_gen(parser, (node))
436 #define void_expr(node) void_expr0((node) = remove_begin(node))
438 #define void_stmts(node) void_stmts_gen(parser, (node))
440 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))
442 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))
445 #define block_append(h,t) block_append_gen(parser,(h),(t))
447 #define list_append(l,i) list_append_gen(parser,(l),(i))
449 #define list_concat(h,t) list_concat_gen(parser,(h),(t))
451 #define arg_append(h,t) arg_append_gen(parser,(h),(t))
453 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t))
455 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t))
458 #define new_evstr(n) new_evstr_gen(parser,(n))
460 #define evstr2dstr(n) evstr2dstr_gen(parser,(n))
464 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
466 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id))
469 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
471 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
475 #define ret_args(node) ret_args_gen(parser, (node))
478 #define new_yield(node) new_yield_gen(parser, (node))
480 #define dsym_node(node) dsym_node_gen(parser, (node))
483 #define gettable(id) gettable_gen(parser,(id))
485 #define assignable(id,node) assignable_gen(parser, (id), (node))
488 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2))
490 #define attrset(node,id) attrset_gen(parser, (node), (id))
493 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))
495 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
499 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs))
501 #define new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs))
504 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2))
507 #define local_tbl() local_tbl_gen(parser)
512 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))
514 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))
516 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))
518 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match))
520 #define get_id(id) (id)
521 #define get_value(val) (val)
523 #define value_expr(node) ((void)(node))
524 #define remove_begin(node) (node)
525 #define rb_dvar_defined(id) 0
526 #define rb_local_defined(id) 0
527 static ID ripper_get_id(
VALUE);
528 #define get_id(id) ripper_get_id(id)
530 #define get_value(val) ripper_get_value(val)
532 #define assignable(lhs,node) assignable_gen(parser, (lhs))
534 #define id_is_var(id) id_is_var_gen(parser, (id))
536 #define node_assign(node1, node2) dispatch2(assign, (node1), (node2))
540 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs))
544 #define new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs))
547 #define formal_argument(id) formal_argument_gen(parser, (id))
549 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
551 #define new_bv(id) new_bv_gen(parser, (id))
554 #define local_push(top) local_push_gen(parser,(top))
556 #define local_pop() local_pop_gen(parser)
558 #define local_var(id) local_var_gen(parser, (id))
560 #define arg_var(id) arg_var_gen(parser, (id))
562 #define local_id(id) local_id_gen(parser, (id))
564 #define internal_id() internal_id_gen(parser)
567 #define dyna_push() dyna_push_gen(parser)
569 #define dyna_pop(node) dyna_pop_gen(parser, (node))
571 #define dyna_in_block() dyna_in_block_gen(parser)
572 #define dyna_var(id) local_var(id)
574 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0)
575 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
577 #define dvar_curr(id) dvar_curr_gen(parser, (id))
580 #define lvar_defined(id) lvar_defined_gen(parser, (id))
582 #define RE_OPTION_ONCE (1<<16)
583 #define RE_OPTION_ENCODING_SHIFT 8
584 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
585 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
586 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
587 #define RE_OPTION_MASK 0xff
588 #define RE_OPTION_ARG_ENCODING_NONE 32
590 #define NODE_STRTERM NODE_ZARRAY
591 #define NODE_HEREDOC NODE_ARRAY
592 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
593 #define nd_func u1.id
594 #if SIZEOF_SHORT == 2
595 #define nd_term(node) ((signed short)(node)->u2.id)
597 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
599 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
600 #define nd_nest u3.cnt
605 #define RIPPER_VERSION "0.1.0"
618 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
619 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))
620 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))
621 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
622 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
623 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
624 #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))
626 #define yyparse ripper_yyparse
628 #define ripper_intern(s) ID2SYM(rb_intern(s))
629 static VALUE ripper_id2sym(
ID);
631 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
632 ID2SYM(id) : ripper_id2sym(id))
635 #define arg_new() dispatch0(args_new)
636 #define arg_add(l,a) dispatch2(args_add, (l), (a))
637 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))
638 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))
639 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))
640 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))
641 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))
643 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))
644 #define mrhs_new() dispatch0(mrhs_new)
645 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))
646 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))
648 #define mlhs_new() dispatch0(mlhs_new)
649 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))
650 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))
652 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \
653 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk))
655 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))
656 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a))
657 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a))
659 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))
660 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))
661 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))
663 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
672 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))
679 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b))
687 # define ifndef_ripper(x) (x)
690 # define ifndef_ripper(x)
694 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
695 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
696 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
697 # define rb_warn4S(file,line,fmt,a) rb_compile_warn((file), (line), (fmt), (a))
698 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
699 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
701 # define rb_warn0(fmt) ripper_warn0(parser, (fmt))
702 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a))
703 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a))
704 # define rb_warn4S(file,line,fmt,a) ripper_warnS(parser, (fmt), (a))
705 # define rb_warning0(fmt) ripper_warning0(parser, (fmt))
706 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a))
707 static void ripper_warn0(
struct parser_params*,
const char*);
708 static void ripper_warnI(
struct parser_params*,
const char*,
int);
709 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
710 static void ripper_warning0(
struct parser_params*,
const char*);
711 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
715 static void ripper_compile_error(
struct parser_params*,
const char *
fmt, ...);
716 # define rb_compile_error ripper_compile_error
717 # define compile_error ripper_compile_error
718 # define PARSER_ARG parser,
720 # define rb_compile_error rb_compile_error_with_enc
721 # define compile_error parser->nerr++,rb_compile_error_with_enc
722 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
730 #define YYMAXDEPTH 10000
737 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
738 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
740 #define token_info_push(token)
741 #define token_info_pop(token)
754 #ifdef YYERROR_VERBOSE
755 # undef YYERROR_VERBOSE
756 # define YYERROR_VERBOSE 1
758 # define YYERROR_VERBOSE 0
762 #ifndef YYTOKEN_TABLE
763 # define YYTOKEN_TABLE 0
891 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
909 # define YYSTYPE_IS_TRIVIAL 1
910 # define yystype YYSTYPE
911 # define YYSTYPE_IS_DECLARED 1
933 #elif (defined __STDC__ || defined __C99__FUNC__ \
934 || defined __cplusplus || defined _MSC_VER)
953 # ifdef __SIZE_TYPE__
954 # define YYSIZE_T __SIZE_TYPE__
955 # elif defined size_t
956 # define YYSIZE_T size_t
957 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
958 || defined __cplusplus || defined _MSC_VER)
960 # define YYSIZE_T size_t
962 # define YYSIZE_T unsigned int
966 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
969 # if defined YYENABLE_NLS && YYENABLE_NLS
971 # include <libintl.h>
972 # define YY_(msgid) dgettext ("bison-runtime", msgid)
976 # define YY_(msgid) msgid
981 #if ! defined lint || defined __GNUC__
982 # define YYUSE(e) ((void) (e))
991 #if (defined __STDC__ || defined __C99__FUNC__ \
992 || defined __cplusplus || defined _MSC_VER)
1005 #if ! defined yyoverflow || YYERROR_VERBOSE
1009 # ifdef YYSTACK_USE_ALLOCA
1010 # if YYSTACK_USE_ALLOCA
1012 # define YYSTACK_ALLOC __builtin_alloca
1013 # elif defined __BUILTIN_VA_ARG_INCR
1014 # include <alloca.h>
1016 # define YYSTACK_ALLOC __alloca
1017 # elif defined _MSC_VER
1018 # include <malloc.h>
1019 # define alloca _alloca
1021 # define YYSTACK_ALLOC alloca
1022 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1023 || defined __cplusplus || defined _MSC_VER)
1024 # include <stdlib.h>
1025 # ifndef EXIT_SUCCESS
1026 # define EXIT_SUCCESS 0
1033 # ifdef YYSTACK_ALLOC
1035 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
1036 # ifndef YYSTACK_ALLOC_MAXIMUM
1041 # define YYSTACK_ALLOC_MAXIMUM 4032
1044 # define YYSTACK_ALLOC YYMALLOC
1045 # define YYSTACK_FREE YYFREE
1046 # ifndef YYSTACK_ALLOC_MAXIMUM
1047 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1049 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1050 && ! ((defined YYMALLOC || defined malloc) \
1051 && (defined YYFREE || defined free)))
1052 # include <stdlib.h>
1053 # ifndef EXIT_SUCCESS
1054 # define EXIT_SUCCESS 0
1058 # define YYMALLOC malloc
1059 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1060 || defined __cplusplus || defined _MSC_VER)
1065 # define YYFREE free
1066 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1067 || defined __cplusplus || defined _MSC_VER)
1075 #if (! defined yyoverflow \
1076 && (! defined __cplusplus \
1077 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1087 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1091 # define YYSTACK_BYTES(N) \
1092 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1093 + YYSTACK_GAP_MAXIMUM)
1095 # define YYCOPY_NEEDED 1
1102 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1105 YYSIZE_T yynewbytes; \
1106 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1107 Stack = &yyptr->Stack_alloc; \
1108 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1109 yyptr += yynewbytes / sizeof (*yyptr); \
1115 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1119 # if defined __GNUC__ && 1 < __GNUC__
1120 # define YYCOPY(To, From, Count) \
1121 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1123 # define YYCOPY(To, From, Count) \
1127 for (yyi = 0; yyi < (Count); yyi++) \
1128 (To)[yyi] = (From)[yyi]; \
1138 #define YYLAST 10700
1141 #define YYNTOKENS 142
1145 #define YYNRULES 620
1147 #define YYNSTATES 1057
1150 #define YYUNDEFTOK 2
1151 #define YYMAXUTOK 352
1153 #define YYTRANSLATE(YYX) \
1154 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1159 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1160 141, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1162 2, 2, 140, 127, 2, 2, 2, 125, 120, 2,
1163 136, 137, 123, 121, 134, 122, 133, 124, 2, 2,
1164 2, 2, 2, 2, 2, 2, 2, 2, 115, 139,
1165 117, 113, 116, 114, 2, 2, 2, 2, 2, 2,
1166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1168 2, 132, 2, 138, 119, 2, 135, 2, 2, 2,
1169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1171 2, 2, 2, 130, 118, 131, 128, 2, 79, 80,
1172 66, 67, 68, 2, 69, 83, 84, 74, 73, 70,
1173 71, 72, 77, 78, 81, 82, 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, 2, 2, 2, 2,
1184 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1185 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1186 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1187 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1188 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1189 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1190 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1191 65, 75, 76, 85, 86, 87, 88, 89, 90, 91,
1192 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1193 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1202 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1203 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1204 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1205 91, 95, 99, 104, 106, 110, 114, 121, 127, 133,
1206 139, 145, 149, 153, 157, 161, 163, 167, 171, 173,
1207 177, 181, 185, 188, 190, 192, 194, 196, 198, 203,
1208 204, 210, 212, 215, 219, 224, 230, 235, 241, 244,
1209 247, 250, 253, 256, 258, 262, 264, 268, 270, 273,
1210 277, 283, 286, 291, 294, 299, 301, 305, 307, 311,
1211 314, 318, 320, 324, 326, 328, 333, 337, 341, 345,
1212 349, 352, 354, 356, 358, 363, 367, 371, 375, 379,
1213 382, 384, 386, 388, 391, 393, 397, 399, 401, 403,
1214 405, 407, 409, 411, 413, 415, 417, 418, 423, 425,
1215 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1216 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1217 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1218 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1219 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1220 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1221 547, 549, 551, 553, 555, 557, 559, 561, 563, 565,
1222 569, 575, 579, 585, 592, 598, 604, 610, 616, 621,
1223 625, 629, 633, 637, 641, 645, 649, 653, 657, 662,
1224 667, 670, 673, 677, 681, 685, 689, 693, 697, 701,
1225 705, 709, 713, 717, 721, 725, 728, 731, 735, 739,
1226 743, 747, 748, 753, 760, 762, 764, 766, 769, 774,
1227 777, 781, 783, 785, 787, 789, 792, 797, 800, 802,
1228 805, 808, 813, 815, 816, 819, 822, 825, 827, 829,
1229 832, 836, 841, 845, 850, 853, 855, 857, 859, 861,
1230 863, 865, 867, 869, 871, 873, 875, 876, 881, 882,
1231 886, 887, 888, 894, 898, 902, 905, 909, 913, 915,
1232 920, 924, 926, 927, 934, 939, 943, 946, 948, 951,
1233 954, 961, 968, 969, 970, 978, 979, 980, 988, 994,
1234 999, 1000, 1001, 1011, 1012, 1019, 1020, 1021, 1030, 1031,
1235 1037, 1038, 1045, 1046, 1047, 1057, 1059, 1061, 1063, 1065,
1236 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085,
1237 1087, 1089, 1091, 1093, 1096, 1098, 1100, 1102, 1108, 1110,
1238 1113, 1115, 1117, 1119, 1123, 1125, 1129, 1131, 1136, 1143,
1239 1147, 1153, 1156, 1161, 1163, 1167, 1172, 1175, 1178, 1180,
1240 1183, 1184, 1191, 1200, 1205, 1212, 1217, 1220, 1227, 1230,
1241 1235, 1242, 1245, 1250, 1253, 1258, 1260, 1262, 1264, 1268,
1242 1270, 1275, 1277, 1282, 1284, 1288, 1290, 1292, 1293, 1294,
1243 1295, 1301, 1306, 1308, 1312, 1316, 1317, 1323, 1326, 1331,
1244 1337, 1343, 1346, 1347, 1353, 1354, 1360, 1364, 1365, 1370,
1245 1371, 1376, 1379, 1381, 1386, 1387, 1393, 1394, 1400, 1406,
1246 1408, 1410, 1417, 1419, 1421, 1423, 1425, 1428, 1430, 1433,
1247 1435, 1437, 1439, 1441, 1443, 1445, 1447, 1450, 1454, 1458,
1248 1462, 1466, 1470, 1471, 1475, 1477, 1480, 1484, 1488, 1489,
1249 1493, 1497, 1501, 1505, 1509, 1510, 1514, 1515, 1519, 1520,
1250 1523, 1524, 1527, 1528, 1531, 1533, 1534, 1538, 1539, 1540,
1251 1541, 1548, 1550, 1552, 1554, 1556, 1559, 1561, 1563, 1565,
1252 1567, 1571, 1573, 1575, 1578, 1581, 1583, 1585, 1587, 1589,
1253 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609,
1254 1611, 1613, 1615, 1617, 1619, 1620, 1625, 1628, 1632, 1635,
1255 1640, 1643, 1646, 1648, 1651, 1652, 1659, 1668, 1673, 1680,
1256 1685, 1692, 1695, 1700, 1707, 1710, 1715, 1718, 1723, 1725,
1257 1726, 1728, 1730, 1732, 1734, 1736, 1738, 1740, 1744, 1746,
1258 1750, 1753, 1756, 1758, 1762, 1764, 1768, 1770, 1772, 1775,
1259 1777, 1781, 1785, 1787, 1791, 1793, 1797, 1799, 1801, 1804,
1260 1806, 1808, 1810, 1813, 1816, 1818, 1820, 1821, 1826, 1828,
1261 1831, 1833, 1837, 1841, 1844, 1847, 1849, 1851, 1853, 1855,
1262 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1871, 1872, 1874,
1263 1875, 1877, 1880, 1883, 1884, 1886, 1888, 1890, 1892, 1894,
1270 143, 0, -1, -1, 144, 145, -1, 146, 333, -1,
1271 340, -1, 147, -1, 146, 339, 147, -1, 1, 147,
1272 -1, 154, -1, -1, 47, 148, 130, 145, 131, -1,
1273 150, 262, 230, 265, -1, 151, 333, -1, 340, -1,
1274 152, -1, 151, 339, 152, -1, 1, 154, -1, 154,
1275 -1, -1, 47, 153, 130, 145, 131, -1, -1, 45,
1276 177, 155, 177, -1, 45, 54, 54, -1, 45, 54,
1277 64, -1, 45, 54, 63, -1, 6, 178, -1, 154,
1278 40, 158, -1, 154, 41, 158, -1, 154, 42, 158,
1279 -1, 154, 43, 158, -1, 154, 44, 154, -1, 48,
1280 130, 150, 131, -1, 156, -1, 165, 113, 159, -1,
1281 297, 87, 159, -1, 215, 132, 188, 336, 87, 159,
1282 -1, 215, 133, 52, 87, 159, -1, 215, 133, 56,
1283 87, 159, -1, 215, 85, 56, 87, 159, -1, 215,
1284 85, 52, 87, 159, -1, 298, 87, 159, -1, 172,
1285 113, 195, -1, 165, 113, 184, -1, 165, 113, 195,
1286 -1, 157, -1, 172, 113, 159, -1, 172, 113, 156,
1287 -1, 159, -1, 157, 37, 157, -1, 157, 38, 157,
1288 -1, 39, 334, 157, -1, 127, 159, -1, 182, -1,
1289 157, -1, 164, -1, 160, -1, 251, -1, 251, 332,
1290 330, 190, -1, -1, 94, 162, 238, 150, 131, -1,
1291 329, -1, 163, 190, -1, 163, 190, 161, -1, 215,
1292 133, 330, 190, -1, 215, 133, 330, 190, 161, -1,
1293 215, 85, 330, 190, -1, 215, 85, 330, 190, 161,
1294 -1, 32, 190, -1, 31, 190, -1, 30, 189, -1,
1295 21, 189, -1, 22, 189, -1, 167, -1, 89, 166,
1296 335, -1, 167, -1, 89, 166, 335, -1, 169, -1,
1297 169, 168, -1, 169, 95, 171, -1, 169, 95, 171,
1298 134, 170, -1, 169, 95, -1, 169, 95, 134, 170,
1299 -1, 95, 171, -1, 95, 171, 134, 170, -1, 95,
1300 -1, 95, 134, 170, -1, 171, -1, 89, 166, 335,
1301 -1, 168, 134, -1, 169, 168, 134, -1, 168, -1,
1302 170, 134, 168, -1, 294, -1, 295, -1, 215, 132,
1303 188, 336, -1, 215, 133, 52, -1, 215, 85, 52,
1304 -1, 215, 133, 56, -1, 215, 85, 56, -1, 86,
1305 56, -1, 298, -1, 294, -1, 295, -1, 215, 132,
1306 188, 336, -1, 215, 133, 52, -1, 215, 85, 52,
1307 -1, 215, 133, 56, -1, 215, 85, 56, -1, 86,
1308 56, -1, 298, -1, 52, -1, 56, -1, 86, 173,
1309 -1, 173, -1, 215, 85, 173, -1, 52, -1, 56,
1310 -1, 53, -1, 180, -1, 181, -1, 175, -1, 290,
1311 -1, 176, -1, 292, -1, 177, -1, -1, 178, 134,
1312 179, 177, -1, 118, -1, 119, -1, 120, -1, 69,
1313 -1, 70, -1, 71, -1, 77, -1, 78, -1, 116,
1314 -1, 73, -1, 117, -1, 74, -1, 72, -1, 83,
1315 -1, 84, -1, 121, -1, 122, -1, 123, -1, 95,
1316 -1, 124, -1, 125, -1, 68, -1, 96, -1, 127,
1317 -1, 128, -1, 66, -1, 67, -1, 81, -1, 82,
1318 -1, 135, -1, 49, -1, 50, -1, 51, -1, 47,
1319 -1, 48, -1, 45, -1, 37, -1, 7, -1, 21,
1320 -1, 16, -1, 3, -1, 5, -1, 46, -1, 26,
1321 -1, 15, -1, 14, -1, 10, -1, 9, -1, 36,
1322 -1, 20, -1, 25, -1, 4, -1, 22, -1, 34,
1323 -1, 39, -1, 38, -1, 23, -1, 8, -1, 24,
1324 -1, 30, -1, 33, -1, 32, -1, 13, -1, 35,
1325 -1, 6, -1, 17, -1, 31, -1, 11, -1, 12,
1326 -1, 18, -1, 19, -1, 172, 113, 182, -1, 172,
1327 113, 182, 44, 182, -1, 297, 87, 182, -1, 297,
1328 87, 182, 44, 182, -1, 215, 132, 188, 336, 87,
1329 182, -1, 215, 133, 52, 87, 182, -1, 215, 133,
1330 56, 87, 182, -1, 215, 85, 52, 87, 182, -1,
1331 215, 85, 56, 87, 182, -1, 86, 56, 87, 182,
1332 -1, 298, 87, 182, -1, 182, 79, 182, -1, 182,
1333 80, 182, -1, 182, 121, 182, -1, 182, 122, 182,
1334 -1, 182, 123, 182, -1, 182, 124, 182, -1, 182,
1335 125, 182, -1, 182, 68, 182, -1, 126, 59, 68,
1336 182, -1, 126, 60, 68, 182, -1, 66, 182, -1,
1337 67, 182, -1, 182, 118, 182, -1, 182, 119, 182,
1338 -1, 182, 120, 182, -1, 182, 69, 182, -1, 182,
1339 116, 182, -1, 182, 73, 182, -1, 182, 117, 182,
1340 -1, 182, 74, 182, -1, 182, 70, 182, -1, 182,
1341 71, 182, -1, 182, 72, 182, -1, 182, 77, 182,
1342 -1, 182, 78, 182, -1, 127, 182, -1, 128, 182,
1343 -1, 182, 83, 182, -1, 182, 84, 182, -1, 182,
1344 75, 182, -1, 182, 76, 182, -1, -1, 46, 334,
1345 183, 182, -1, 182, 114, 182, 334, 115, 182, -1,
1346 196, -1, 182, -1, 340, -1, 194, 337, -1, 194,
1347 134, 327, 337, -1, 327, 337, -1, 136, 188, 335,
1348 -1, 340, -1, 186, -1, 340, -1, 189, -1, 194,
1349 134, -1, 194, 134, 327, 134, -1, 327, 134, -1,
1350 164, -1, 194, 193, -1, 327, 193, -1, 194, 134,
1351 327, 193, -1, 192, -1, -1, 191, 189, -1, 97,
1352 184, -1, 134, 192, -1, 340, -1, 184, -1, 95,
1353 184, -1, 194, 134, 184, -1, 194, 134, 95, 184,
1354 -1, 194, 134, 184, -1, 194, 134, 95, 184, -1,
1355 95, 184, -1, 266, -1, 267, -1, 270, -1, 271,
1356 -1, 272, -1, 277, -1, 275, -1, 278, -1, 296,
1357 -1, 298, -1, 53, -1, -1, 216, 197, 149, 226,
1358 -1, -1, 90, 198, 335, -1, -1, -1, 90, 199,
1359 157, 200, 335, -1, 89, 150, 137, -1, 215, 85,
1360 56, -1, 86, 56, -1, 92, 185, 138, -1, 93,
1361 326, 131, -1, 30, -1, 31, 136, 189, 335, -1,
1362 31, 136, 335, -1, 31, -1, -1, 46, 334, 136,
1363 201, 157, 335, -1, 39, 136, 157, 335, -1, 39,
1364 136, 335, -1, 163, 257, -1, 252, -1, 252, 257,
1365 -1, 98, 243, -1, 217, 158, 227, 150, 229, 226,
1366 -1, 218, 158, 227, 150, 230, 226, -1, -1, -1,
1367 219, 202, 158, 228, 203, 150, 226, -1, -1, -1,
1368 220, 204, 158, 228, 205, 150, 226, -1, 221, 158,
1369 333, 260, 226, -1, 221, 333, 260, 226, -1, -1,
1370 -1, 222, 231, 25, 206, 158, 228, 207, 150, 226,
1371 -1, -1, 223, 174, 299, 208, 149, 226, -1, -1,
1372 -1, 223, 83, 157, 209, 338, 210, 149, 226, -1,
1373 -1, 224, 174, 211, 149, 226, -1, -1, 225, 175,
1374 212, 301, 149, 226, -1, -1, -1, 225, 324, 332,
1375 213, 175, 214, 301, 149, 226, -1, 21, -1, 22,
1376 -1, 23, -1, 24, -1, 196, -1, 7, -1, 11,
1377 -1, 12, -1, 18, -1, 19, -1, 16, -1, 20,
1378 -1, 3, -1, 4, -1, 5, -1, 10, -1, 338,
1379 -1, 13, -1, 338, 13, -1, 338, -1, 27, -1,
1380 230, -1, 14, 158, 227, 150, 229, -1, 340, -1,
1381 15, 150, -1, 172, -1, 165, -1, 306, -1, 89,
1382 234, 335, -1, 232, -1, 233, 134, 232, -1, 233,
1383 -1, 233, 134, 95, 306, -1, 233, 134, 95, 306,
1384 134, 233, -1, 233, 134, 95, -1, 233, 134, 95,
1385 134, 233, -1, 95, 306, -1, 95, 306, 134, 233,
1386 -1, 95, -1, 95, 134, 233, -1, 311, 134, 314,
1387 323, -1, 311, 323, -1, 314, 323, -1, 322, -1,
1388 134, 235, -1, -1, 308, 134, 317, 134, 320, 236,
1389 -1, 308, 134, 317, 134, 320, 134, 308, 236, -1,
1390 308, 134, 317, 236, -1, 308, 134, 317, 134, 308,
1391 236, -1, 308, 134, 320, 236, -1, 308, 134, -1,
1392 308, 134, 320, 134, 308, 236, -1, 308, 236, -1,
1393 317, 134, 320, 236, -1, 317, 134, 320, 134, 308,
1394 236, -1, 317, 236, -1, 317, 134, 308, 236, -1,
1395 320, 236, -1, 320, 134, 308, 236, -1, 235, -1,
1396 340, -1, 239, -1, 118, 240, 118, -1, 76, -1,
1397 118, 237, 240, 118, -1, 334, -1, 334, 139, 241,
1398 334, -1, 242, -1, 241, 134, 242, -1, 52, -1,
1399 305, -1, -1, -1, -1, 244, 245, 247, 246, 248,
1400 -1, 136, 304, 240, 137, -1, 304, -1, 111, 150,
1401 131, -1, 29, 150, 10, -1, -1, 28, 250, 238,
1402 150, 10, -1, 164, 249, -1, 251, 332, 330, 187,
1403 -1, 251, 332, 330, 187, 257, -1, 251, 332, 330,
1404 190, 249, -1, 163, 186, -1, -1, 215, 133, 330,
1405 253, 187, -1, -1, 215, 85, 330, 254, 186, -1,
1406 215, 85, 331, -1, -1, 215, 133, 255, 186, -1,
1407 -1, 215, 85, 256, 186, -1, 32, 186, -1, 32,
1408 -1, 215, 132, 188, 336, -1, -1, 130, 258, 238,
1409 150, 131, -1, -1, 26, 259, 238, 150, 10, -1,
1410 17, 194, 227, 150, 261, -1, 230, -1, 260, -1,
1411 8, 263, 264, 227, 150, 262, -1, 340, -1, 184,
1412 -1, 195, -1, 340, -1, 88, 172, -1, 340, -1,
1413 9, 150, -1, 340, -1, 293, -1, 290, -1, 292,
1414 -1, 268, -1, 62, -1, 269, -1, 268, 269, -1,
1415 100, 281, 110, -1, 101, 282, 110, -1, 102, 283,
1416 65, -1, 103, 140, 110, -1, 103, 273, 110, -1,
1417 -1, 273, 274, 140, -1, 284, -1, 274, 284, -1,
1418 105, 140, 110, -1, 105, 276, 110, -1, -1, 276,
1419 274, 140, -1, 104, 140, 110, -1, 104, 279, 110,
1420 -1, 106, 140, 110, -1, 106, 280, 110, -1, -1,
1421 279, 61, 140, -1, -1, 280, 61, 140, -1, -1,
1422 281, 284, -1, -1, 282, 284, -1, -1, 283, 284,
1423 -1, 61, -1, -1, 109, 285, 289, -1, -1, -1,
1424 -1, 107, 286, 287, 288, 150, 108, -1, 54, -1,
1425 55, -1, 57, -1, 298, -1, 99, 291, -1, 175,
1426 -1, 55, -1, 54, -1, 57, -1, 99, 282, 110,
1427 -1, 59, -1, 60, -1, 126, 59, -1, 126, 60,
1428 -1, 52, -1, 55, -1, 54, -1, 56, -1, 57,
1429 -1, 34, -1, 33, -1, 35, -1, 36, -1, 50,
1430 -1, 49, -1, 51, -1, 294, -1, 295, -1, 294,
1431 -1, 295, -1, 63, -1, 64, -1, 338, -1, -1,
1432 117, 300, 158, 338, -1, 1, 338, -1, 136, 304,
1433 335, -1, 304, 338, -1, 312, 134, 314, 323, -1,
1434 312, 323, -1, 314, 323, -1, 322, -1, 134, 302,
1435 -1, -1, 308, 134, 318, 134, 320, 303, -1, 308,
1436 134, 318, 134, 320, 134, 308, 303, -1, 308, 134,
1437 318, 303, -1, 308, 134, 318, 134, 308, 303, -1,
1438 308, 134, 320, 303, -1, 308, 134, 320, 134, 308,
1439 303, -1, 308, 303, -1, 318, 134, 320, 303, -1,
1440 318, 134, 320, 134, 308, 303, -1, 318, 303, -1,
1441 318, 134, 308, 303, -1, 320, 303, -1, 320, 134,
1442 308, 303, -1, 302, -1, -1, 56, -1, 55, -1,
1443 54, -1, 57, -1, 305, -1, 52, -1, 306, -1,
1444 89, 234, 335, -1, 307, -1, 308, 134, 307, -1,
1445 58, 184, -1, 58, 215, -1, 310, -1, 311, 134,
1446 310, -1, 309, -1, 312, 134, 309, -1, 68, -1,
1447 96, -1, 313, 52, -1, 313, -1, 52, 113, 184,
1448 -1, 52, 113, 215, -1, 316, -1, 317, 134, 316,
1449 -1, 315, -1, 318, 134, 315, -1, 123, -1, 95,
1450 -1, 319, 52, -1, 319, -1, 120, -1, 97, -1,
1451 321, 52, -1, 134, 322, -1, 340, -1, 296, -1,
1452 -1, 136, 325, 157, 335, -1, 340, -1, 327, 337,
1453 -1, 328, -1, 327, 134, 328, -1, 184, 88, 184,
1454 -1, 58, 184, -1, 96, 184, -1, 52, -1, 56,
1455 -1, 53, -1, 52, -1, 56, -1, 53, -1, 180,
1456 -1, 52, -1, 53, -1, 180, -1, 133, -1, 85,
1457 -1, -1, 339, -1, -1, 141, -1, 334, 137, -1,
1458 334, 138, -1, -1, 141, -1, 134, -1, 139, -1,
1459 141, -1, 338, -1, 339, 139, -1, -1
1465 0, 855, 855, 855, 886, 897, 906, 914, 922, 928,
1466 930, 929, 950, 983, 994, 1003, 1011, 1019, 1025, 1030,
1467 1029, 1050, 1050, 1058, 1066, 1077, 1087, 1095, 1104, 1113,
1468 1126, 1139, 1148, 1160, 1161, 1171, 1176, 1197, 1202, 1207,
1469 1217, 1222, 1232, 1241, 1250, 1259, 1262, 1271, 1283, 1284,
1470 1292, 1300, 1308, 1316, 1319, 1331, 1332, 1335, 1336, 1348,
1471 1347, 1369, 1379, 1388, 1401, 1410, 1422, 1431, 1443, 1452,
1472 1461, 1469, 1477, 1487, 1488, 1498, 1499, 1509, 1517, 1525,
1473 1533, 1542, 1550, 1559, 1567, 1576, 1584, 1595, 1596, 1606,
1474 1614, 1624, 1632, 1642, 1646, 1650, 1658, 1666, 1674, 1682,
1475 1694, 1704, 1716, 1725, 1734, 1742, 1750, 1758, 1766, 1779,
1476 1792, 1803, 1811, 1814, 1822, 1830, 1840, 1841, 1842, 1843,
1477 1848, 1859, 1860, 1863, 1871, 1874, 1882, 1882, 1892, 1893,
1478 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903,
1479 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,
1480 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1924, 1924,
1481 1924, 1925, 1925, 1926, 1926, 1926, 1927, 1927, 1927, 1927,
1482 1928, 1928, 1928, 1928, 1929, 1929, 1929, 1930, 1930, 1930,
1483 1930, 1931, 1931, 1931, 1931, 1932, 1932, 1932, 1932, 1933,
1484 1933, 1933, 1933, 1934, 1934, 1934, 1934, 1935, 1935, 1938,
1485 1947, 1957, 1962, 1972, 1998, 2003, 2008, 2013, 2023, 2033,
1486 2044, 2058, 2072, 2080, 2088, 2096, 2104, 2112, 2120, 2129,
1487 2138, 2146, 2154, 2162, 2170, 2178, 2186, 2194, 2202, 2210,
1488 2218, 2226, 2234, 2242, 2253, 2261, 2269, 2277, 2285, 2293,
1489 2301, 2309, 2309, 2319, 2329, 2335, 2347, 2348, 2352, 2360,
1490 2370, 2380, 2381, 2384, 2385, 2386, 2390, 2398, 2408, 2417,
1491 2425, 2435, 2444, 2453, 2453, 2465, 2475, 2479, 2485, 2493,
1492 2501, 2515, 2531, 2545, 2560, 2570, 2571, 2572, 2573, 2574,
1493 2575, 2576, 2577, 2578, 2579, 2580, 2589, 2588, 2616, 2616,
1494 2625, 2629, 2624, 2638, 2646, 2654, 2662, 2675, 2683, 2691,
1495 2699, 2707, 2715, 2715, 2725, 2733, 2741, 2751, 2752, 2762,
1496 2766, 2778, 2790, 2790, 2790, 2801, 2801, 2801, 2812, 2823,
1497 2832, 2834, 2831, 2898, 2897, 2919, 2924, 2918, 2943, 2942,
1498 2964, 2963, 2986, 2987, 2986, 3007, 3015, 3023, 3031, 3041,
1499 3053, 3059, 3065, 3071, 3077, 3083, 3089, 3095, 3101, 3107,
1500 3117, 3123, 3128, 3129, 3136, 3141, 3144, 3145, 3158, 3159,
1501 3169, 3170, 3173, 3181, 3191, 3199, 3209, 3217, 3226, 3235,
1502 3243, 3251, 3260, 3272, 3280, 3291, 3295, 3299, 3303, 3309,
1503 3314, 3319, 3323, 3327, 3331, 3335, 3339, 3347, 3351, 3355,
1504 3359, 3363, 3367, 3371, 3375, 3379, 3385, 3386, 3392, 3401,
1505 3410, 3421, 3425, 3435, 3442, 3451, 3459, 3465, 3468, 3473,
1506 3465, 3489, 3497, 3507, 3511, 3518, 3517, 3538, 3554, 3563,
1507 3575, 3589, 3599, 3598, 3615, 3614, 3630, 3639, 3638, 3656,
1508 3655, 3672, 3680, 3688, 3703, 3702, 3722, 3721, 3742, 3754,
1509 3755, 3758, 3777, 3780, 3788, 3796, 3799, 3803, 3806, 3814,
1510 3817, 3818, 3826, 3829, 3846, 3847, 3848, 3858, 3868, 3895,
1511 3960, 3969, 3980, 3987, 3997, 4005, 4015, 4024, 4035, 4042,
1512 4054, 4063, 4073, 4082, 4093, 4100, 4111, 4118, 4133, 4140,
1513 4151, 4158, 4169, 4176, 4205, 4207, 4206, 4223, 4229, 4234,
1514 4222, 4253, 4261, 4269, 4277, 4280, 4291, 4292, 4293, 4294,
1515 4297, 4308, 4309, 4310, 4318, 4328, 4329, 4330, 4331, 4332,
1516 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4344, 4357, 4367,
1517 4375, 4385, 4386, 4389, 4398, 4397, 4406, 4418, 4428, 4436,
1518 4440, 4444, 4448, 4454, 4459, 4464, 4468, 4472, 4476, 4480,
1519 4484, 4488, 4492, 4496, 4500, 4504, 4508, 4512, 4516, 4521,
1520 4527, 4536, 4545, 4554, 4565, 4566, 4573, 4582, 4601, 4608,
1521 4621, 4633, 4645, 4653, 4670, 4678, 4694, 4695, 4698, 4703,
1522 4709, 4721, 4733, 4741, 4757, 4765, 4781, 4782, 4785, 4798,
1523 4809, 4810, 4813, 4830, 4834, 4844, 4854, 4854, 4883, 4884,
1524 4894, 4901, 4911, 4919, 4927, 4939, 4940, 4941, 4944, 4945,
1525 4946, 4947, 4950, 4951, 4952, 4955, 4960, 4967, 4968, 4971,
1526 4972, 4975, 4978, 4981, 4982, 4983, 4986, 4987, 4990, 4991,
1531 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1536 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1537 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1538 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1539 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1540 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1541 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1542 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1543 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1544 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1545 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1546 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1547 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1548 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1549 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1550 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
1551 "tCHAR",
"tNTH_REF",
"tBACK_REF",
"tREGEXP_END",
"\"unary+\"",
1552 "\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
"\"===\"",
"\"!=\"",
1553 "\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
"\"!~\"",
"\"..\"",
1554 "\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
"\"::\"",
1555 "\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
"\"( arg\"",
1556 "\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
"\"**arg\"",
"\"&\"",
1557 "\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
1558 "tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
"tQSYMBOLS_BEG",
1559 "tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1560 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1561 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
1562 "'{'",
"'}'",
"'['",
"'.'",
"','",
"'`'",
"'('",
"')'",
"']'",
"';'",
1563 "' '",
"'\\n'",
"$accept",
"program",
"$@1",
"top_compstmt",
"top_stmts",
1564 "top_stmt",
"$@2",
"bodystmt",
"compstmt",
"stmts",
"stmt_or_begin",
1565 "$@3",
"stmt",
"$@4",
"command_asgn",
"expr",
"expr_value",
1566 "command_call",
"block_command",
"cmd_brace_block",
"@5",
"fcall",
1567 "command",
"mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
1568 "mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
1569 "fitem",
"undef_list",
"$@6",
"op",
"reswords",
"arg",
"$@7",
1570 "arg_value",
"aref_args",
"paren_args",
"opt_paren_args",
1571 "opt_call_args",
"call_args",
"command_args",
"@8",
"block_arg",
1572 "opt_block_arg",
"args",
"mrhs",
"primary",
"@9",
"$@10",
"$@11",
"$@12",
1573 "$@13",
"$@14",
"$@15",
"$@16",
"$@17",
"$@18",
"$@19",
"@20",
"@21",
1574 "@22",
"@23",
"@24",
"$@25",
"$@26",
"primary_value",
"k_begin",
"k_if",
1575 "k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
"k_class",
1576 "k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
"opt_else",
1577 "for_var",
"f_marg",
"f_marg_list",
"f_margs",
"block_args_tail",
1578 "opt_block_args_tail",
"block_param",
"opt_block_param",
1579 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@27",
1580 "@28",
"@29",
"f_larglist",
"lambda_body",
"do_block",
"@30",
1581 "block_call",
"method_call",
"@31",
"@32",
"@33",
"@34",
"brace_block",
1582 "@35",
"@36",
"case_body",
"cases",
"opt_rescue",
"exc_list",
"exc_var",
1583 "opt_ensure",
"literal",
"strings",
"string",
"string1",
"xstring",
1584 "regexp",
"words",
"word_list",
"word",
"symbols",
"symbol_list",
1585 "qwords",
"qsymbols",
"qword_list",
"qsym_list",
"string_contents",
1586 "xstring_contents",
"regexp_contents",
"string_content",
"@37",
"@38",
1587 "@39",
"@40",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1588 "user_variable",
"keyword_variable",
"var_ref",
"var_lhs",
"backref",
1589 "superclass",
"$@41",
"f_arglist",
"args_tail",
"opt_args_tail",
1590 "f_args",
"f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_kw",
1591 "f_block_kw",
"f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
1592 "f_opt",
"f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1593 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1594 "singleton",
"$@42",
"assoc_list",
"assocs",
"assoc",
"operation",
1595 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1596 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1603 static const yytype_uint16 yytoknum[] =
1605 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1606 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1607 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1608 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1609 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1610 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1611 315, 316, 317, 318, 319, 320, 130, 131, 132, 134,
1612 139, 140, 141, 138, 137, 321, 322, 142, 143, 128,
1613 129, 144, 145, 135, 136, 323, 324, 325, 326, 327,
1614 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1615 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1616 348, 349, 350, 61, 63, 58, 62, 60, 124, 94,
1617 38, 43, 45, 42, 47, 37, 351, 33, 126, 352,
1618 123, 125, 91, 46, 44, 96, 40, 41, 93, 59,
1624 static const yytype_uint16
yyr1[] =
1626 0, 142, 144, 143, 145, 146, 146, 146, 146, 147,
1627 148, 147, 149, 150, 151, 151, 151, 151, 152, 153,
1628 152, 155, 154, 154, 154, 154, 154, 154, 154, 154,
1629 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1630 154, 154, 154, 154, 154, 154, 156, 156, 157, 157,
1631 157, 157, 157, 157, 158, 159, 159, 160, 160, 162,
1632 161, 163, 164, 164, 164, 164, 164, 164, 164, 164,
1633 164, 164, 164, 165, 165, 166, 166, 167, 167, 167,
1634 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
1635 169, 170, 170, 171, 171, 171, 171, 171, 171, 171,
1636 171, 171, 172, 172, 172, 172, 172, 172, 172, 172,
1637 172, 173, 173, 174, 174, 174, 175, 175, 175, 175,
1638 175, 176, 176, 177, 177, 178, 179, 178, 180, 180,
1639 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1640 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1641 180, 180, 180, 180, 180, 180, 180, 180, 181, 181,
1642 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1643 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1644 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1645 181, 181, 181, 181, 181, 181, 181, 181, 181, 182,
1646 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1647 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1648 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1649 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1650 182, 183, 182, 182, 182, 184, 185, 185, 185, 185,
1651 186, 187, 187, 188, 188, 188, 188, 188, 189, 189,
1652 189, 189, 189, 191, 190, 192, 193, 193, 194, 194,
1653 194, 194, 195, 195, 195, 196, 196, 196, 196, 196,
1654 196, 196, 196, 196, 196, 196, 197, 196, 198, 196,
1655 199, 200, 196, 196, 196, 196, 196, 196, 196, 196,
1656 196, 196, 201, 196, 196, 196, 196, 196, 196, 196,
1657 196, 196, 202, 203, 196, 204, 205, 196, 196, 196,
1658 206, 207, 196, 208, 196, 209, 210, 196, 211, 196,
1659 212, 196, 213, 214, 196, 196, 196, 196, 196, 215,
1660 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1661 226, 227, 227, 227, 228, 228, 229, 229, 230, 230,
1662 231, 231, 232, 232, 233, 233, 234, 234, 234, 234,
1663 234, 234, 234, 234, 234, 235, 235, 235, 235, 236,
1664 236, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1665 237, 237, 237, 237, 237, 237, 238, 238, 239, 239,
1666 239, 240, 240, 241, 241, 242, 242, 244, 245, 246,
1667 243, 247, 247, 248, 248, 250, 249, 251, 251, 251,
1668 251, 252, 253, 252, 254, 252, 252, 255, 252, 256,
1669 252, 252, 252, 252, 258, 257, 259, 257, 260, 261,
1670 261, 262, 262, 263, 263, 263, 264, 264, 265, 265,
1671 266, 266, 266, 267, 268, 268, 268, 269, 270, 271,
1672 272, 272, 273, 273, 274, 274, 275, 275, 276, 276,
1673 277, 277, 278, 278, 279, 279, 280, 280, 281, 281,
1674 282, 282, 283, 283, 284, 285, 284, 286, 287, 288,
1675 284, 289, 289, 289, 289, 290, 291, 291, 291, 291,
1676 292, 293, 293, 293, 293, 294, 294, 294, 294, 294,
1677 295, 295, 295, 295, 295, 295, 295, 296, 296, 297,
1678 297, 298, 298, 299, 300, 299, 299, 301, 301, 302,
1679 302, 302, 302, 303, 303, 304, 304, 304, 304, 304,
1680 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
1681 305, 305, 305, 305, 306, 306, 307, 307, 308, 308,
1682 309, 310, 311, 311, 312, 312, 313, 313, 314, 314,
1683 315, 316, 317, 317, 318, 318, 319, 319, 320, 320,
1684 321, 321, 322, 323, 323, 324, 325, 324, 326, 326,
1685 327, 327, 328, 328, 328, 329, 329, 329, 330, 330,
1686 330, 330, 331, 331, 331, 332, 332, 333, 333, 334,
1687 334, 335, 336, 337, 337, 337, 338, 338, 339, 339,
1694 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1695 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
1696 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
1697 3, 3, 4, 1, 3, 3, 6, 5, 5, 5,
1698 5, 3, 3, 3, 3, 1, 3, 3, 1, 3,
1699 3, 3, 2, 1, 1, 1, 1, 1, 4, 0,
1700 5, 1, 2, 3, 4, 5, 4, 5, 2, 2,
1701 2, 2, 2, 1, 3, 1, 3, 1, 2, 3,
1702 5, 2, 4, 2, 4, 1, 3, 1, 3, 2,
1703 3, 1, 3, 1, 1, 4, 3, 3, 3, 3,
1704 2, 1, 1, 1, 4, 3, 3, 3, 3, 2,
1705 1, 1, 1, 2, 1, 3, 1, 1, 1, 1,
1706 1, 1, 1, 1, 1, 1, 0, 4, 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, 1,
1710 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1711 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1712 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1713 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
1714 5, 3, 5, 6, 5, 5, 5, 5, 4, 3,
1715 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
1716 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
1717 3, 3, 3, 3, 3, 2, 2, 3, 3, 3,
1718 3, 0, 4, 6, 1, 1, 1, 2, 4, 2,
1719 3, 1, 1, 1, 1, 2, 4, 2, 1, 2,
1720 2, 4, 1, 0, 2, 2, 2, 1, 1, 2,
1721 3, 4, 3, 4, 2, 1, 1, 1, 1, 1,
1722 1, 1, 1, 1, 1, 1, 0, 4, 0, 3,
1723 0, 0, 5, 3, 3, 2, 3, 3, 1, 4,
1724 3, 1, 0, 6, 4, 3, 2, 1, 2, 2,
1725 6, 6, 0, 0, 7, 0, 0, 7, 5, 4,
1726 0, 0, 9, 0, 6, 0, 0, 8, 0, 5,
1727 0, 6, 0, 0, 9, 1, 1, 1, 1, 1,
1728 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1729 1, 1, 1, 2, 1, 1, 1, 5, 1, 2,
1730 1, 1, 1, 3, 1, 3, 1, 4, 6, 3,
1731 5, 2, 4, 1, 3, 4, 2, 2, 1, 2,
1732 0, 6, 8, 4, 6, 4, 2, 6, 2, 4,
1733 6, 2, 4, 2, 4, 1, 1, 1, 3, 1,
1734 4, 1, 4, 1, 3, 1, 1, 0, 0, 0,
1735 5, 4, 1, 3, 3, 0, 5, 2, 4, 5,
1736 5, 2, 0, 5, 0, 5, 3, 0, 4, 0,
1737 4, 2, 1, 4, 0, 5, 0, 5, 5, 1,
1738 1, 6, 1, 1, 1, 1, 2, 1, 2, 1,
1739 1, 1, 1, 1, 1, 1, 2, 3, 3, 3,
1740 3, 3, 0, 3, 1, 2, 3, 3, 0, 3,
1741 3, 3, 3, 3, 0, 3, 0, 3, 0, 2,
1742 0, 2, 0, 2, 1, 0, 3, 0, 0, 0,
1743 6, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1744 3, 1, 1, 2, 2, 1, 1, 1, 1, 1,
1745 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1746 1, 1, 1, 1, 0, 4, 2, 3, 2, 4,
1747 2, 2, 1, 2, 0, 6, 8, 4, 6, 4,
1748 6, 2, 4, 6, 2, 4, 2, 4, 1, 0,
1749 1, 1, 1, 1, 1, 1, 1, 3, 1, 3,
1750 2, 2, 1, 3, 1, 3, 1, 1, 2, 1,
1751 3, 3, 1, 3, 1, 3, 1, 1, 2, 1,
1752 1, 1, 2, 2, 1, 1, 0, 4, 1, 2,
1753 1, 3, 3, 2, 2, 1, 1, 1, 1, 1,
1754 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
1755 1, 2, 2, 0, 1, 1, 1, 1, 1, 2,
1764 2, 0, 0, 1, 0, 347, 348, 349, 0, 340,
1765 341, 342, 345, 343, 344, 346, 335, 336, 337, 338,
1766 298, 263, 263, 511, 510, 512, 513, 609, 0, 609,
1767 10, 0, 515, 514, 516, 595, 597, 507, 506, 596,
1768 509, 501, 502, 454, 521, 522, 0, 0, 0, 0,
1769 290, 620, 620, 85, 407, 480, 478, 480, 482, 462,
1770 474, 468, 476, 0, 0, 0, 3, 607, 6, 9,
1771 33, 45, 48, 56, 263, 55, 0, 73, 0, 77,
1772 87, 0, 53, 244, 0, 286, 0, 0, 312, 315,
1773 607, 0, 0, 0, 0, 57, 307, 275, 276, 453,
1774 455, 277, 278, 279, 281, 280, 282, 451, 452, 450,
1775 517, 518, 283, 0, 284, 61, 5, 8, 168, 179,
1776 169, 192, 165, 185, 175, 174, 195, 196, 190, 173,
1777 172, 167, 193, 197, 198, 177, 166, 180, 184, 186,
1778 178, 171, 187, 194, 189, 188, 181, 191, 176, 164,
1779 183, 182, 163, 170, 161, 162, 158, 159, 160, 116,
1780 118, 117, 153, 154, 149, 131, 132, 133, 140, 137,
1781 139, 134, 135, 155, 156, 141, 142, 146, 150, 136,
1782 138, 128, 129, 130, 143, 144, 145, 147, 148, 151,
1783 152, 157, 121, 123, 125, 26, 119, 120, 122, 124,
1784 0, 0, 0, 0, 0, 0, 0, 0, 258, 0,
1785 245, 268, 71, 262, 620, 0, 517, 518, 0, 284,
1786 620, 590, 72, 70, 609, 69, 0, 620, 431, 68,
1787 609, 610, 0, 0, 21, 241, 0, 0, 335, 336,
1788 298, 301, 432, 0, 220, 0, 221, 295, 0, 19,
1789 0, 0, 607, 15, 18, 609, 75, 14, 609, 0,
1790 0, 613, 613, 246, 0, 0, 613, 588, 609, 0,
1791 0, 0, 83, 339, 0, 93, 94, 101, 309, 408,
1792 498, 497, 499, 496, 0, 495, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 503, 504, 52,
1794 235, 236, 616, 617, 4, 618, 608, 0, 0, 0,
1795 0, 0, 0, 0, 436, 434, 421, 62, 306, 415,
1796 417, 0, 89, 0, 81, 78, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 429, 620, 427, 0, 54, 0, 0,
1800 0, 0, 607, 0, 608, 0, 361, 360, 0, 0,
1801 517, 518, 284, 111, 112, 0, 0, 114, 0, 0,
1802 517, 518, 284, 328, 188, 181, 191, 176, 158, 159,
1803 160, 116, 117, 586, 330, 585, 0, 606, 605, 0,
1804 308, 456, 0, 0, 126, 593, 295, 269, 594, 265,
1805 0, 0, 0, 259, 267, 429, 620, 427, 0, 0,
1806 0, 260, 609, 0, 300, 264, 609, 254, 620, 620,
1807 253, 609, 305, 51, 23, 25, 24, 0, 302, 0,
1808 0, 0, 429, 427, 0, 17, 0, 609, 293, 13,
1809 608, 74, 289, 291, 296, 615, 614, 247, 615, 249,
1810 297, 589, 0, 100, 503, 504, 91, 86, 0, 429,
1811 620, 427, 549, 484, 487, 485, 500, 481, 457, 479,
1812 458, 459, 483, 460, 461, 0, 464, 470, 0, 471,
1813 466, 467, 0, 472, 0, 473, 0, 0, 619, 7,
1814 27, 28, 29, 30, 31, 49, 50, 620, 620, 59,
1815 63, 620, 0, 34, 43, 0, 44, 609, 0, 79,
1816 90, 47, 46, 0, 199, 268, 42, 217, 225, 230,
1817 231, 232, 227, 229, 239, 240, 233, 234, 210, 211,
1818 237, 238, 609, 226, 228, 222, 223, 224, 212, 213,
1819 214, 215, 216, 598, 600, 599, 601, 0, 263, 426,
1820 609, 598, 600, 599, 601, 0, 263, 0, 620, 352,
1821 0, 351, 0, 0, 0, 0, 0, 0, 295, 429,
1822 620, 427, 320, 325, 111, 112, 113, 0, 524, 323,
1823 523, 429, 620, 427, 0, 0, 549, 332, 598, 599,
1824 263, 35, 201, 41, 209, 0, 199, 592, 0, 270,
1825 266, 620, 598, 599, 609, 598, 599, 591, 299, 611,
1826 250, 255, 257, 304, 22, 0, 242, 0, 32, 424,
1827 422, 208, 0, 76, 16, 609, 613, 0, 84, 97,
1828 99, 609, 598, 599, 555, 552, 551, 550, 553, 0,
1829 566, 0, 577, 567, 581, 580, 576, 549, 409, 548,
1830 412, 554, 556, 558, 534, 564, 620, 569, 620, 574,
1831 534, 579, 534, 0, 532, 488, 0, 463, 465, 475,
1832 469, 477, 218, 219, 399, 609, 0, 397, 396, 0,
1833 620, 0, 274, 0, 88, 82, 0, 0, 0, 0,
1834 0, 0, 430, 66, 0, 0, 433, 0, 0, 428,
1835 64, 620, 350, 287, 620, 620, 442, 620, 353, 620,
1836 355, 313, 354, 316, 0, 0, 319, 602, 294, 609,
1837 598, 599, 0, 0, 526, 0, 0, 111, 112, 115,
1838 609, 0, 609, 549, 0, 0, 0, 252, 418, 58,
1839 251, 0, 127, 271, 261, 0, 0, 433, 0, 0,
1840 620, 609, 11, 0, 292, 248, 92, 95, 0, 560,
1841 555, 0, 373, 364, 366, 609, 362, 609, 0, 0,
1842 541, 0, 530, 584, 568, 0, 531, 0, 544, 578,
1843 0, 546, 582, 489, 491, 492, 493, 486, 494, 555,
1844 0, 395, 609, 0, 380, 562, 620, 620, 572, 380,
1845 380, 378, 401, 0, 0, 0, 0, 0, 272, 80,
1846 200, 0, 40, 206, 39, 207, 67, 425, 612, 0,
1847 37, 204, 38, 205, 65, 423, 443, 444, 620, 445,
1848 0, 620, 358, 0, 0, 356, 0, 0, 0, 318,
1849 0, 0, 433, 0, 326, 0, 0, 433, 329, 587,
1850 609, 0, 528, 333, 419, 420, 202, 0, 256, 303,
1851 20, 570, 609, 0, 371, 0, 557, 0, 0, 0,
1852 410, 533, 559, 534, 534, 565, 620, 583, 534, 575,
1853 534, 534, 0, 0, 0, 561, 0, 398, 386, 388,
1854 0, 376, 377, 0, 391, 0, 393, 0, 437, 435,
1855 0, 416, 273, 243, 36, 203, 0, 0, 447, 359,
1856 0, 12, 449, 0, 310, 311, 0, 0, 270, 620,
1857 321, 0, 525, 324, 527, 331, 549, 363, 374, 0,
1858 369, 365, 411, 0, 0, 0, 537, 0, 539, 529,
1859 0, 545, 0, 542, 547, 0, 571, 295, 429, 400,
1860 379, 380, 380, 563, 620, 380, 573, 380, 380, 405,
1861 609, 403, 406, 60, 0, 446, 0, 102, 103, 110,
1862 0, 448, 0, 314, 317, 439, 440, 438, 0, 0,
1863 0, 0, 372, 0, 367, 414, 413, 534, 534, 534,
1864 534, 490, 602, 294, 0, 383, 0, 385, 375, 0,
1865 392, 0, 389, 394, 0, 402, 109, 429, 620, 427,
1866 620, 620, 0, 327, 0, 370, 0, 538, 0, 535,
1867 540, 543, 380, 380, 380, 380, 404, 602, 108, 609,
1868 598, 599, 441, 357, 322, 334, 368, 534, 384, 0,
1869 381, 387, 390, 433, 536, 380, 382
1875 -1, 1, 2, 66, 67, 68, 236, 567, 568, 252,
1876 253, 446, 254, 437, 70, 71, 358, 72, 73, 510,
1877 690, 243, 75, 76, 255, 77, 78, 79, 467, 80,
1878 209, 377, 378, 192, 193, 194, 195, 605, 556, 197,
1879 82, 439, 211, 260, 228, 748, 426, 427, 225, 226,
1880 213, 413, 428, 516, 83, 356, 258, 259, 635, 625,
1881 360, 847, 361, 848, 732, 988, 736, 733, 931, 594,
1882 596, 746, 936, 245, 85, 86, 87, 88, 89, 90,
1883 91, 92, 93, 94, 713, 570, 721, 844, 845, 369,
1884 773, 774, 775, 960, 899, 802, 686, 687, 803, 970,
1885 971, 278, 279, 472, 778, 658, 880, 320, 511, 95,
1886 96, 711, 704, 565, 557, 318, 508, 507, 577, 987,
1887 715, 838, 917, 921, 97, 98, 99, 100, 101, 102,
1888 103, 290, 485, 104, 294, 105, 106, 292, 296, 286,
1889 284, 288, 477, 676, 675, 793, 892, 797, 107, 285,
1890 108, 109, 216, 217, 112, 218, 219, 589, 735, 744,
1891 881, 780, 745, 661, 662, 663, 664, 665, 805, 806,
1892 666, 667, 668, 669, 808, 809, 670, 671, 672, 673,
1893 674, 782, 396, 595, 265, 429, 221, 115, 629, 559,
1894 399, 304, 423, 424, 706, 457, 571, 364, 257
1899 #define YYPACT_NINF -808
1902 -808, 134, 2562, -808, 7195, -808, -808, -808, 6718, -808,
1903 -808, -808, -808, -808, -808, -808, 7308, 7308, -808, -808,
1904 7308, 3884, 3479, -808, -808, -808, -808, 455, 6585, 17,
1905 -808, 60, -808, -808, -808, 2804, 3614, -808, -808, 2939,
1906 -808, -808, -808, -808, -808, -808, 8664, 8664, 140, 4955,
1907 462, 7647, 7986, 6977, -808, 6452, -808, -808, -808, 103,
1908 115, 126, 206, 117, 8777, 8664, -808, -25, -808, 1007,
1909 -808, 322, -808, -808, 141, 372, 352, -808, 337, 9003,
1910 -808, 379, 2918, 247, 278, -808, 8890, 8890, -808, -808,
1911 5842, 9112, 9221, 9330, 6318, 33, 65, -808, -808, 410,
1912 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1913 205, 409, -808, 441, 433, -808, -808, -808, -808, -808,
1914 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1915 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1916 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1917 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1918 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1919 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1920 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1921 -808, -808, -808, -808, -808, 396, -808, -808, -808, -808,
1922 427, 8664, 519, 5094, 8664, 8664, 8664, 8664, -808, 468,
1923 2918, 500, -808, -808, 463, 304, 22, 344, 517, 363,
1924 479, -808, -808, -808, 5729, -808, 7308, 7308, -808, -808,
1925 5955, -808, 8890, 498, -808, 482, 491, 5233, -808, -808,
1926 -808, 497, 499, 141, -808, 361, 570, 458, 7421, -808,
1927 4955, 505, -25, -808, 1007, 17, 538, -808, 17, 8890,
1928 515, 188, 318, -808, 500, 523, 318, -808, 17, 617,
1929 338, 9439, 540, -808, 474, 572, 613, 674, -808, -808,
1930 -808, -808, -808, -808, 522, -808, 601, 669, 284, 576,
1931 752, 577, 58, 582, 759, 584, 68, 609, 612, -808,
1932 -808, -808, -808, -808, -808, -808, 6068, 8890, 8890, 8890,
1933 8890, 7421, 8890, 8890, -808, -808, -808, 588, -808, -808,
1934 -808, 8099, -808, 4955, 7086, 561, 8099, 8664, 8664, 8664,
1935 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664,
1936 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664,
1937 8664, 8664, 8664, 2012, 7308, 9718, 4312, 322, 109, 109,
1938 8890, 8890, -25, 689, 563, 651, -808, -808, 685, 691,
1939 53, 57, 100, 328, 393, 8890, 568, -808, 199, 708,
1940 -808, -808, -808, -808, 55, 223, 249, 279, 283, 301,
1941 316, 384, 417, -808, -808, -808, 33, -808, -808, 9795,
1942 -808, -808, 8777, 8777, -808, -808, 414, -808, -808, -808,
1943 8664, 8664, 7534, -808, -808, 9872, 7308, 9949, 8664, 8664,
1944 7760, -808, 17, 595, -808, -808, 17, -808, 580, 599,
1945 -808, 61, -808, -808, -808, -808, -808, 6718, -808, 8664,
1946 5364, 604, 9872, 9949, 8664, 1007, 607, 17, -808, -808,
1947 6181, 618, -808, 322, -808, 7873, -808, -808, 7986, -808,
1948 -808, -808, 482, 769, -808, -808, -808, 622, 9439, 10026,
1949 7308, 10103, 1417, -808, -808, -808, -808, -808, -808, -808,
1950 -808, -808, -808, -808, -808, 244, -808, -808, 611, -808,
1951 -808, -808, 347, -808, 623, -808, 8664, 8664, -808, -808,
1952 -808, -808, -808, -808, -808, -808, -808, 51, 51, -808,
1953 -808, 51, 8664, -808, 628, 634, -808, 17, 9439, 655,
1954 -808, -808, -808, 678, 1866, -808, -808, 570, 2240, 2240,
1955 2240, 2240, 727, 727, 3323, 3188, 2240, 2240, 3053, 3053,
1956 415, 415, 1674, 727, 727, 907, 907, 660, 40, 40,
1957 570, 570, 570, 4019, 3074, 4154, 3209, 499, 661, -808,
1958 17, 535, -808, 688, -808, 499, 3749, 737, 790, -808,
1959 4451, 799, 4729, 66, 66, 689, 8212, 737, 147, 10180,
1960 7308, 10257, -808, 322, -808, 769, -808, -25, -808, -808,
1961 -808, 10334, 7308, 9795, 4312, 8890, 1538, -808, -808, -808,
1962 4173, -808, 2648, -808, 2918, 6718, 2783, -808, 8664, 500,
1963 -808, 479, 2669, 3344, 17, 420, 444, -808, -808, -808,
1964 -808, 7534, 7760, -808, -808, 8890, 2918, 672, -808, -808,
1965 -808, 2918, 5364, 2, -808, 17, 318, 9439, 622, 701,
1966 469, 17, 207, 224, 711, -808, -808, -808, -808, 8664,
1967 -808, 947, -808, -808, -808, -808, -808, 1789, -808, -808,
1968 -808, -808, -808, -808, 680, -808, 687, 773, 694, -808,
1969 698, 783, 704, 791, -808, -808, 834, -808, -808, -808,
1970 -808, -808, 570, 570, -808, 1322, 5503, -808, -808, 5233,
1971 51, 5503, 721, 8325, -808, 622, 9439, 8777, 8664, 741,
1972 8777, 8777, -808, 588, 499, 722, 818, 8777, 8777, -808,
1973 588, 499, -808, -808, 8438, 827, -808, 597, -808, 827,
1974 -808, -808, -808, -808, 737, 70, -808, 67, 136, 17,
1975 148, 149, 8890, -25, -808, 8890, 4312, 701, 469, -808,
1976 17, 737, 61, 1789, 4312, -25, 6851, -808, 65, 372,
1977 -808, 8664, -808, -808, -808, 8664, 8664, 466, 8664, 8664,
1978 731, 61, -808, 736, -808, -808, -808, 567, 8664, -808,
1979 -808, 947, 350, -808, 738, 17, -808, 17, 72, 1789,
1980 -808, 42, -808, -808, -808, 272, -808, 1789, -808, -808,
1981 892, -808, -808, -808, -808, -808, -808, -808, -808, 762,
1982 9548, -808, 17, 764, 746, -808, 751, 694, -808, 758,
1983 760, -808, 761, 893, 775, 5233, 899, 8664, 776, 622,
1984 2918, 8664, -808, 2918, -808, 2918, -808, -808, -808, 8777,
1985 -808, 2918, -808, 2918, -808, -808, 628, -808, 826, -808,
1986 4842, 909, -808, 8890, 737, -808, 737, 5503, 5503, -808,
1987 8551, 4590, 155, 66, -808, -25, 737, -808, -808, -808,
1988 17, 737, -808, -808, -808, -808, 2918, 8664, 7760, -808,
1989 -808, -808, 17, 1011, 789, 1003, -808, 793, 5503, 5233,
1990 -808, -808, -808, 798, 803, -808, 694, -808, 804, -808,
1991 811, 804, 5616, 9548, 877, 792, 808, -808, 1910, -808,
1992 490, -808, -808, 1910, -808, 1368, -808, 1032, -808, -808,
1993 820, -808, 819, 2918, -808, 2918, 9657, 109, -808, -808,
1994 5503, -808, -808, 109, -808, -808, 737, 737, -808, 130,
1995 -808, 4312, -808, -808, -808, -808, 1538, -808, 821, 1011,
1996 434, -808, -808, 944, 832, 1789, -808, 892, -808, -808,
1997 892, -808, 892, -808, -808, 850, 792, -808, 10411, -808,
1998 -808, 830, 831, -808, 694, 835, -808, 837, 835, -808,
1999 443, -808, -808, -808, 910, -808, 796, 572, 613, 674,
2000 4312, -808, 4451, -808, -808, -808, -808, -808, 5503, 737,
2001 4312, 1011, 821, 1011, 838, -808, -808, 804, 839, 804,
2002 804, -808, 840, 841, 1910, -808, 1368, -808, -808, 1368,
2003 -808, 1368, -808, -808, 1032, -808, 769, 10488, 7308, 10565,
2004 790, 597, 737, -808, 737, 821, 1011, -808, 892, -808,
2005 -808, -808, 835, 844, 835, 835, -808, 74, 469, 17,
2006 146, 158, -808, -808, -808, -808, 821, 804, -808, 1368,
2007 -808, -808, -808, 176, -808, 835, -808
2013 -808, -808, -808, -363, -808, 27, -808, -550, -21, -808,
2014 518, -808, 15, -808, -301, -51, -86, 41, -808, -268,
2015 -808, 413, -7, 888, -153, -4, -73, -808, -416, 7,
2016 1571, -315, 889, -53, -808, -5, -808, -808, 98, -808,
2017 870, -808, 735, -808, -44, 275, -340, 87, -11, -808,
2018 -386, -188, 4, -311, -20, -808, -808, -808, -808, -808,
2019 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
2020 -808, -808, -808, 64, -808, -808, -808, -808, -808, -808,
2021 -808, -808, -808, -808, 154, -347, -526, -34, -645, -808,
2022 -785, -779, 221, 309, 374, -808, -446, -808, -665, -808,
2023 -18, -808, -808, -808, -808, -808, -808, 248, -808, -808,
2024 -808, -808, -808, -808, -808, -93, -808, -808, -535, -808,
2025 -6, -808, -808, -808, -808, -808, -808, 918, -808, -808,
2026 -808, -808, 712, -808, -808, -808, -808, -808, -808, -808,
2027 963, -808, -142, -808, -808, -808, -808, -808, 10, -808,
2028 14, -808, 1081, 1361, 928, 1531, 1552, -808, -808, 89,
2029 -464, -372, -415, -783, -518, -723, 234, 242, 133, -808,
2030 -808, -808, 289, -708, -807, 128, 255, -808, -638, -808,
2031 228, -622, -808, -808, -808, 69, -383, -808, -348, -808,
2032 639, -26, 0, 48, -598, -208, 21, -14, -2
2038 #define YYTABLE_NINF -621
2041 116, 359, 283, 400, 362, 558, 325, 566, 659, 208,
2042 208, 229, 572, 208, 560, 526, 757, 69, 198, 69,
2043 214, 214, 199, 234, 214, 521, 610, 232, 251, 235,
2044 316, 117, 421, 273, 610, 357, 357, 617, 198, 357,
2045 724, 394, 199, 767, 741, 256, 786, 810, 723, 263,
2046 267, 600, 638, 306, 459, 261, 882, 660, 461, 273,
2047 272, 586, 689, 317, 363, 691, 84, 558, 84, 566,
2048 841, 273, 273, 273, 846, 617, 614, 627, -102, 889,
2049 215, 215, -103, 569, 215, 220, 220, -106, 305, 220,
2050 941, 314, -106, 720, 938, 630, 966, 447, 312, 313,
2051 649, 878, 695, 212, 222, 299, 196, 223, 327, -519,
2052 650, 305, 877, 84, 302, -74, 303, 274, 397, 488,
2053 262, 266, 569, 630, 972, -110, 196, 684, 215, 494,
2054 641, 852, 659, 776, 3, -102, -88, 896, 653, 654,
2055 -511, 884, 857, 274, 479, 840, 482, 576, 486, 890,
2056 215, 215, 486, 196, 215, 368, 379, 379, 231, -105,
2057 992, -108, 655, 350, 351, 352, 398, 314, 489, 685,
2058 517, -107, -109, -105, -107, 882, 297, 298, 495, 431,
2059 -104, 433, 251, 879, 901, 902, 856, -93, -511, -104,
2060 237, -94, 196, 659, 861, 315, 247, 966, 466, 316,
2061 587, -97, 231, -598, 850, 302, 941, 303, 453, 302,
2062 -598, 303, 414, -106, 1025, -106, 441, 208, 414, 208,
2063 208, 500, 501, 502, 503, 430, 449, 882, 214, 251,
2064 214, 972, -96, 630, -101, 610, 610, 889, 450, 617,
2065 729, 421, 777, 289, 815, 630, 256, 1046, 302, -98,
2066 303, 273, 740, 776, 874, 291, 357, 357, 357, 357,
2067 962, 505, 506, 445, 949, 967, 293, 84, 462, 763,
2068 -99, 315, -599, 305, 573, 574, 739, 227, 432, 659,
2069 819, -100, -96, -98, 985, -105, 882, -105, 215, -95,
2070 215, 215, -519, 220, 215, 220, 215, -107, 788, -107,
2071 791, 84, 251, 451, 273, 473, 452, 998, -510, 357,
2072 357, 422, 84, 425, 84, -104, 588, -104, -102, 256,
2073 -96, 69, 455, 215, 583, 515, 504, 930, 860, 456,
2074 515, 519, -339, 499, -512, 274, 575, -98, 302, -93,
2075 303, -96, 1008, 678, -96, 473, 295, 208, -96, 481,
2076 678, 474, 430, 475, -595, 776, -510, 776, -98, 312,
2077 313, -98, 513, 353, -513, -98, 1033, 522, -515, 654,
2078 84, 215, 215, 215, 215, 84, 215, 215, 851, -339,
2079 -339, 989, -512, 305, 677, 215, -514, 84, 274, 415,
2080 215, 474, 655, 475, 986, 466, 521, 464, 465, 590,
2081 319, -516, 770, 837, 645, 646, 647, 648, 473, 208,
2082 354, 355, -513, -505, 430, 74, -515, 74, 215, -596,
2083 84, 776, 994, 754, 215, 215, 414, 414, 765, 74,
2084 74, -520, 624, 74, -514, 826, 416, 417, 116, 215,
2085 1024, 1053, 834, 601, 603, 466, 442, 198, 273, -516,
2086 419, 199, 458, 564, 474, 69, 475, -103, -595, 456,
2087 -505, -505, 74, 208, -595, 321, 215, 215, 430, -505,
2088 618, 322, 659, 776, 620, 776, -110, 74, -508, 623,
2089 215, 611, 610, 327, 873, 617, 770, 680, 645, 646,
2090 647, 648, 326, 416, 443, 633, -520, 564, 273, 74,
2091 74, 444, -508, 74, 84, 688, 688, 758, 776, 688,
2092 56, 946, 948, 702, 84, 564, 951, -505, 953, 954,
2093 403, 709, -103, -596, 636, -508, -508, -109, 402, -596,
2094 404, 759, 274, -105, 215, 196, 348, 349, 350, 351,
2095 352, 564, 699, -94, 742, 444, -110, 703, 800, 717,
2096 -508, 719, 434, 867, -294, 710, 747, -107, 650, 469,
2097 705, 435, 436, 230, 766, 694, 716, -101, 993, 564,
2098 980, -109, 754, 208, 761, 406, 982, 1014, 430, -104,
2099 725, 410, 274, 473, 231, 208, 653, 654, 411, 749,
2100 430, 230, -100, -433, 722, 722, 231, 412, 750, -288,
2101 752, -294, -294, -288, 418, -599, 470, 471, 734, 414,
2102 655, 843, 840, 420, 705, 198, 74, 273, 438, 199,
2103 584, 440, 707, 466, 585, 1027, 1029, 1030, 1031, 474,
2104 116, 475, 476, 224, 84, 227, 84, 74, 327, 74,
2105 74, 705, 448, 74, 215, 74, 853, 69, -105, 855,
2106 74, -73, -433, 454, 460, 864, 215, -517, 84, 215,
2107 827, 74, 473, 74, 783, 813, 783, 747, 814, -96,
2108 816, 630, 74, 463, 468, 1054, 273, 496, 1039, 564,
2109 497, 357, 509, 764, 357, 812, 483, 487, 688, 215,
2110 760, 564, 490, 863, 493, 520, 84, -433, -518, -433,
2111 -433, 274, 498, 196, -517, -517, 576, 578, 474, 750,
2112 475, 478, 839, 842, 621, 842, 582, 842, 515, 74,
2113 74, 74, 74, 74, 74, 74, 74, -602, 327, 705,
2114 473, 726, 619, 622, 74, 628, 74, 632, 522, 74,
2115 705, 822, 824, 340, 341, -518, -518, 712, 830, 832,
2116 84, 679, -88, 84, 854, 84, 637, 923, 414, -284,
2117 274, 215, -268, 681, 215, 215, 862, 74, 693, 74,
2118 579, 215, 215, 74, 74, 708, 474, 812, 475, 480,
2119 273, 348, 349, 350, 351, 352, -602, 264, 74, 696,
2120 859, 697, 357, 591, 910, 327, 215, -424, 714, 215,
2121 84, -107, 812, 762, 783, 783, -284, -284, 84, 869,
2122 340, 341, 718, 473, 779, 74, 74, 580, 581, 919,
2123 473, 781, -98, 876, 768, 784, 926, 927, 785, 74,
2124 929, -602, 787, -602, -602, 789, 918, -598, 790, 922,
2125 592, 593, 840, 792, 196, 345, 346, 347, 348, 349,
2126 350, 351, 352, 74, -295, -269, 821, 943, 944, 474,
2127 828, 475, 484, 74, 895, 868, 474, 870, 475, 491,
2128 914, 955, 875, 273, 722, 893, 932, 958, 849, 84,
2129 898, 1017, 897, 74, 783, 900, 210, 210, 794, 795,
2130 210, 796, 903, 215, 905, 858, 273, 44, 45, 981,
2131 907, -295, -295, 908, 84, 829, 909, 215, 934, 911,
2132 -270, 84, 84, 811, 916, 84, 244, 246, 920, 804,
2133 937, 210, 210, 939, 592, 593, 959, 842, 1018, 1019,
2134 942, -104, 945, 957, 300, 301, 405, 947, 950, 407,
2135 408, 409, 84, 84, 770, 952, 645, 646, 647, 648,
2136 649, 973, -95, -271, 995, 991, 84, 956, 1001, 1020,
2137 650, 1021, 783, 996, 1004, 1006, 1016, 1022, 634, 1009,
2138 1015, 1011, 1026, 1028, 807, 327, -598, -599, 1049, 366,
2139 976, 651, 383, 74, 84, 74, 835, 1043, 653, 654,
2140 340, 341, 872, 74, 801, 84, 1036, 865, 924, 770,
2141 925, 645, 646, 647, 648, 74, 492, 74, 74, 887,
2142 933, 208, 655, 887, 1042, 935, 430, 401, 716, 842,
2143 287, 888, 395, 885, 891, 990, 961, 347, 348, 349,
2144 350, 351, 352, 963, 883, 597, 771, 0, 74, 705,
2145 0, 0, 772, 0, 84, 74, 84, 307, 308, 309,
2146 310, 311, 84, 0, 84, 770, 514, 645, 646, 647,
2147 648, 525, 0, 770, 0, 645, 646, 647, 648, 0,
2148 886, 210, 0, 0, 210, 210, 210, 300, 0, 0,
2149 983, 984, 215, 110, 969, 110, 645, 646, 647, 648,
2150 0, 0, 771, 0, 210, 0, 210, 210, 940, 74,
2151 771, 0, 74, 0, 74, 0, 0, 0, 0, 0,
2152 74, 0, 0, 74, 74, 0, 0, 564, 0, 0,
2153 74, 74, 0, 0, 0, 0, 811, 0, 887, 0,
2154 110, 811, 0, 811, 275, 0, 0, 965, 0, 968,
2155 0, 0, 0, 1023, 0, 74, 607, 609, 74, 74,
2156 0, 0, 0, 0, 0, 264, 0, 74, 0, 0,
2157 275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2158 0, 0, 370, 380, 380, 380, 1044, 0, 1045, 997,
2159 0, 999, 0, 904, 906, 0, 1000, 807, 0, 964,
2160 609, 210, 807, 264, 807, 0, 524, 527, 528, 529,
2161 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
2162 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
2163 550, 551, 552, 0, 210, 0, 0, 0, 74, 0,
2164 0, 0, 811, 0, 811, 0, 0, 811, 1032, 811,
2165 1034, 0, 74, 0, 0, 1035, 0, 692, 0, 0,
2166 0, 0, 0, 74, 0, 0, 74, 0, 0, 0,
2167 74, 74, 1047, 0, 74, 0, 0, 0, 0, 0,
2168 0, 0, 602, 604, 0, 0, 0, 811, 0, 0,
2169 606, 210, 210, 1055, 110, 0, 210, 0, 602, 604,
2170 210, 74, 74, 807, 0, 807, 0, 0, 807, 0,
2171 807, 0, 0, 0, 0, 74, 0, 0, 0, 626,
2172 0, 525, 0, 0, 631, 0, 0, 0, 110, 0,
2173 0, 0, 0, 0, 0, 210, 0, 0, 210, 110,
2174 0, 110, 0, 74, 0, 1005, 1007, 0, 807, 1010,
2175 210, 1012, 1013, 753, 74, 0, 0, 0, 0, 0,
2176 0, 0, 275, 0, 0, 0, 609, 264, 0, 0,
2177 0, 0, 0, 111, 0, 111, 682, 683, 0, 0,
2178 0, 0, 0, 0, 799, 0, 645, 646, 647, 648,
2179 800, 0, 210, 0, 769, 0, 0, 110, 0, 0,
2180 650, 0, 110, 74, 0, 74, 0, 0, 0, 0,
2181 0, 74, 0, 74, 110, 275, 1048, 1050, 1051, 1052,
2182 111, 651, 0, 0, 276, 0, 0, 652, 653, 654,
2183 770, 0, 645, 646, 647, 648, 800, 0, 818, 1056,
2184 0, 74, 0, 0, 0, 0, 650, 110, 0, 0,
2185 276, 0, 655, 0, 0, 656, 210, 0, 0, 836,
2186 210, 0, 371, 381, 381, 381, 0, 651, 0, 0,
2187 0, 0, 210, 231, 653, 654, 0, 0, 0, 644,
2188 0, 645, 646, 647, 648, 649, 0, 0, 210, 0,
2189 0, 0, 0, 0, 0, 650, 0, 0, 655, 0,
2190 0, 210, 210, 0, 0, 0, 0, 0, 0, 0,
2191 0, 0, 0, 871, 0, 0, 651, 0, 0, 0,
2192 0, 0, 652, 653, 654, 0, 0, 0, 0, 210,
2193 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
2194 0, 110, 0, 113, 0, 113, 0, 655, 0, 0,
2195 656, 0, 0, 0, 0, 0, 0, 0, 0, 275,
2196 0, 0, 912, 657, 114, 0, 114, 0, 0, 0,
2197 0, 0, 0, 210, 111, 0, 0, 606, 820, 0,
2198 823, 825, 0, 81, 0, 81, 0, 831, 833, 0,
2199 113, 0, 0, 0, 210, 928, 0, 0, 0, 0,
2200 644, 0, 645, 646, 647, 648, 649, 0, 111, 275,
2201 0, 114, 0, 264, 0, 277, 650, 0, 0, 111,
2202 0, 111, 0, 0, 0, 0, 0, 0, 0, 0,
2203 81, 866, 0, 0, 0, 823, 825, 651, 831, 833,
2204 0, 277, 276, 652, 653, 654, 0, 0, 210, 0,
2205 0, 0, 0, 372, 382, 382, 0, 0, 0, 0,
2206 0, 110, 0, 110, 0, 0, 0, 0, 655, 0,
2207 0, 656, 367, 0, 0, 0, 0, 111, 0, 0,
2208 0, 0, 111, 0, 743, 110, 0, 0, 0, 0,
2209 0, 0, 0, 0, 111, 276, 0, 210, 0, 0,
2210 0, 913, 0, 0, 0, 0, 0, 0, 0, 915,
2211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2212 0, 0, 0, 110, 0, 0, 0, 111, 275, 0,
2213 210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2214 0, 0, 0, 0, 113, 0, 0, 915, 210, 0,
2215 0, 0, 327, 328, 329, 330, 331, 332, 333, 334,
2216 335, 336, 337, 338, 339, 114, 0, 340, 341, 0,
2217 0, 0, 0, 0, 0, 0, 0, 110, 113, 0,
2218 110, 0, 110, 0, 81, 0, 0, 275, 0, 113,
2219 0, 113, 0, 0, 0, 0, 0, 0, 342, 114,
2220 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2221 114, 111, 114, 0, 0, 0, 0, 0, 81, 0,
2222 0, 111, 0, 0, 0, 231, 0, 110, 0, 81,
2223 0, 81, 0, 277, 0, 110, 0, 0, 0, 276,
2224 0, 0, 0, 0, 0, 0, 0, 113, 0, 0,
2225 0, 644, 113, 645, 646, 647, 648, 649, 0, 0,
2226 0, 0, 0, 0, 113, 0, 0, 650, 114, 0,
2227 0, 0, 0, 114, 0, 0, 0, 0, 0, 0,
2228 0, 0, 0, 0, 0, 114, 277, 81, 651, 276,
2229 0, 380, 81, 0, 652, 653, 654, 113, 210, 0,
2230 0, 0, 0, 0, 81, 0, 110, 523, 0, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 114, 655,
2232 698, 0, 656, 0, 0, 0, 0, 0, 0, 0,
2233 0, 110, 0, 0, 0, 0, 0, 81, 110, 110,
2234 0, 111, 110, 111, 327, 328, 329, 330, 331, 332,
2235 333, 334, 335, 336, 337, 338, 339, 0, 0, 340,
2236 341, 0, 0, 0, 0, 111, 0, 0, 0, 110,
2237 110, 0, 799, 0, 645, 646, 647, 648, 800, 0,
2238 0, 113, 0, 110, 380, 0, 0, 0, 650, 0,
2239 342, 113, 343, 344, 345, 346, 347, 348, 349, 350,
2240 351, 352, 114, 111, 0, 0, 0, 977, 276, 651,
2241 -245, 110, 114, 0, 0, 652, 653, 654, 0, 0,
2242 0, 81, 110, 0, 0, 0, 0, 0, 0, 0,
2243 277, 81, 0, 0, 0, 0, 0, 0, 0, 0,
2244 655, 0, 0, 656, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 111, 0, 0,
2246 111, 0, 111, 0, 0, 0, 0, 276, 0, 0,
2247 0, 110, 0, 110, 553, 554, 0, 0, 555, 110,
2248 277, 110, 0, 0, 0, 0, 0, 0, 162, 163,
2249 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
2250 172, 0, 0, 173, 174, 175, 176, 111, 0, 0,
2251 0, 113, 0, 113, 0, 111, 0, 177, 178, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 114, 0, 114, 113, 0, 0, 179, 180,
2254 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
2255 190, 81, 0, 81, 0, 0, 114, 191, 0, 0,
2256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2257 0, 381, 0, 113, 0, 81, 0, 0, 0, 0,
2258 0, 0, 0, 0, 0, 0, 111, 0, 0, 0,
2259 0, 0, 0, 0, 114, 0, 0, 0, 0, 277,
2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2261 0, 111, 0, 81, 0, 0, 0, 0, 111, 111,
2262 0, 0, 111, 0, 0, 0, 0, 113, 0, 0,
2263 113, 0, 113, 0, 0, 0, 0, 0, 798, 0,
2264 0, 0, 0, 0, 0, 0, 0, 0, 114, 111,
2265 111, 114, 0, 114, 0, 0, 0, 0, 277, 0,
2266 0, 0, 0, 111, 381, 0, 0, 81, 0, 0,
2267 81, 0, 81, 0, 0, 0, 0, 113, 523, 0,
2268 0, 0, 0, 0, 0, 113, 0, 978, 0, 0,
2269 0, 111, 0, 0, 0, 0, 0, 0, 114, 0,
2270 0, 0, 111, 0, 0, 0, 114, 0, 0, 0,
2271 0, 0, 0, 0, 0, 0, 0, 81, 327, -621,
2272 -621, -621, -621, 332, 333, 81, 0, -621, -621, 0,
2273 0, 0, 0, 340, 341, 0, 0, 0, 0, 0,
2274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2275 0, 111, 0, 111, 0, 0, 113, 0, 0, 111,
2276 0, 111, 382, 0, 0, 0, 343, 344, 345, 346,
2277 347, 348, 349, 350, 351, 352, 0, 114, 0, 0,
2278 0, 113, 0, 0, 0, 0, 0, 0, 113, 113,
2279 0, 0, 113, 0, 0, 0, 81, 0, 0, 0,
2280 0, 0, 114, 0, 0, 0, 0, 0, 0, 114,
2281 114, 0, 0, 114, 0, 0, 0, 0, 0, 113,
2282 113, 81, 0, 0, 0, 0, 0, 0, 81, 81,
2283 0, 0, 81, 113, 0, 0, 0, 0, 0, 0,
2284 114, 114, 0, 0, 0, 0, 0, 0, 0, 0,
2285 0, 0, 0, 0, 114, 382, 0, 0, 0, 81,
2286 81, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2287 0, 0, 113, 81, 0, 0, 0, 0, 979, 0,
2288 0, 0, 114, 0, 0, 0, 0, 0, 0, 0,
2289 0, 0, 0, 114, 0, 0, 0, 975, 0, 0,
2290 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
2291 0, 0, 81, 0, 0, 0, 0, 0, 0, 0,
2292 0, 113, 0, 113, 0, 0, 0, 0, 0, 113,
2293 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2294 0, 0, 114, 0, 114, 0, 0, 0, 0, 0,
2295 114, 0, 114, 0, 0, 0, 0, 0, 0, 0,
2296 0, 81, 0, 81, 0, 0, 0, 0, 0, 81,
2297 0, 81, -620, 4, 0, 5, 6, 7, 8, 9,
2298 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2299 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2300 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2301 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2302 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2303 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2305 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2306 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2307 54, 55, 56, 57, 58, 59, 60, 61, 62, -602,
2308 0, 0, 0, 0, 0, 0, 0, -602, -602, -602,
2309 0, 0, -602, -602, -602, 0, -602, 0, 63, 64,
2310 65, 0, 751, 0, 0, -602, -602, -602, -602, 0,
2311 0, -620, 0, -620, 0, 0, -602, -602, 0, -602,
2312 -602, -602, -602, -602, 0, 0, 327, 328, 329, 330,
2313 331, 332, 333, 334, 335, 336, 337, 338, 339, 0,
2314 0, 340, 341, 0, 0, 0, 0, -602, -602, -602,
2315 -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
2316 0, 0, -602, -602, -602, 0, 755, -602, 0, 0,
2317 0, 0, 342, -602, 343, 344, 345, 346, 347, 348,
2318 349, 350, 351, 352, 0, 0, 0, -602, 0, 0,
2319 -602, 0, -106, -602, -602, -602, -602, -602, -602, -602,
2320 -602, -602, -602, -602, -602, 0, 0, 0, 0, -602,
2321 -602, -602, -602, -602, -505, 0, -602, -602, -602, 0,
2322 -602, 0, -505, -505, -505, 0, 0, -505, -505, -505,
2323 0, -505, 0, 0, 0, 0, 0, 698, 0, -505,
2324 0, -505, -505, -505, 0, 0, 0, 0, 0, 0,
2325 0, -505, -505, 0, -505, -505, -505, -505, -505, 0,
2326 0, 327, 328, 329, 330, 331, 332, 333, 334, 335,
2327 336, 337, 338, 339, 0, 0, 340, 341, 0, 0,
2328 0, 0, -505, -505, -505, -505, -505, -505, -505, -505,
2329 -505, -505, -505, -505, -505, 0, 0, -505, -505, -505,
2330 0, -505, -505, 0, 0, 0, 0, 342, -505, 343,
2331 344, 345, 346, 347, 348, 349, 350, 351, 352, 0,
2332 0, 0, -505, 0, 0, -505, 0, -505, -505, -505,
2333 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
2334 0, 0, 0, 0, 0, -505, -505, -505, -505, -508,
2335 0, -505, -505, -505, 0, -505, 0, -508, -508, -508,
2336 0, 0, -508, -508, -508, 0, -508, 0, 0, 0,
2337 0, 0, 0, 0, -508, 0, -508, -508, -508, 0,
2338 0, 0, 0, 0, 0, 0, -508, -508, 0, -508,
2339 -508, -508, -508, -508, 0, 0, 327, 328, 329, 330,
2340 331, 332, 333, 334, 335, 336, 337, 338, 339, 0,
2341 0, 340, 341, 0, 0, 0, 0, -508, -508, -508,
2342 -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
2343 0, 0, -508, -508, -508, 0, -508, -508, 0, 0,
2344 0, 0, 342, -508, 343, 344, 345, 346, 347, 348,
2345 349, 350, 351, 352, 0, 0, 0, -508, 0, 0,
2346 -508, 0, -508, -508, -508, -508, -508, -508, -508, -508,
2347 -508, -508, -508, -508, -508, 0, 0, 0, 0, 0,
2348 -508, -508, -508, -508, -603, 0, -508, -508, -508, 0,
2349 -508, 0, -603, -603, -603, 0, 0, -603, -603, -603,
2350 0, -603, 0, 0, 0, 0, 0, 0, 0, 0,
2351 -603, -603, -603, -603, 0, 0, 0, 0, 0, 0,
2352 0, -603, -603, 0, -603, -603, -603, -603, -603, 0,
2353 0, 327, 328, 329, 330, 331, 332, 333, 334, 335,
2354 336, 337, -621, -621, 0, 0, 340, 341, 0, 0,
2355 0, 0, -603, -603, -603, -603, -603, -603, -603, -603,
2356 -603, -603, -603, -603, -603, 0, 0, -603, -603, -603,
2357 0, 0, -603, 0, 0, 0, 0, 0, -603, 343,
2358 344, 345, 346, 347, 348, 349, 350, 351, 352, 0,
2359 0, 0, -603, 0, 0, -603, 0, 0, -603, -603,
2360 -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
2361 0, 0, 0, 0, -603, -603, -603, -603, -603, -604,
2362 0, -603, -603, -603, 0, -603, 0, -604, -604, -604,
2363 0, 0, -604, -604, -604, 0, -604, 0, 0, 0,
2364 0, 0, 0, 0, 0, -604, -604, -604, -604, 0,
2365 0, 0, 0, 0, 0, 0, -604, -604, 0, -604,
2366 -604, -604, -604, -604, 0, 0, 327, 328, 329, 330,
2367 331, 332, 333, 334, 0, 336, 337, 0, 0, 0,
2368 0, 340, 341, 0, 0, 0, 0, -604, -604, -604,
2369 -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
2370 0, 0, -604, -604, -604, 0, 0, -604, 0, 0,
2371 0, 0, 0, -604, 343, 344, 345, 346, 347, 348,
2372 349, 350, 351, 352, 0, 0, 0, -604, 0, 0,
2373 -604, 0, 0, -604, -604, -604, -604, -604, -604, -604,
2374 -604, -604, -604, -604, -604, 0, 0, 0, 0, -604,
2375 -604, -604, -604, -604, -294, 0, -604, -604, -604, 0,
2376 -604, 0, -294, -294, -294, 0, 0, -294, -294, -294,
2377 0, -294, 0, 0, 0, 0, 0, 0, 0, 0,
2378 0, -294, -294, -294, 0, 0, 0, 0, 0, 0,
2379 0, -294, -294, 0, -294, -294, -294, -294, -294, 0,
2380 0, 327, 328, 329, 330, 331, 332, 333, 0, 0,
2381 336, 337, 0, 0, 0, 0, 340, 341, 0, 0,
2382 0, 0, -294, -294, -294, -294, -294, -294, -294, -294,
2383 -294, -294, -294, -294, -294, 0, 0, -294, -294, -294,
2384 0, 756, -294, 0, 0, 0, 0, 0, -294, 343,
2385 344, 345, 346, 347, 348, 349, 350, 351, 352, 0,
2386 0, 0, -294, 0, 0, -294, 0, -108, -294, -294,
2387 -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
2388 0, 0, 0, 0, 0, -294, -294, -294, -294, -432,
2389 0, -294, -294, -294, 0, -294, 0, -432, -432, -432,
2390 0, 0, -432, -432, -432, 0, -432, 0, 0, 0,
2391 0, 0, 0, 0, 0, -432, -432, -432, 0, 0,
2392 0, 0, 0, 0, 0, 0, -432, -432, 0, -432,
2393 -432, -432, -432, -432, 0, 0, 0, 0, 0, 0,
2394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2395 0, 0, 0, 0, 0, 0, 0, -432, -432, -432,
2396 -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
2397 0, 0, -432, -432, -432, 0, 0, -432, 0, 0,
2398 0, 0, 0, -432, 0, 0, 0, 0, 0, 0,
2399 0, 0, 0, 0, 0, 0, 0, -432, 0, 0,
2400 0, 0, 0, -432, 0, -432, -432, -432, -432, -432,
2401 -432, -432, -432, -432, -432, 0, 0, 0, 0, -432,
2402 -432, -432, -432, -432, -285, 227, -432, -432, -432, 0,
2403 -432, 0, -285, -285, -285, 0, 0, -285, -285, -285,
2404 0, -285, 0, 0, 0, 0, 0, 0, 0, 0,
2405 0, -285, -285, -285, 0, 0, 0, 0, 0, 0,
2406 0, -285, -285, 0, -285, -285, -285, -285, -285, 0,
2407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2409 0, 0, -285, -285, -285, -285, -285, -285, -285, -285,
2410 -285, -285, -285, -285, -285, 0, 0, -285, -285, -285,
2411 0, 0, -285, 0, 0, 0, 0, 0, -285, 0,
2412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2413 0, 0, -285, 0, 0, -285, 0, 0, -285, -285,
2414 -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2415 0, 0, 0, 0, 0, -285, -285, -285, -285, -422,
2416 0, -285, -285, -285, 0, -285, 0, -422, -422, -422,
2417 0, 0, -422, -422, -422, 0, -422, 0, 0, 0,
2418 0, 0, 0, 0, 0, -422, -422, -422, 0, 0,
2419 0, 0, 0, 0, 0, 0, -422, -422, 0, -422,
2420 -422, -422, -422, -422, 0, 0, 0, 0, 0, 0,
2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2422 0, 0, 0, 0, 0, 0, 0, -422, -422, -422,
2423 -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
2424 0, 0, -422, -422, -422, 0, 0, -422, 0, 0,
2425 0, 0, 0, -422, 0, 0, 0, 0, 0, 0,
2426 0, 0, 0, 0, 0, 0, 0, -422, 0, 0,
2427 0, 0, 0, -422, 0, -422, -422, -422, -422, -422,
2428 -422, -422, -422, -422, -422, 0, 0, 0, 0, -422,
2429 -422, -422, -422, -422, -301, -422, -422, -422, -422, 0,
2430 -422, 0, -301, -301, -301, 0, 0, -301, -301, -301,
2431 0, -301, 0, 0, 0, 0, 0, 0, 0, 0,
2432 0, -301, -301, 0, 0, 0, 0, 0, 0, 0,
2433 0, -301, -301, 0, -301, -301, -301, -301, -301, 0,
2434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2436 0, 0, -301, -301, -301, -301, -301, -301, -301, -301,
2437 -301, -301, -301, -301, -301, 0, 0, -301, -301, -301,
2438 0, 0, -301, 0, 0, 0, 0, 0, -301, 0,
2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2440 0, 0, -301, 0, 0, 0, 0, 0, -301, 0,
2441 -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
2442 0, 0, 0, 0, 0, -301, -301, -301, -301, -602,
2443 224, -301, -301, -301, 0, -301, 0, -602, -602, -602,
2444 0, 0, 0, -602, -602, 0, -602, 0, 0, 0,
2445 0, 0, 0, 0, 0, -602, 0, 0, 0, 0,
2446 0, 0, 0, 0, 0, 0, -602, -602, 0, -602,
2447 -602, -602, -602, -602, 0, 0, 0, 0, 0, 0,
2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2449 0, 0, 0, 0, 0, 0, 0, -602, -602, -602,
2450 -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
2451 0, 0, -602, -602, -602, 0, 700, 0, 0, 0,
2452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2453 0, 0, 0, 0, 0, 0, 0, -602, 0, 0,
2454 0, 0, -106, -602, 0, -602, -602, -602, -602, -602,
2455 -602, -602, -602, -602, -602, 0, 0, 0, 0, -602,
2456 -602, -602, -602, -97, -294, 0, -602, 0, -602, 0,
2457 -602, 0, -294, -294, -294, 0, 0, 0, -294, -294,
2458 0, -294, 0, -620, 0, 0, 0, 0, 0, 0,
2459 0, -620, -620, -620, 0, 0, -620, -620, -620, 0,
2460 -620, -294, -294, 0, -294, -294, -294, -294, -294, -620,
2461 -620, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2462 -620, -620, 0, -620, -620, -620, -620, -620, 0, 0,
2463 0, 0, -294, -294, -294, -294, -294, -294, -294, -294,
2464 -294, -294, -294, -294, -294, 0, 0, -294, -294, -294,
2465 0, 701, 0, 0, 0, 0, 0, 0, 0, 0,
2466 0, 0, 0, 0, 0, 0, 0, 0, -620, 0,
2467 0, 0, -294, 0, 0, 0, 0, -108, -294, 0,
2468 -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
2469 0, -620, 0, 0, 0, -294, -294, -294, -99, 0,
2470 0, -294, 0, -294, 0, -294, 0, 0, 0, 0,
2471 0, 0, 0, -620, -620, 0, -620, 0, 0, 227,
2472 -620, 0, -620, 248, -620, 5, 6, 7, 8, 9,
2473 -620, -620, -620, 10, 11, 0, 0, -620, 12, 0,
2474 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2475 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2476 0, 27, 0, 0, 0, 0, 0, 28, 29, 249,
2477 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2478 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2480 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2481 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2482 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2484 0, 0, 0, 0, 0, 0, 0, 0, 63, 64,
2485 65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2486 0, -620, 248, -620, 5, 6, 7, 8, 9, 0,
2487 0, -620, 10, 11, 0, -620, -620, 12, 0, 13,
2488 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2489 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2490 27, 0, 0, 0, 0, 0, 28, 29, 249, 31,
2491 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2492 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2494 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2495 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2496 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2498 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2500 -620, 248, -620, 5, 6, 7, 8, 9, 0, 0,
2501 -620, 10, 11, 0, 0, -620, 12, -620, 13, 14,
2502 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2503 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2504 0, 0, 0, 0, 0, 28, 29, 249, 31, 32,
2505 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2506 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2508 0, 0, 0, 0, 0, 0, 48, 0, 0, 49,
2509 50, 0, 51, 52, 0, 53, 0, 0, 54, 55,
2510 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2512 0, 0, 0, 0, 0, 0, 63, 64, 65, 0,
2513 0, 0, 0, 0, 0, 0, 0, 0, 0, -620,
2514 248, -620, 5, 6, 7, 8, 9, 0, 0, -620,
2515 10, 11, 0, 0, -620, 12, 0, 13, 14, 15,
2516 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2517 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2518 0, 0, 0, 0, 28, 29, 249, 31, 32, 33,
2519 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2520 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2522 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2523 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2524 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2525 0, 0, 0, 248, 0, 5, 6, 7, 8, 9,
2526 0, -620, -620, 10, 11, 63, 64, 65, 12, 0,
2527 13, 14, 15, 16, 17, 18, 19, 0, -620, 0,
2528 -620, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2529 0, 27, 0, 0, 0, 0, 0, 28, 29, 249,
2530 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2531 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2533 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2534 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2535 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2536 0, 0, 0, 0, 0, 0, 248, 0, 5, 6,
2537 7, 8, 9, 0, 0, 0, 10, 11, 63, 64,
2538 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2539 0, -620, 0, -620, 0, 20, 21, 22, 23, 24,
2540 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2541 28, 29, 249, 31, 32, 33, 34, 35, 36, 37,
2542 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2543 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2545 0, 48, 0, 0, 250, 50, 0, 51, 52, 0,
2546 53, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2547 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2549 0, 63, 64, 65, 0, 0, 0, 0, 0, 0,
2550 0, 0, -620, 0, -620, 248, -620, 5, 6, 7,
2551 8, 9, 0, 0, 0, 10, 11, 0, 0, 0,
2552 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2553 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2554 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2555 29, 249, 31, 32, 33, 34, 35, 36, 37, 38,
2556 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2557 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2559 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2560 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2561 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2563 63, 64, 65, 0, 0, 0, 0, 0, 0, 0,
2564 0, -620, 0, -620, 248, -620, 5, 6, 7, 8,
2565 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
2566 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2567 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2568 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2569 249, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2570 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2571 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2572 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2573 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
2574 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2576 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
2577 64, 65, 0, 0, -620, 4, 0, 5, 6, 7,
2578 8, 9, -620, 0, -620, 10, 11, 0, 0, 0,
2579 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2580 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2581 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2582 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2583 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2584 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2586 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2587 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2588 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2590 63, 64, 65, 0, 0, -620, 0, 0, 0, 0,
2591 0, 0, 0, -620, 248, -620, 5, 6, 7, 8,
2592 9, 0, 0, -620, 10, 11, 0, 0, 0, 12,
2593 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2594 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2595 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2596 249, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2597 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2598 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2599 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2600 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
2601 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2602 0, 0, 0, 0, 0, 0, 0, 248, 0, 5,
2603 6, 7, 8, 9, 0, 0, 0, 10, 11, 63,
2604 64, 65, 12, 0, 13, 14, 15, 16, 17, 18,
2605 19, 0, -620, 0, -620, 0, 20, 21, 22, 23,
2606 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2607 0, 28, 29, 249, 31, 32, 33, 34, 35, 36,
2608 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2609 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 0, 48, 0, 0, 49, 50, 0, 51, 52,
2612 0, 53, 0, 0, 54, 55, 56, 57, 58, 59,
2613 60, 61, 62, 0, -620, 0, 0, 0, 0, 0,
2614 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2615 10, 11, 63, 64, 65, 12, 0, 13, 14, 15,
2616 16, 17, 18, 19, 0, -620, 0, -620, 0, 20,
2617 21, 22, 23, 24, 25, 26, 0, 0, 200, 0,
2618 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2619 34, 35, 36, 37, 38, 39, 40, 201, 41, 42,
2620 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2622 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2623 0, 51, 52, 0, 204, 205, 206, 54, 55, 56,
2624 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2625 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2626 0, 0, 0, 10, 11, 63, 207, 65, 12, 0,
2627 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2628 231, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2629 0, 27, 0, 0, 0, 0, 0, 0, 29, 0,
2630 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2631 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2633 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2634 0, 203, 50, 0, 51, 52, 0, 0, 0, 0,
2635 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2636 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2637 7, 0, 9, 0, 0, 0, 10, 11, 63, 64,
2638 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2639 0, 302, 0, 303, 0, 20, 21, 22, 23, 24,
2640 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2641 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2642 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2643 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2646 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2647 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2648 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2649 11, 63, 64, 65, 12, 0, 13, 14, 15, 16,
2650 17, 18, 19, 0, 0, 0, 231, 0, 20, 21,
2651 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2652 0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
2653 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2654 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2656 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2657 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2658 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2659 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2660 0, 0, 10, 11, 63, 64, 65, 12, 0, 13,
2661 14, 15, 16, 17, 18, 19, 0, 498, 0, 0,
2662 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2663 27, 0, 0, 0, 0, 0, 28, 29, 249, 31,
2664 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2665 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2667 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2668 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2669 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2671 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2673 498, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2674 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2675 137, 138, 139, 140, 141, 0, 0, 0, 142, 143,
2676 144, 384, 385, 386, 387, 149, 150, 151, 0, 0,
2677 0, 0, 0, 152, 153, 154, 155, 388, 389, 390,
2678 391, 160, 37, 38, 392, 40, 0, 0, 0, 0,
2679 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
2680 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
2681 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
2682 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2684 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
2685 185, 186, 187, 188, 0, 189, 190, 0, 0, 0,
2686 0, 0, 0, 191, 393, 118, 119, 120, 121, 122,
2687 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2688 133, 134, 135, 136, 137, 138, 139, 140, 141, 0,
2689 0, 0, 142, 143, 144, 145, 146, 147, 148, 149,
2690 150, 151, 0, 0, 0, 0, 0, 152, 153, 154,
2691 155, 156, 157, 158, 159, 160, 280, 281, 161, 282,
2692 0, 0, 0, 0, 0, 0, 0, 0, 162, 163,
2693 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
2694 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
2695 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
2698 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
2699 190, 0, 0, 0, 0, 0, 0, 191, 118, 119,
2700 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2701 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2702 140, 141, 0, 0, 0, 142, 143, 144, 145, 146,
2703 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
2704 152, 153, 154, 155, 156, 157, 158, 159, 160, 233,
2705 0, 161, 0, 0, 0, 0, 0, 0, 0, 0,
2706 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2707 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709 177, 178, 0, 0, 55, 0, 0, 0, 0, 0,
2710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2711 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2712 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
2713 191, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2714 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2715 137, 138, 139, 140, 141, 0, 0, 0, 142, 143,
2716 144, 145, 146, 147, 148, 149, 150, 151, 0, 0,
2717 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
2718 159, 160, 0, 0, 161, 0, 0, 0, 0, 0,
2719 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
2720 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
2721 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
2722 0, 0, 0, 177, 178, 0, 0, 55, 0, 0,
2723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2724 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
2725 185, 186, 187, 188, 0, 189, 190, 0, 0, 0,
2726 0, 0, 0, 191, 118, 119, 120, 121, 122, 123,
2727 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2728 134, 135, 136, 137, 138, 139, 140, 141, 0, 0,
2729 0, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2730 151, 0, 0, 0, 0, 0, 152, 153, 154, 155,
2731 156, 157, 158, 159, 160, 0, 0, 161, 0, 0,
2732 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
2733 165, 166, 167, 168, 169, 170, 0, 0, 171, 172,
2734 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
2735 0, 0, 0, 0, 0, 0, 177, 178, 0, 0,
2736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2737 0, 0, 0, 0, 0, 0, 0, 179, 180, 181,
2738 182, 183, 184, 185, 186, 187, 188, 0, 189, 190,
2739 5, 6, 7, 0, 9, 0, 191, 0, 10, 11,
2740 0, 0, 0, 12, 0, 13, 14, 15, 238, 239,
2741 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
2742 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2743 0, 0, 0, 268, 0, 0, 32, 33, 34, 35,
2744 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2745 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
2746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2747 0, 0, 0, 269, 0, 0, 203, 50, 0, 51,
2748 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
2749 59, 60, 61, 62, 0, 0, 0, 0, 0, 5,
2750 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2751 0, 0, 12, 270, 13, 14, 15, 238, 239, 18,
2752 19, 271, 0, 0, 0, 0, 240, 241, 242, 23,
2753 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2754 0, 0, 268, 0, 0, 32, 33, 34, 35, 36,
2755 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2756 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2758 0, 0, 269, 0, 0, 203, 50, 0, 51, 52,
2759 0, 0, 0, 0, 54, 55, 56, 57, 58, 59,
2760 60, 61, 62, 0, 0, 0, 0, 0, 5, 6,
2761 7, 8, 9, 0, 0, 0, 10, 11, 0, 0,
2762 0, 12, 270, 13, 14, 15, 16, 17, 18, 19,
2763 518, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2764 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2765 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2766 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2767 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2769 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2770 53, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2771 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2773 11, 63, 64, 65, 12, 0, 13, 14, 15, 16,
2774 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2775 22, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2776 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2777 35, 36, 37, 38, 39, 40, 201, 41, 42, 0,
2778 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2780 0, 0, 0, 0, 202, 0, 0, 203, 50, 0,
2781 51, 52, 0, 204, 205, 206, 54, 55, 56, 57,
2782 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2783 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2784 0, 0, 10, 11, 63, 207, 65, 12, 0, 13,
2785 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2786 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2787 27, 0, 0, 0, 0, 0, 28, 29, 0, 31,
2788 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2789 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2792 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2793 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2794 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2795 0, 9, 0, 0, 0, 10, 11, 63, 64, 65,
2796 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2797 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2798 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2799 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2800 39, 40, 201, 41, 42, 0, 43, 44, 45, 0,
2801 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803 202, 0, 0, 203, 50, 0, 51, 52, 0, 608,
2804 205, 206, 54, 55, 56, 57, 58, 59, 60, 61,
2805 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2807 63, 207, 65, 12, 0, 13, 14, 15, 238, 239,
2808 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
2809 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2810 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2811 36, 37, 38, 39, 40, 201, 41, 42, 0, 43,
2812 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2814 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2815 52, 0, 204, 205, 0, 54, 55, 56, 57, 58,
2816 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2817 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2818 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2819 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2820 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2821 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2822 33, 34, 35, 36, 37, 38, 39, 40, 201, 41,
2823 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2825 0, 0, 0, 0, 0, 0, 202, 0, 0, 203,
2826 50, 0, 51, 52, 0, 0, 205, 206, 54, 55,
2827 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2828 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2829 9, 0, 0, 0, 10, 11, 63, 207, 65, 12,
2830 0, 13, 14, 15, 238, 239, 18, 19, 0, 0,
2831 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2832 0, 0, 200, 0, 0, 0, 0, 0, 0, 29,
2833 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2834 40, 201, 41, 42, 0, 43, 44, 45, 0, 46,
2835 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2836 0, 0, 0, 0, 0, 0, 0, 0, 0, 202,
2837 0, 0, 203, 50, 0, 51, 52, 0, 608, 205,
2838 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2840 6, 7, 0, 9, 0, 0, 0, 10, 11, 63,
2841 207, 65, 12, 0, 13, 14, 15, 238, 239, 18,
2842 19, 0, 0, 0, 0, 0, 240, 241, 242, 23,
2843 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2844 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2845 37, 38, 39, 40, 201, 41, 42, 0, 43, 44,
2846 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2848 0, 0, 202, 0, 0, 203, 50, 0, 51, 52,
2849 0, 0, 205, 0, 54, 55, 56, 57, 58, 59,
2850 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2852 10, 11, 63, 207, 65, 12, 0, 13, 14, 15,
2853 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2854 21, 22, 23, 24, 25, 26, 0, 0, 200, 0,
2855 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2856 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2857 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2860 0, 51, 52, 0, 512, 0, 0, 54, 55, 56,
2861 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2862 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2863 0, 0, 0, 10, 11, 63, 207, 65, 12, 0,
2864 13, 14, 15, 238, 239, 18, 19, 0, 0, 0,
2865 0, 0, 240, 241, 242, 23, 24, 25, 26, 0,
2866 0, 200, 0, 0, 0, 0, 0, 0, 29, 0,
2867 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2868 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2871 0, 203, 50, 0, 51, 52, 0, 204, 0, 0,
2872 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2874 7, 0, 9, 0, 0, 0, 10, 11, 63, 207,
2875 65, 12, 0, 13, 14, 15, 238, 239, 18, 19,
2876 0, 0, 0, 0, 0, 240, 241, 242, 23, 24,
2877 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
2878 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2879 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2880 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2882 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2883 817, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2884 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2886 11, 63, 207, 65, 12, 0, 13, 14, 15, 238,
2887 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2888 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2889 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2890 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2891 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2893 0, 0, 0, 0, 202, 0, 0, 203, 50, 0,
2894 51, 52, 0, 512, 0, 0, 54, 55, 56, 57,
2895 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2897 0, 0, 10, 11, 63, 207, 65, 12, 0, 13,
2898 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2899 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2900 200, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2901 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2902 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2904 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
2905 203, 50, 0, 51, 52, 0, 608, 0, 0, 54,
2906 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2907 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2908 0, 9, 0, 0, 0, 10, 11, 63, 207, 65,
2909 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2910 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2911 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2912 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2913 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2914 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2916 202, 0, 0, 203, 50, 0, 51, 52, 0, 0,
2917 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2918 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2919 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2920 63, 207, 65, 12, 0, 13, 14, 15, 16, 17,
2921 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2922 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2923 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2924 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2925 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2927 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2928 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
2929 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2930 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2931 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2932 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2933 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2934 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2935 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2936 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2938 0, 0, 0, 0, 0, 0, 202, 0, 0, 203,
2939 50, 0, 51, 52, 0, 0, 0, 0, 54, 55,
2940 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2942 9, 0, 0, 0, 10, 11, 63, 64, 65, 12,
2943 0, 13, 14, 15, 238, 239, 18, 19, 0, 0,
2944 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2945 0, 0, 200, 0, 0, 0, 0, 0, 0, 268,
2946 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2947 40, 0, 41, 42, 0, 43, 44, 45, 0, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 0, 0, 269,
2950 0, 0, 323, 50, 0, 51, 52, 0, 324, 0,
2951 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2952 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2953 0, 0, 0, 10, 11, 0, 0, 0, 12, 270,
2954 13, 14, 15, 238, 239, 18, 19, 0, 0, 0,
2955 0, 0, 240, 241, 242, 23, 24, 25, 26, 0,
2956 0, 200, 0, 0, 0, 0, 0, 0, 268, 0,
2957 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2958 0, 41, 42, 0, 43, 44, 45, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 0, 0, 0, 0, 0, 0, 0, 0, 365, 0,
2961 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2962 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2963 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2964 0, 0, 10, 11, 0, 0, 0, 12, 270, 13,
2965 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2966 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2967 200, 0, 0, 0, 0, 0, 0, 268, 0, 0,
2968 32, 33, 34, 373, 36, 37, 38, 374, 40, 0,
2969 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2971 0, 0, 0, 0, 375, 0, 0, 376, 0, 0,
2972 203, 50, 0, 51, 52, 0, 0, 0, 0, 54,
2973 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2974 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2975 0, 10, 11, 0, 0, 0, 12, 270, 13, 14,
2976 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2977 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2978 0, 0, 0, 0, 0, 0, 268, 0, 0, 32,
2979 33, 34, 373, 36, 37, 38, 374, 40, 0, 41,
2980 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982 0, 0, 0, 0, 0, 0, 376, 0, 0, 203,
2983 50, 0, 51, 52, 0, 0, 0, 0, 54, 55,
2984 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2985 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2986 10, 11, 0, 0, 0, 12, 270, 13, 14, 15,
2987 238, 239, 18, 19, 0, 0, 0, 0, 0, 240,
2988 241, 242, 23, 24, 25, 26, 0, 0, 200, 0,
2989 0, 0, 0, 0, 0, 268, 0, 0, 32, 33,
2990 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2991 0, 43, 44, 45, 0, 0, 0, 0, 0, 0,
2992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2993 0, 0, 0, 0, 0, 269, 0, 0, 323, 50,
2994 0, 51, 52, 0, 0, 0, 0, 54, 55, 56,
2995 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2996 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2997 11, 0, 0, 0, 12, 270, 13, 14, 15, 238,
2998 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2999 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
3000 0, 0, 0, 0, 268, 0, 0, 32, 33, 34,
3001 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
3002 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
3003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3004 0, 0, 0, 0, 894, 0, 0, 203, 50, 0,
3005 51, 52, 0, 0, 0, 0, 54, 55, 56, 57,
3006 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
3007 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3008 0, 0, 0, 12, 270, 13, 14, 15, 238, 239,
3009 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
3010 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
3011 0, 0, 0, 268, 0, 0, 32, 33, 34, 35,
3012 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
3013 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
3014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3015 0, 0, 0, 974, 0, 0, 203, 50, 0, 51,
3016 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
3017 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
3018 561, 562, 0, 0, 563, 0, 0, 0, 0, 0,
3019 0, 0, 0, 270, 162, 163, 164, 165, 166, 167,
3020 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
3021 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
3022 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
3023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3024 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
3025 185, 186, 187, 188, 0, 189, 190, 598, 562, 0,
3026 0, 599, 0, 191, 0, 0, 0, 0, 0, 0,
3027 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3028 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3030 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3032 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3033 188, 0, 189, 190, 612, 554, 0, 0, 613, 0,
3034 191, 0, 0, 0, 0, 0, 0, 0, 162, 163,
3035 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
3036 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
3037 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
3038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3039 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
3040 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
3041 190, 615, 562, 0, 0, 616, 0, 191, 0, 0,
3042 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
3043 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
3044 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
3045 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
3046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3047 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
3048 184, 185, 186, 187, 188, 0, 189, 190, 639, 554,
3049 0, 0, 640, 0, 191, 0, 0, 0, 0, 0,
3050 0, 0, 162, 163, 164, 165, 166, 167, 168, 169,
3051 170, 0, 0, 171, 172, 0, 0, 173, 174, 175,
3052 176, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3053 0, 177, 178, 0, 0, 0, 0, 0, 0, 0,
3054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3055 0, 0, 179, 180, 181, 182, 183, 184, 185, 186,
3056 187, 188, 0, 189, 190, 642, 562, 0, 0, 643,
3057 0, 191, 0, 0, 0, 0, 0, 0, 0, 162,
3058 163, 164, 165, 166, 167, 168, 169, 170, 0, 0,
3059 171, 172, 0, 0, 173, 174, 175, 176, 0, 0,
3060 0, 0, 0, 0, 0, 0, 0, 0, 177, 178,
3061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3062 0, 0, 0, 0, 0, 0, 0, 0, 0, 179,
3063 180, 181, 182, 183, 184, 185, 186, 187, 188, 0,
3064 189, 190, 727, 554, 0, 0, 728, 0, 191, 0,
3065 0, 0, 0, 0, 0, 0, 162, 163, 164, 165,
3066 166, 167, 168, 169, 170, 0, 0, 171, 172, 0,
3067 0, 173, 174, 175, 176, 0, 0, 0, 0, 0,
3068 0, 0, 0, 0, 0, 177, 178, 0, 0, 0,
3069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3070 0, 0, 0, 0, 0, 0, 179, 180, 181, 182,
3071 183, 184, 185, 186, 187, 188, 0, 189, 190, 730,
3072 562, 0, 0, 731, 0, 191, 0, 0, 0, 0,
3073 0, 0, 0, 162, 163, 164, 165, 166, 167, 168,
3074 169, 170, 0, 0, 171, 172, 0, 0, 173, 174,
3075 175, 176, 0, 0, 0, 0, 0, 0, 0, 0,
3076 0, 0, 177, 178, 0, 0, 0, 0, 0, 0,
3077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3078 0, 0, 0, 179, 180, 181, 182, 183, 184, 185,
3079 186, 187, 188, 0, 189, 190, 737, 554, 0, 0,
3080 738, 0, 191, 0, 0, 0, 0, 0, 0, 0,
3081 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
3082 0, 171, 172, 0, 0, 173, 174, 175, 176, 0,
3083 0, 0, 0, 0, 0, 0, 0, 0, 0, 177,
3084 178, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3086 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
3087 0, 189, 190, 1002, 554, 0, 0, 1003, 0, 191,
3088 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
3089 165, 166, 167, 168, 169, 170, 0, 0, 171, 172,
3090 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
3091 0, 0, 0, 0, 0, 0, 177, 178, 0, 0,
3092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3093 0, 0, 0, 0, 0, 0, 0, 179, 180, 181,
3094 182, 183, 184, 185, 186, 187, 188, 0, 189, 190,
3095 1037, 554, 0, 0, 1038, 0, 191, 0, 0, 0,
3096 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
3097 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
3098 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
3099 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
3100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3101 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
3102 185, 186, 187, 188, 0, 189, 190, 1040, 562, 0,
3103 0, 1041, 0, 191, 0, 0, 0, 0, 0, 0,
3104 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3105 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3107 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3109 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3110 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
3114 #define yypact_value_is_default(yystate) \
3115 ((yystate) == (-808))
3117 #define yytable_value_is_error(yytable_value) \
3118 ((yytable_value) == (-621))
3122 2, 87, 55, 96, 90, 353, 79, 355, 472, 16,
3123 17, 22, 359, 20, 354, 326, 614, 2, 8, 4,
3124 16, 17, 8, 28, 20, 326, 412, 27, 49, 29,
3125 74, 4, 220, 53, 420, 86, 87, 420, 28, 90,
3126 575, 94, 28, 641, 594, 49, 668, 685, 574, 51,
3127 52, 399, 468, 67, 262, 51, 779, 472, 266, 79,
3128 53, 376, 508, 74, 90, 511, 2, 415, 4, 417,
3129 715, 91, 92, 93, 719, 458, 416, 440, 25, 787,
3130 16, 17, 25, 13, 20, 16, 17, 13, 67, 20,
3131 875, 26, 25, 27, 873, 443, 903, 250, 37, 38,
3132 58, 29, 518, 16, 17, 64, 8, 20, 68, 87,
3133 68, 90, 777, 49, 139, 113, 141, 53, 85, 61,
3134 51, 52, 13, 471, 907, 25, 28, 76, 64, 61,
3135 470, 729, 596, 651, 0, 113, 134, 802, 96, 97,
3136 85, 779, 740, 79, 286, 15, 288, 17, 290, 787,
3137 86, 87, 294, 55, 90, 91, 92, 93, 141, 13,
3138 939, 25, 120, 123, 124, 125, 133, 26, 110, 118,
3139 323, 13, 25, 25, 25, 898, 59, 60, 110, 230,
3140 25, 232, 203, 111, 806, 807, 736, 134, 133, 13,
3141 130, 134, 94, 657, 744, 130, 56, 1004, 271, 243,
3142 1, 134, 141, 136, 134, 139, 991, 141, 259, 139,
3143 136, 141, 214, 139, 993, 141, 237, 224, 220, 226,
3144 227, 307, 308, 309, 310, 227, 252, 950, 224, 250,
3145 226, 1014, 25, 581, 134, 621, 622, 945, 252, 622,
3146 580, 429, 657, 140, 690, 593, 250, 1026, 139, 25,
3147 141, 271, 592, 771, 772, 140, 307, 308, 309, 310,
3148 898, 312, 313, 248, 886, 903, 140, 203, 268, 632,
3149 134, 130, 136, 252, 360, 361, 591, 136, 230, 743,
3150 696, 134, 134, 134, 929, 139, 1009, 141, 224, 134,
3151 226, 227, 87, 224, 230, 226, 232, 139, 670, 141,
3152 672, 237, 323, 255, 324, 61, 258, 945, 85, 360,
3153 361, 224, 248, 226, 250, 139, 117, 141, 113, 323,
3154 113, 306, 134, 259, 375, 321, 311, 853, 743, 141,
3155 326, 324, 85, 306, 85, 271, 362, 113, 139, 134,
3156 141, 134, 964, 485, 137, 61, 140, 354, 141, 65,
3157 492, 107, 354, 109, 26, 873, 133, 875, 134, 37,
3158 38, 137, 321, 85, 85, 141, 1004, 326, 85, 97,
3159 306, 307, 308, 309, 310, 311, 312, 313, 725, 132,
3160 133, 931, 133, 362, 140, 321, 85, 323, 324, 85,
3161 326, 107, 120, 109, 929, 468, 697, 59, 60, 378,
3162 28, 85, 52, 714, 54, 55, 56, 57, 61, 416,
3163 132, 133, 133, 85, 416, 2, 133, 4, 354, 26,
3164 356, 939, 940, 611, 360, 361, 428, 429, 636, 16,
3165 17, 87, 437, 20, 133, 703, 132, 133, 440, 375,
3166 990, 1039, 710, 402, 403, 518, 85, 437, 468, 133,
3167 87, 437, 134, 355, 107, 440, 109, 113, 130, 141,
3168 132, 133, 49, 470, 136, 113, 402, 403, 470, 85,
3169 422, 134, 936, 991, 426, 993, 113, 64, 85, 431,
3170 416, 412, 868, 68, 134, 868, 52, 140, 54, 55,
3171 56, 57, 113, 132, 133, 447, 87, 399, 518, 86,
3172 87, 87, 85, 90, 440, 507, 508, 87, 1026, 511,
3173 100, 883, 884, 557, 450, 417, 888, 133, 890, 891,
3174 87, 565, 113, 130, 455, 132, 133, 113, 87, 136,
3175 134, 87, 468, 113, 470, 437, 121, 122, 123, 124,
3176 125, 443, 542, 134, 595, 87, 113, 558, 58, 570,
3177 133, 572, 54, 87, 85, 566, 600, 113, 68, 85,
3178 560, 63, 64, 136, 637, 517, 568, 134, 134, 471,
3179 917, 113, 760, 580, 625, 56, 923, 134, 580, 113,
3180 576, 113, 518, 61, 141, 592, 96, 97, 88, 600,
3181 592, 136, 134, 26, 573, 574, 141, 134, 600, 137,
3182 605, 132, 133, 141, 87, 136, 132, 133, 587, 611,
3183 120, 14, 15, 134, 614, 605, 203, 637, 136, 605,
3184 52, 130, 87, 696, 56, 997, 998, 999, 1000, 107,
3185 632, 109, 110, 136, 570, 136, 572, 224, 68, 226,
3186 227, 641, 137, 230, 580, 232, 732, 632, 113, 735,
3187 237, 113, 85, 138, 131, 748, 592, 85, 594, 595,
3188 704, 248, 61, 250, 666, 686, 668, 711, 689, 134,
3189 691, 1019, 259, 56, 134, 1047, 696, 68, 1018, 581,
3190 68, 732, 94, 635, 735, 685, 110, 110, 690, 625,
3191 621, 593, 110, 746, 110, 134, 632, 130, 85, 132,
3192 133, 637, 139, 605, 132, 133, 17, 56, 107, 711,
3193 109, 110, 714, 715, 134, 717, 25, 719, 714, 306,
3194 307, 308, 309, 310, 311, 312, 313, 26, 68, 729,
3195 61, 577, 137, 134, 321, 131, 323, 130, 697, 326,
3196 740, 700, 701, 83, 84, 132, 133, 10, 707, 708,
3197 686, 140, 134, 689, 733, 691, 134, 843, 760, 85,
3198 696, 697, 134, 140, 700, 701, 745, 354, 134, 356,
3199 85, 707, 708, 360, 361, 87, 107, 777, 109, 110,
3200 800, 121, 122, 123, 124, 125, 85, 52, 375, 134,
3201 742, 113, 843, 85, 815, 68, 732, 136, 8, 735,
3202 736, 113, 802, 131, 806, 807, 132, 133, 744, 761,
3203 83, 84, 13, 61, 134, 402, 403, 132, 133, 840,
3204 61, 134, 134, 775, 113, 52, 847, 848, 134, 416,
3205 851, 130, 134, 132, 133, 52, 838, 136, 134, 841,
3206 132, 133, 15, 52, 746, 118, 119, 120, 121, 122,
3207 123, 124, 125, 440, 85, 134, 115, 878, 879, 107,
3208 138, 109, 110, 450, 800, 134, 107, 131, 109, 110,
3209 829, 892, 134, 893, 853, 113, 855, 85, 724, 815,
3210 134, 85, 118, 470, 886, 134, 16, 17, 54, 55,
3211 20, 57, 134, 829, 134, 741, 916, 63, 64, 920,
3212 139, 132, 133, 10, 840, 87, 131, 843, 860, 10,
3213 134, 847, 848, 685, 88, 851, 46, 47, 9, 685,
3214 872, 51, 52, 134, 132, 133, 118, 929, 132, 133,
3215 137, 113, 134, 56, 64, 65, 201, 134, 134, 204,
3216 205, 206, 878, 879, 52, 134, 54, 55, 56, 57,
3217 58, 131, 134, 134, 10, 134, 892, 893, 108, 980,
3218 68, 982, 964, 131, 134, 134, 56, 988, 450, 134,
3219 970, 134, 134, 134, 685, 68, 136, 136, 134, 91,
3220 916, 89, 93, 570, 920, 572, 711, 1021, 96, 97,
3221 83, 84, 771, 580, 685, 931, 1014, 749, 844, 52,
3222 846, 54, 55, 56, 57, 592, 294, 594, 595, 781,
3223 856, 1018, 120, 785, 1020, 861, 1018, 99, 1020, 1021,
3224 57, 787, 94, 781, 790, 936, 898, 120, 121, 122,
3225 123, 124, 125, 900, 779, 396, 89, -1, 625, 1039,
3226 -1, -1, 95, -1, 980, 632, 982, 40, 41, 42,
3227 43, 44, 988, -1, 990, 52, 321, 54, 55, 56,
3228 57, 326, -1, 52, -1, 54, 55, 56, 57, -1,
3229 781, 201, -1, -1, 204, 205, 206, 207, -1, -1,
3230 926, 927, 1018, 2, 52, 4, 54, 55, 56, 57,
3231 -1, -1, 89, -1, 224, -1, 226, 227, 95, 686,
3232 89, -1, 689, -1, 691, -1, -1, -1, -1, -1,
3233 697, -1, -1, 700, 701, -1, -1, 1019, -1, -1,
3234 707, 708, -1, -1, -1, -1, 898, -1, 900, -1,
3235 49, 903, -1, 905, 53, -1, -1, 903, -1, 905,
3236 -1, -1, -1, 989, -1, 732, 411, 412, 735, 736,
3237 -1, -1, -1, -1, -1, 420, -1, 744, -1, -1,
3238 79, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3239 -1, -1, 91, 92, 93, 94, 1022, -1, 1024, 945,
3240 -1, 947, -1, 809, 810, -1, 952, 898, -1, 900,
3241 455, 321, 903, 458, 905, -1, 326, 327, 328, 329,
3242 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
3243 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
3244 350, 351, 352, -1, 354, -1, -1, -1, 815, -1,
3245 -1, -1, 1004, -1, 1006, -1, -1, 1009, 1004, 1011,
3246 1006, -1, 829, -1, -1, 1011, -1, 512, -1, -1,
3247 -1, -1, -1, 840, -1, -1, 843, -1, -1, -1,
3248 847, 848, 1028, -1, 851, -1, -1, -1, -1, -1,
3249 -1, -1, 402, 403, -1, -1, -1, 1049, -1, -1,
3250 410, 411, 412, 1049, 203, -1, 416, -1, 418, 419,
3251 420, 878, 879, 1004, -1, 1006, -1, -1, 1009, -1,
3252 1011, -1, -1, -1, -1, 892, -1, -1, -1, 439,
3253 -1, 576, -1, -1, 444, -1, -1, -1, 237, -1,
3254 -1, -1, -1, -1, -1, 455, -1, -1, 458, 248,
3255 -1, 250, -1, 920, -1, 961, 962, -1, 1049, 965,
3256 470, 967, 968, 608, 931, -1, -1, -1, -1, -1,
3257 -1, -1, 271, -1, -1, -1, 621, 622, -1, -1,
3258 -1, -1, -1, 2, -1, 4, 496, 497, -1, -1,
3259 -1, -1, -1, -1, 52, -1, 54, 55, 56, 57,
3260 58, -1, 512, -1, 649, -1, -1, 306, -1, -1,
3261 68, -1, 311, 980, -1, 982, -1, -1, -1, -1,
3262 -1, 988, -1, 990, 323, 324, 1032, 1033, 1034, 1035,
3263 49, 89, -1, -1, 53, -1, -1, 95, 96, 97,
3264 52, -1, 54, 55, 56, 57, 58, -1, 693, 1055,
3265 -1, 1018, -1, -1, -1, -1, 68, 356, -1, -1,
3266 79, -1, 120, -1, -1, 123, 576, -1, -1, 714,
3267 580, -1, 91, 92, 93, 94, -1, 89, -1, -1,
3268 -1, -1, 592, 141, 96, 97, -1, -1, -1, 52,
3269 -1, 54, 55, 56, 57, 58, -1, -1, 608, -1,
3270 -1, -1, -1, -1, -1, 68, -1, -1, 120, -1,
3271 -1, 621, 622, -1, -1, -1, -1, -1, -1, -1,
3272 -1, -1, -1, 768, -1, -1, 89, -1, -1, -1,
3273 -1, -1, 95, 96, 97, -1, -1, -1, -1, 649,
3274 -1, 440, -1, -1, -1, -1, -1, -1, -1, -1,
3275 -1, 450, -1, 2, -1, 4, -1, 120, -1, -1,
3276 123, -1, -1, -1, -1, -1, -1, -1, -1, 468,
3277 -1, -1, 817, 136, 2, -1, 4, -1, -1, -1,
3278 -1, -1, -1, 693, 203, -1, -1, 697, 698, -1,
3279 700, 701, -1, 2, -1, 4, -1, 707, 708, -1,
3280 49, -1, -1, -1, 714, 850, -1, -1, -1, -1,
3281 52, -1, 54, 55, 56, 57, 58, -1, 237, 518,
3282 -1, 49, -1, 868, -1, 53, 68, -1, -1, 248,
3283 -1, 250, -1, -1, -1, -1, -1, -1, -1, -1,
3284 49, 751, -1, -1, -1, 755, 756, 89, 758, 759,
3285 -1, 79, 271, 95, 96, 97, -1, -1, 768, -1,
3286 -1, -1, -1, 91, 92, 93, -1, -1, -1, -1,
3287 -1, 570, -1, 572, -1, -1, -1, -1, 120, -1,
3288 -1, 123, 91, -1, -1, -1, -1, 306, -1, -1,
3289 -1, -1, 311, -1, 136, 594, -1, -1, -1, -1,
3290 -1, -1, -1, -1, 323, 324, -1, 817, -1, -1,
3291 -1, 821, -1, -1, -1, -1, -1, -1, -1, 829,
3292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3293 -1, -1, -1, 632, -1, -1, -1, 356, 637, -1,
3294 850, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3295 -1, -1, -1, -1, 203, -1, -1, 867, 868, -1,
3296 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3297 76, 77, 78, 79, 80, 203, -1, 83, 84, -1,
3298 -1, -1, -1, -1, -1, -1, -1, 686, 237, -1,
3299 689, -1, 691, -1, 203, -1, -1, 696, -1, 248,
3300 -1, 250, -1, -1, -1, -1, -1, -1, 114, 237,
3301 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3302 248, 440, 250, -1, -1, -1, -1, -1, 237, -1,
3303 -1, 450, -1, -1, -1, 141, -1, 736, -1, 248,
3304 -1, 250, -1, 271, -1, 744, -1, -1, -1, 468,
3305 -1, -1, -1, -1, -1, -1, -1, 306, -1, -1,
3306 -1, 52, 311, 54, 55, 56, 57, 58, -1, -1,
3307 -1, -1, -1, -1, 323, -1, -1, 68, 306, -1,
3308 -1, -1, -1, 311, -1, -1, -1, -1, -1, -1,
3309 -1, -1, -1, -1, -1, 323, 324, 306, 89, 518,
3310 -1, 800, 311, -1, 95, 96, 97, 356, 1018, -1,
3311 -1, -1, -1, -1, 323, -1, 815, 326, -1, -1,
3312 -1, -1, -1, -1, -1, -1, -1, -1, 356, 120,
3313 44, -1, 123, -1, -1, -1, -1, -1, -1, -1,
3314 -1, 840, -1, -1, -1, -1, -1, 356, 847, 848,
3315 -1, 570, 851, 572, 68, 69, 70, 71, 72, 73,
3316 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3317 84, -1, -1, -1, -1, 594, -1, -1, -1, 878,
3318 879, -1, 52, -1, 54, 55, 56, 57, 58, -1,
3319 -1, 440, -1, 892, 893, -1, -1, -1, 68, -1,
3320 114, 450, 116, 117, 118, 119, 120, 121, 122, 123,
3321 124, 125, 440, 632, -1, -1, -1, 916, 637, 89,
3322 134, 920, 450, -1, -1, 95, 96, 97, -1, -1,
3323 -1, 440, 931, -1, -1, -1, -1, -1, -1, -1,
3324 468, 450, -1, -1, -1, -1, -1, -1, -1, -1,
3325 120, -1, -1, 123, -1, -1, -1, -1, -1, -1,
3326 -1, -1, -1, -1, -1, -1, -1, 686, -1, -1,
3327 689, -1, 691, -1, -1, -1, -1, 696, -1, -1,
3328 -1, 980, -1, 982, 52, 53, -1, -1, 56, 988,
3329 518, 990, -1, -1, -1, -1, -1, -1, 66, 67,
3330 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3331 78, -1, -1, 81, 82, 83, 84, 736, -1, -1,
3332 -1, 570, -1, 572, -1, 744, -1, 95, 96, -1,
3333 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3334 -1, -1, 570, -1, 572, 594, -1, -1, 116, 117,
3335 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
3336 128, 570, -1, 572, -1, -1, 594, 135, -1, -1,
3337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3338 -1, 800, -1, 632, -1, 594, -1, -1, -1, -1,
3339 -1, -1, -1, -1, -1, -1, 815, -1, -1, -1,
3340 -1, -1, -1, -1, 632, -1, -1, -1, -1, 637,
3341 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3342 -1, 840, -1, 632, -1, -1, -1, -1, 847, 848,
3343 -1, -1, 851, -1, -1, -1, -1, 686, -1, -1,
3344 689, -1, 691, -1, -1, -1, -1, -1, 676, -1,
3345 -1, -1, -1, -1, -1, -1, -1, -1, 686, 878,
3346 879, 689, -1, 691, -1, -1, -1, -1, 696, -1,
3347 -1, -1, -1, 892, 893, -1, -1, 686, -1, -1,
3348 689, -1, 691, -1, -1, -1, -1, 736, 697, -1,
3349 -1, -1, -1, -1, -1, 744, -1, 916, -1, -1,
3350 -1, 920, -1, -1, -1, -1, -1, -1, 736, -1,
3351 -1, -1, 931, -1, -1, -1, 744, -1, -1, -1,
3352 -1, -1, -1, -1, -1, -1, -1, 736, 68, 69,
3353 70, 71, 72, 73, 74, 744, -1, 77, 78, -1,
3354 -1, -1, -1, 83, 84, -1, -1, -1, -1, -1,
3355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3356 -1, 980, -1, 982, -1, -1, 815, -1, -1, 988,
3357 -1, 990, 800, -1, -1, -1, 116, 117, 118, 119,
3358 120, 121, 122, 123, 124, 125, -1, 815, -1, -1,
3359 -1, 840, -1, -1, -1, -1, -1, -1, 847, 848,
3360 -1, -1, 851, -1, -1, -1, 815, -1, -1, -1,
3361 -1, -1, 840, -1, -1, -1, -1, -1, -1, 847,
3362 848, -1, -1, 851, -1, -1, -1, -1, -1, 878,
3363 879, 840, -1, -1, -1, -1, -1, -1, 847, 848,
3364 -1, -1, 851, 892, -1, -1, -1, -1, -1, -1,
3365 878, 879, -1, -1, -1, -1, -1, -1, -1, -1,
3366 -1, -1, -1, -1, 892, 893, -1, -1, -1, 878,
3367 879, 920, -1, -1, -1, -1, -1, -1, -1, -1,
3368 -1, -1, 931, 892, -1, -1, -1, -1, 916, -1,
3369 -1, -1, 920, -1, -1, -1, -1, -1, -1, -1,
3370 -1, -1, -1, 931, -1, -1, -1, 916, -1, -1,
3371 -1, 920, -1, -1, -1, -1, -1, -1, -1, -1,
3372 -1, -1, 931, -1, -1, -1, -1, -1, -1, -1,
3373 -1, 980, -1, 982, -1, -1, -1, -1, -1, 988,
3374 -1, 990, -1, -1, -1, -1, -1, -1, -1, -1,
3375 -1, -1, 980, -1, 982, -1, -1, -1, -1, -1,
3376 988, -1, 990, -1, -1, -1, -1, -1, -1, -1,
3377 -1, 980, -1, 982, -1, -1, -1, -1, -1, 988,
3378 -1, 990, 0, 1, -1, 3, 4, 5, 6, 7,
3379 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
3380 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3381 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3382 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3383 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3384 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3386 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3387 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3388 98, 99, 100, 101, 102, 103, 104, 105, 106, 0,
3389 -1, -1, -1, -1, -1, -1, -1, 8, 9, 10,
3390 -1, -1, 13, 14, 15, -1, 17, -1, 126, 127,
3391 128, -1, 44, -1, -1, 26, 27, 28, 29, -1,
3392 -1, 139, -1, 141, -1, -1, 37, 38, -1, 40,
3393 41, 42, 43, 44, -1, -1, 68, 69, 70, 71,
3394 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3395 -1, 83, 84, -1, -1, -1, -1, 68, 69, 70,
3396 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3397 -1, -1, 83, 84, 85, -1, 87, 88, -1, -1,
3398 -1, -1, 114, 94, 116, 117, 118, 119, 120, 121,
3399 122, 123, 124, 125, -1, -1, -1, 108, -1, -1,
3400 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
3401 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3402 131, 132, 133, 134, 0, -1, 137, 138, 139, -1,
3403 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3404 -1, 17, -1, -1, -1, -1, -1, 44, -1, 25,
3405 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3406 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3407 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3408 77, 78, 79, 80, -1, -1, 83, 84, -1, -1,
3409 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3410 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3411 -1, 87, 88, -1, -1, -1, -1, 114, 94, 116,
3412 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3413 -1, -1, 108, -1, -1, 111, -1, 113, 114, 115,
3414 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3415 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3416 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3417 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3418 -1, -1, -1, -1, 25, -1, 27, 28, 29, -1,
3419 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3420 41, 42, 43, 44, -1, -1, 68, 69, 70, 71,
3421 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3422 -1, 83, 84, -1, -1, -1, -1, 68, 69, 70,
3423 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3424 -1, -1, 83, 84, 85, -1, 87, 88, -1, -1,
3425 -1, -1, 114, 94, 116, 117, 118, 119, 120, 121,
3426 122, 123, 124, 125, -1, -1, -1, 108, -1, -1,
3427 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
3428 121, 122, 123, 124, 125, -1, -1, -1, -1, -1,
3429 131, 132, 133, 134, 0, -1, 137, 138, 139, -1,
3430 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3431 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3432 26, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3433 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3434 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3435 77, 78, 79, 80, -1, -1, 83, 84, -1, -1,
3436 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3437 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3438 -1, -1, 88, -1, -1, -1, -1, -1, 94, 116,
3439 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3440 -1, -1, 108, -1, -1, 111, -1, -1, 114, 115,
3441 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3442 -1, -1, -1, -1, 130, 131, 132, 133, 134, 0,
3443 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3444 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3445 -1, -1, -1, -1, -1, 26, 27, 28, 29, -1,
3446 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3447 41, 42, 43, 44, -1, -1, 68, 69, 70, 71,
3448 72, 73, 74, 75, -1, 77, 78, -1, -1, -1,
3449 -1, 83, 84, -1, -1, -1, -1, 68, 69, 70,
3450 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3451 -1, -1, 83, 84, 85, -1, -1, 88, -1, -1,
3452 -1, -1, -1, 94, 116, 117, 118, 119, 120, 121,
3453 122, 123, 124, 125, -1, -1, -1, 108, -1, -1,
3454 111, -1, -1, 114, 115, 116, 117, 118, 119, 120,
3455 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3456 131, 132, 133, 134, 0, -1, 137, 138, 139, -1,
3457 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3458 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3459 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3460 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3461 -1, 68, 69, 70, 71, 72, 73, 74, -1, -1,
3462 77, 78, -1, -1, -1, -1, 83, 84, -1, -1,
3463 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3464 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3465 -1, 87, 88, -1, -1, -1, -1, -1, 94, 116,
3466 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3467 -1, -1, 108, -1, -1, 111, -1, 113, 114, 115,
3468 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3469 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3470 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3471 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3472 -1, -1, -1, -1, -1, 26, 27, 28, -1, -1,
3473 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3474 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3476 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
3477 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3478 -1, -1, 83, 84, 85, -1, -1, 88, -1, -1,
3479 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1,
3480 -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
3481 -1, -1, -1, 114, -1, 116, 117, 118, 119, 120,
3482 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3483 131, 132, 133, 134, 0, 136, 137, 138, 139, -1,
3484 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3485 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3486 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3487 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3490 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3491 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3492 -1, -1, 88, -1, -1, -1, -1, -1, 94, -1,
3493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3494 -1, -1, 108, -1, -1, 111, -1, -1, 114, 115,
3495 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3496 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3497 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3498 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3499 -1, -1, -1, -1, -1, 26, 27, 28, -1, -1,
3500 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3501 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3503 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
3504 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3505 -1, -1, 83, 84, 85, -1, -1, 88, -1, -1,
3506 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1,
3507 -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
3508 -1, -1, -1, 114, -1, 116, 117, 118, 119, 120,
3509 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3510 131, 132, 133, 134, 0, 136, 137, 138, 139, -1,
3511 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3512 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3513 -1, 27, 28, -1, -1, -1, -1, -1, -1, -1,
3514 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3517 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3518 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3519 -1, -1, 88, -1, -1, -1, -1, -1, 94, -1,
3520 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3521 -1, -1, 108, -1, -1, -1, -1, -1, 114, -1,
3522 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3523 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3524 136, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3525 -1, -1, -1, 14, 15, -1, 17, -1, -1, -1,
3526 -1, -1, -1, -1, -1, 26, -1, -1, -1, -1,
3527 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3528 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3530 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
3531 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3532 -1, -1, 83, 84, 85, -1, 87, -1, -1, -1,
3533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3534 -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
3535 -1, -1, 113, 114, -1, 116, 117, 118, 119, 120,
3536 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3537 131, 132, 133, 134, 0, -1, 137, -1, 139, -1,
3538 141, -1, 8, 9, 10, -1, -1, -1, 14, 15,
3539 -1, 17, -1, 0, -1, -1, -1, -1, -1, -1,
3540 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3541 17, 37, 38, -1, 40, 41, 42, 43, 44, 26,
3542 27, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3543 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3544 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3545 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3546 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1,
3547 -1, -1, -1, -1, -1, -1, -1, -1, 85, -1,
3548 -1, -1, 108, -1, -1, -1, -1, 113, 114, -1,
3549 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3550 -1, 108, -1, -1, -1, 131, 132, 133, 134, -1,
3551 -1, 137, -1, 139, -1, 141, -1, -1, -1, -1,
3552 -1, -1, -1, 130, 131, -1, 133, -1, -1, 136,
3553 137, -1, 139, 1, 141, 3, 4, 5, 6, 7,
3554 8, 9, 10, 11, 12, -1, -1, 15, 16, -1,
3555 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3556 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3557 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3558 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3559 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3561 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3562 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3563 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3564 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3565 -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
3566 128, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3567 -1, 139, 1, 141, 3, 4, 5, 6, 7, -1,
3568 -1, 10, 11, 12, -1, 14, 15, 16, -1, 18,
3569 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3570 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3571 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3572 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3573 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3575 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3576 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3577 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3578 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3579 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3581 139, 1, 141, 3, 4, 5, 6, 7, -1, -1,
3582 10, 11, 12, -1, -1, 15, 16, 17, 18, 19,
3583 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3584 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3585 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3586 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3587 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3588 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3589 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3590 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
3591 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3593 -1, -1, -1, -1, -1, -1, 126, 127, 128, -1,
3594 -1, -1, -1, -1, -1, -1, -1, -1, -1, 139,
3595 1, 141, 3, 4, 5, 6, 7, -1, -1, 10,
3596 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3597 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3598 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3599 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3600 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3601 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3602 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3603 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3604 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3605 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3606 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
3607 -1, 9, 10, 11, 12, 126, 127, 128, 16, -1,
3608 18, 19, 20, 21, 22, 23, 24, -1, 139, -1,
3609 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3610 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3611 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3612 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3613 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3614 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3615 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3616 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3617 -1, -1, -1, -1, -1, -1, 1, -1, 3, 4,
3618 5, 6, 7, -1, -1, -1, 11, 12, 126, 127,
3619 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3620 -1, 139, -1, 141, -1, 30, 31, 32, 33, 34,
3621 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3622 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3623 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3624 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3626 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3627 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3628 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3630 -1, 126, 127, 128, -1, -1, -1, -1, -1, -1,
3631 -1, -1, 137, -1, 139, 1, 141, 3, 4, 5,
3632 6, 7, -1, -1, -1, 11, 12, -1, -1, -1,
3633 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3634 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3635 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3636 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3637 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3638 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3640 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3641 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3642 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3644 126, 127, 128, -1, -1, -1, -1, -1, -1, -1,
3645 -1, 137, -1, 139, 1, 141, 3, 4, 5, 6,
3646 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
3647 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3648 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3649 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3650 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3651 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3652 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3654 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3655 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3657 -1, -1, -1, -1, -1, -1, -1, -1, -1, 126,
3658 127, 128, -1, -1, 131, 1, -1, 3, 4, 5,
3659 6, 7, 139, -1, 141, 11, 12, -1, -1, -1,
3660 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3661 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3662 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3663 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3664 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3665 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3667 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3668 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3669 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3671 126, 127, 128, -1, -1, 131, -1, -1, -1, -1,
3672 -1, -1, -1, 139, 1, 141, 3, 4, 5, 6,
3673 7, -1, -1, 10, 11, 12, -1, -1, -1, 16,
3674 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3675 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3676 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3677 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3678 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3679 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3681 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3682 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3683 -1, -1, -1, -1, -1, -1, -1, 1, -1, 3,
3684 4, 5, 6, 7, -1, -1, -1, 11, 12, 126,
3685 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3686 24, -1, 139, -1, 141, -1, 30, 31, 32, 33,
3687 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3688 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3689 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3690 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3692 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3693 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
3694 104, 105, 106, -1, 108, -1, -1, -1, -1, -1,
3695 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3696 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3697 21, 22, 23, 24, -1, 139, -1, 141, -1, 30,
3698 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3699 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3700 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3701 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3703 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3704 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3705 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3706 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3707 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3708 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3709 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3710 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3711 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3712 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3714 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3715 -1, 89, 90, -1, 92, 93, -1, -1, -1, -1,
3716 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3717 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3718 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
3719 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3720 -1, 139, -1, 141, -1, 30, 31, 32, 33, 34,
3721 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3722 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3723 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3724 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3726 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3727 -1, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3728 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3729 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3730 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3731 22, 23, 24, -1, -1, -1, 141, -1, 30, 31,
3732 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3733 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3734 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3735 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3737 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3738 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3739 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3740 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3741 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3742 19, 20, 21, 22, 23, 24, -1, 139, -1, -1,
3743 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3744 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3745 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3746 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3748 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3749 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3750 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3752 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3754 139, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3755 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3756 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3757 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3758 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3759 52, 53, 54, 55, 56, 57, -1, -1, -1, -1,
3760 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3761 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3762 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3763 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
3764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3765 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
3766 122, 123, 124, 125, -1, 127, 128, -1, -1, -1,
3767 -1, -1, -1, 135, 136, 3, 4, 5, 6, 7,
3768 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3769 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
3770 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
3771 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3772 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3773 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
3774 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3775 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
3776 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
3777 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3778 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
3779 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
3780 128, -1, -1, -1, -1, -1, -1, 135, 3, 4,
3781 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3782 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3783 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3784 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3785 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3786 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3787 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3788 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3790 95, 96, -1, -1, 99, -1, -1, -1, -1, -1,
3791 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3792 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3793 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
3794 135, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3795 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3796 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3797 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3798 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3799 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
3800 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3801 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3802 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3803 -1, -1, -1, 95, 96, -1, -1, 99, -1, -1,
3804 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3805 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
3806 122, 123, 124, 125, -1, 127, 128, -1, -1, -1,
3807 -1, -1, -1, 135, 3, 4, 5, 6, 7, 8,
3808 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3809 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
3810 -1, 30, 31, 32, 33, 34, 35, 36, 37, 38,
3811 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3812 49, 50, 51, 52, 53, -1, -1, 56, -1, -1,
3813 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
3814 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
3815 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
3816 -1, -1, -1, -1, -1, -1, 95, 96, -1, -1,
3817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3818 -1, -1, -1, -1, -1, -1, -1, 116, 117, 118,
3819 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
3820 3, 4, 5, -1, 7, -1, 135, -1, 11, 12,
3821 -1, -1, -1, 16, -1, 18, 19, 20, 21, 22,
3822 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3823 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3824 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3825 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3826 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
3827 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3828 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3829 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
3830 103, 104, 105, 106, -1, -1, -1, -1, -1, 3,
3831 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3832 -1, -1, 16, 126, 18, 19, 20, 21, 22, 23,
3833 24, 134, -1, -1, -1, -1, 30, 31, 32, 33,
3834 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3835 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3836 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3837 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3838 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3839 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3840 -1, -1, -1, -1, 98, 99, 100, 101, 102, 103,
3841 104, 105, 106, -1, -1, -1, -1, -1, 3, 4,
3842 5, 6, 7, -1, -1, -1, 11, 12, -1, -1,
3843 -1, 16, 126, 18, 19, 20, 21, 22, 23, 24,
3844 134, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3845 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3846 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3847 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3848 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3849 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3850 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3851 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3852 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3853 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3854 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3855 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3856 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3857 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3858 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
3859 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3861 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3862 92, 93, -1, 95, 96, 97, 98, 99, 100, 101,
3863 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3864 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3865 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3866 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3867 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3868 39, -1, -1, -1, -1, -1, 45, 46, -1, 48,
3869 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3870 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3871 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3872 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3873 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3874 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3875 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3876 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
3877 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3878 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3879 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3880 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3881 56, 57, 58, 59, 60, -1, 62, 63, 64, -1,
3882 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3884 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3885 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3886 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3887 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3888 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
3889 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3890 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3891 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3892 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3893 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3894 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3895 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3896 93, -1, 95, 96, -1, 98, 99, 100, 101, 102,
3897 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
3898 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3899 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
3900 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3901 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3902 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3903 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3904 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3905 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3906 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3907 90, -1, 92, 93, -1, -1, 96, 97, 98, 99,
3908 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3909 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3910 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
3911 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3912 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3913 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3914 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3915 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
3916 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3917 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3918 -1, -1, 89, 90, -1, 92, 93, -1, 95, 96,
3919 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3921 4, 5, -1, 7, -1, -1, -1, 11, 12, 126,
3922 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3923 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3924 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3925 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3926 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
3927 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3928 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3929 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3930 -1, -1, 96, -1, 98, 99, 100, 101, 102, 103,
3931 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
3932 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3933 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3934 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3935 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3936 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3937 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3938 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3939 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3940 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3941 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3942 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3943 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3944 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3945 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3946 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3947 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3948 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3949 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3950 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3951 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3952 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3953 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3954 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3955 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
3956 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3957 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3958 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3959 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3960 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3961 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3962 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3963 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3964 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3965 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3966 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3967 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3968 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3969 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3970 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3971 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3972 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3973 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3974 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3975 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3976 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3977 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3978 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3979 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3980 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3981 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3982 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3983 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3984 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3985 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3986 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3987 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3988 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3989 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
3990 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3991 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3992 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3993 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3994 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3995 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3996 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3997 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
3998 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3999 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4000 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4001 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
4002 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4003 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4004 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4005 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4006 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
4007 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4008 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4009 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4010 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4011 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4012 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
4013 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4014 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4015 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4016 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4017 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
4018 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4019 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4020 90, -1, 92, 93, -1, -1, -1, -1, 98, 99,
4021 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4022 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4023 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
4024 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4025 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4026 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4027 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4028 57, -1, 59, 60, -1, 62, 63, 64, -1, -1,
4029 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4030 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
4031 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
4032 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4033 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4034 -1, -1, -1, 11, 12, -1, -1, -1, 16, 126,
4035 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4036 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4037 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4038 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4039 -1, 59, 60, -1, 62, 63, 64, -1, -1, -1,
4040 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4041 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
4042 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
4043 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
4044 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4045 -1, -1, 11, 12, -1, -1, -1, 16, 126, 18,
4046 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4047 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4048 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4049 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4050 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
4051 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4052 -1, -1, -1, -1, 83, -1, -1, 86, -1, -1,
4053 89, 90, -1, 92, 93, -1, -1, -1, -1, 98,
4054 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
4055 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4056 -1, 11, 12, -1, -1, -1, 16, 126, 18, 19,
4057 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4058 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4059 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4060 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4061 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
4062 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4063 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4064 90, -1, 92, 93, -1, -1, -1, -1, 98, 99,
4065 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4066 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4067 11, 12, -1, -1, -1, 16, 126, 18, 19, 20,
4068 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4069 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4070 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4071 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4072 -1, 62, 63, 64, -1, -1, -1, -1, -1, -1,
4073 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4074 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
4075 -1, 92, 93, -1, -1, -1, -1, 98, 99, 100,
4076 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
4077 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4078 12, -1, -1, -1, 16, 126, 18, 19, 20, 21,
4079 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4080 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4081 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4082 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
4083 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
4084 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4085 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
4086 92, 93, -1, -1, -1, -1, 98, 99, 100, 101,
4087 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
4088 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4089 -1, -1, -1, 16, 126, 18, 19, 20, 21, 22,
4090 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4091 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4092 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4093 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4094 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
4095 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4096 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4097 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4098 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4099 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4100 -1, -1, -1, 126, 66, 67, 68, 69, 70, 71,
4101 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4102 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4103 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
4104 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4105 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
4106 122, 123, 124, 125, -1, 127, 128, 52, 53, -1,
4107 -1, 56, -1, 135, -1, -1, -1, -1, -1, -1,
4108 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4109 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4110 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4111 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4112 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4113 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4114 125, -1, 127, 128, 52, 53, -1, -1, 56, -1,
4115 135, -1, -1, -1, -1, -1, -1, -1, 66, 67,
4116 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4117 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4118 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
4119 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4120 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
4121 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
4122 128, 52, 53, -1, -1, 56, -1, 135, -1, -1,
4123 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
4124 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4125 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4126 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
4127 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4128 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
4129 121, 122, 123, 124, 125, -1, 127, 128, 52, 53,
4130 -1, -1, 56, -1, 135, -1, -1, -1, -1, -1,
4131 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
4132 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4133 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4134 -1, 95, 96, -1, -1, -1, -1, -1, -1, -1,
4135 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4136 -1, -1, 116, 117, 118, 119, 120, 121, 122, 123,
4137 124, 125, -1, 127, 128, 52, 53, -1, -1, 56,
4138 -1, 135, -1, -1, -1, -1, -1, -1, -1, 66,
4139 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4140 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4141 -1, -1, -1, -1, -1, -1, -1, -1, 95, 96,
4142 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4143 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
4144 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
4145 127, 128, 52, 53, -1, -1, 56, -1, 135, -1,
4146 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
4147 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4148 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4149 -1, -1, -1, -1, -1, 95, 96, -1, -1, -1,
4150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4151 -1, -1, -1, -1, -1, -1, 116, 117, 118, 119,
4152 120, 121, 122, 123, 124, 125, -1, 127, 128, 52,
4153 53, -1, -1, 56, -1, 135, -1, -1, -1, -1,
4154 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
4155 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4156 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4157 -1, -1, 95, 96, -1, -1, -1, -1, -1, -1,
4158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4159 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122,
4160 123, 124, 125, -1, 127, 128, 52, 53, -1, -1,
4161 56, -1, 135, -1, -1, -1, -1, -1, -1, -1,
4162 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4163 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4164 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4165 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4167 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
4168 -1, 127, 128, 52, 53, -1, -1, 56, -1, 135,
4169 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
4170 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4171 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4172 -1, -1, -1, -1, -1, -1, 95, 96, -1, -1,
4173 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4174 -1, -1, -1, -1, -1, -1, -1, 116, 117, 118,
4175 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
4176 52, 53, -1, -1, 56, -1, 135, -1, -1, -1,
4177 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
4178 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4179 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4180 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
4181 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4182 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
4183 122, 123, 124, 125, -1, 127, 128, 52, 53, -1,
4184 -1, 56, -1, 135, -1, -1, -1, -1, -1, -1,
4185 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4186 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4187 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4188 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4190 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4191 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
4199 0, 143, 144, 0, 1, 3, 4, 5, 6, 7,
4200 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4201 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4202 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4203 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4204 90, 92, 93, 95, 98, 99, 100, 101, 102, 103,
4205 104, 105, 106, 126, 127, 128, 145, 146, 147, 154,
4206 156, 157, 159, 160, 163, 164, 165, 167, 168, 169,
4207 171, 172, 182, 196, 215, 216, 217, 218, 219, 220,
4208 221, 222, 223, 224, 225, 251, 252, 266, 267, 268,
4209 269, 270, 271, 272, 275, 277, 278, 290, 292, 293,
4210 294, 295, 296, 297, 298, 329, 340, 147, 3, 4,
4211 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
4212 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
4213 25, 26, 30, 31, 32, 33, 34, 35, 36, 37,
4214 38, 39, 45, 46, 47, 48, 49, 50, 51, 52,
4215 53, 56, 66, 67, 68, 69, 70, 71, 72, 73,
4216 74, 77, 78, 81, 82, 83, 84, 95, 96, 116,
4217 117, 118, 119, 120, 121, 122, 123, 124, 125, 127,
4218 128, 135, 175, 176, 177, 178, 180, 181, 290, 292,
4219 39, 58, 86, 89, 95, 96, 97, 127, 164, 172,
4220 182, 184, 189, 192, 194, 215, 294, 295, 297, 298,
4221 327, 328, 189, 189, 136, 190, 191, 136, 186, 190,
4222 136, 141, 334, 54, 177, 334, 148, 130, 21, 22,
4223 30, 31, 32, 163, 182, 215, 182, 56, 1, 47,
4224 89, 150, 151, 152, 154, 166, 167, 340, 198, 199,
4225 185, 194, 327, 340, 184, 326, 327, 340, 46, 86,
4226 126, 134, 171, 196, 215, 294, 295, 298, 243, 244,
4227 54, 55, 57, 175, 282, 291, 281, 282, 283, 140,
4228 273, 140, 279, 140, 276, 140, 280, 59, 60, 159,
4229 182, 182, 139, 141, 333, 338, 339, 40, 41, 42,
4230 43, 44, 37, 38, 26, 130, 186, 190, 257, 28,
4231 249, 113, 134, 89, 95, 168, 113, 68, 69, 70,
4232 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4233 83, 84, 114, 116, 117, 118, 119, 120, 121, 122,
4234 123, 124, 125, 85, 132, 133, 197, 157, 158, 158,
4235 202, 204, 158, 333, 339, 86, 165, 172, 215, 231,
4236 294, 295, 298, 52, 56, 83, 86, 173, 174, 215,
4237 294, 295, 298, 174, 33, 34, 35, 36, 49, 50,
4238 51, 52, 56, 136, 175, 296, 324, 85, 133, 332,
4239 257, 269, 87, 87, 134, 184, 56, 184, 184, 184,
4240 113, 88, 134, 193, 340, 85, 132, 133, 87, 87,
4241 134, 193, 189, 334, 335, 189, 188, 189, 194, 327,
4242 340, 157, 335, 157, 54, 63, 64, 155, 136, 183,
4243 130, 150, 85, 133, 87, 154, 153, 166, 137, 333,
4244 339, 335, 335, 157, 138, 134, 141, 337, 134, 337,
4245 131, 337, 334, 56, 59, 60, 168, 170, 134, 85,
4246 132, 133, 245, 61, 107, 109, 110, 284, 110, 284,
4247 110, 65, 284, 110, 110, 274, 284, 110, 61, 110,
4248 110, 110, 274, 110, 61, 110, 68, 68, 139, 147,
4249 158, 158, 158, 158, 154, 157, 157, 259, 258, 94,
4250 161, 250, 95, 159, 184, 194, 195, 166, 134, 171,
4251 134, 156, 159, 172, 182, 184, 195, 182, 182, 182,
4252 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4253 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4254 182, 182, 182, 52, 53, 56, 180, 256, 330, 331,
4255 188, 52, 53, 56, 180, 255, 330, 149, 150, 13,
4256 227, 338, 227, 158, 158, 333, 17, 260, 56, 85,
4257 132, 133, 25, 157, 52, 56, 173, 1, 117, 299,
4258 338, 85, 132, 133, 211, 325, 212, 332, 52, 56,
4259 330, 159, 182, 159, 182, 179, 182, 184, 95, 184,
4260 192, 327, 52, 56, 188, 52, 56, 328, 335, 137,
4261 335, 134, 134, 335, 177, 201, 182, 145, 131, 330,
4262 330, 182, 130, 335, 152, 200, 327, 134, 170, 52,
4263 56, 188, 52, 56, 52, 54, 55, 56, 57, 58,
4264 68, 89, 95, 96, 97, 120, 123, 136, 247, 302,
4265 304, 305, 306, 307, 308, 309, 312, 313, 314, 315,
4266 318, 319, 320, 321, 322, 286, 285, 140, 284, 140,
4267 140, 140, 182, 182, 76, 118, 238, 239, 340, 238,
4268 162, 238, 184, 134, 335, 170, 134, 113, 44, 334,
4269 87, 87, 186, 190, 254, 334, 336, 87, 87, 186,
4270 190, 253, 10, 226, 8, 262, 340, 150, 13, 150,
4271 27, 228, 338, 228, 260, 194, 226, 52, 56, 188,
4272 52, 56, 206, 209, 338, 300, 208, 52, 56, 173,
4273 188, 149, 157, 136, 301, 304, 213, 186, 187, 190,
4274 340, 44, 177, 184, 193, 87, 87, 336, 87, 87,
4275 327, 157, 131, 145, 335, 337, 168, 336, 113, 184,
4276 52, 89, 95, 232, 233, 234, 306, 304, 246, 134,
4277 303, 134, 323, 340, 52, 134, 323, 134, 303, 52,
4278 134, 303, 52, 287, 54, 55, 57, 289, 298, 52,
4279 58, 235, 237, 240, 308, 310, 311, 314, 316, 317,
4280 320, 322, 334, 150, 150, 238, 150, 95, 184, 170,
4281 182, 115, 159, 182, 159, 182, 161, 186, 138, 87,
4282 159, 182, 159, 182, 161, 187, 184, 195, 263, 340,
4283 15, 230, 340, 14, 229, 230, 230, 203, 205, 226,
4284 134, 227, 336, 158, 338, 158, 149, 336, 226, 335,
4285 304, 149, 338, 175, 257, 249, 182, 87, 134, 335,
4286 131, 184, 234, 134, 306, 134, 335, 240, 29, 111,
4287 248, 302, 307, 318, 320, 309, 314, 322, 308, 315,
4288 320, 308, 288, 113, 86, 215, 240, 118, 134, 236,
4289 134, 323, 323, 134, 236, 134, 236, 139, 10, 131,
4290 150, 10, 184, 182, 159, 182, 88, 264, 340, 150,
4291 9, 265, 340, 158, 226, 226, 150, 150, 184, 150,
4292 228, 210, 338, 226, 335, 226, 214, 335, 233, 134,
4293 95, 232, 137, 150, 150, 134, 303, 134, 303, 323,
4294 134, 303, 134, 303, 303, 150, 215, 56, 85, 118,
4295 235, 317, 320, 310, 314, 308, 316, 320, 308, 52,
4296 241, 242, 305, 131, 86, 172, 215, 294, 295, 298,
4297 227, 150, 227, 226, 226, 230, 260, 261, 207, 149,
4298 301, 134, 233, 134, 306, 10, 131, 308, 320, 308,
4299 308, 108, 52, 56, 134, 236, 134, 236, 323, 134,
4300 236, 134, 236, 236, 134, 334, 56, 85, 132, 133,
4301 150, 150, 150, 226, 149, 233, 134, 303, 134, 303,
4302 303, 303, 308, 320, 308, 308, 242, 52, 56, 188,
4303 52, 56, 262, 229, 226, 226, 233, 308, 236, 134,
4304 236, 236, 236, 336, 303, 308, 236
4307 #define yyerrok (yyerrstatus = 0)
4308 #define yyclearin (yychar = YYEMPTY)
4309 #define YYEMPTY (-2)
4312 #define YYACCEPT goto yyacceptlab
4313 #define YYABORT goto yyabortlab
4314 #define YYERROR goto yyerrorlab
4324 #define YYFAIL goto yyerrlab
4332 #define YYRECOVERING() (!!yyerrstatus)
4334 #define YYBACKUP(Token, Value) \
4336 if (yychar == YYEMPTY && yylen == 1) \
4345 parser_yyerror (parser, YY_("syntax error: cannot back up")); \
4352 #define YYERRCODE 256
4359 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4360 #ifndef YYLLOC_DEFAULT
4361 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4365 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4366 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4367 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4368 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4372 (Current).first_line = (Current).last_line = \
4373 YYRHSLOC (Rhs, 0).last_line; \
4374 (Current).first_column = (Current).last_column = \
4375 YYRHSLOC (Rhs, 0).last_column; \
4383 #ifndef YY_LOCATION_PRINT
4384 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4391 # define YYLEX yylex (&yylval, YYLEX_PARAM)
4393 # define YYLEX yylex (&yylval, parser)
4401 # define YYFPRINTF fprintf
4404 # define YYDPRINTF(Args) \
4410 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4414 YYFPRINTF (stderr, "%s ", Title); \
4415 yy_symbol_print (stderr, \
4416 Type, Value, parser); \
4417 YYFPRINTF (stderr, "\n"); \
4427 #if (defined __STDC__ || defined __C99__FUNC__ \
4428 || defined __cplusplus || defined _MSC_VER)
4445 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4461 #if (defined __STDC__ || defined __C99__FUNC__ \
4462 || defined __cplusplus || defined _MSC_VER)
4467 yy_symbol_print (yyoutput, yytype, yyvaluep, parser)
4475 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4477 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4488 #if (defined __STDC__ || defined __C99__FUNC__ \
4489 || defined __cplusplus || defined _MSC_VER)
4491 yy_stack_print (yytype_int16 *
yybottom, yytype_int16 *
yytop)
4494 yy_stack_print (yybottom, yytop)
4495 yytype_int16 *yybottom;
4496 yytype_int16 *yytop;
4508 # define YY_STACK_PRINT(Bottom, Top) \
4511 yy_stack_print ((Bottom), (Top)); \
4519 #if (defined __STDC__ || defined __C99__FUNC__ \
4520 || defined __cplusplus || defined _MSC_VER)
4525 yy_reduce_print (yyvsp, yyrule, parser)
4531 int yynrhs = yyr2[
yyrule];
4534 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4537 for (yyi = 0; yyi < yynrhs; yyi++)
4540 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
4541 &(yyvsp[(yyi + 1) - (yynrhs)])
4547 # define YY_REDUCE_PRINT(Rule) \
4550 yy_reduce_print (yyvsp, Rule, parser); \
4559 # define YYDPRINTF(Args)
4560 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4561 # define YY_STACK_PRINT(Bottom, Top)
4562 # define YY_REDUCE_PRINT(Rule)
4568 # define YYINITDEPTH 200
4579 # define YYMAXDEPTH 10000
4586 # if defined __GLIBC__ && defined _STRING_H
4587 # define yystrlen strlen
4590 #if (defined __STDC__ || defined __C99__FUNC__ \
4591 || defined __cplusplus || defined _MSC_VER)
4593 yystrlen (
const char *
yystr)
4601 for (yylen = 0; yystr[
yylen]; yylen++)
4609 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4610 # define yystpcpy stpcpy
4614 #if (defined __STDC__ || defined __C99__FUNC__ \
4615 || defined __cplusplus || defined _MSC_VER)
4620 yystpcpy (yydest, yysrc)
4628 while ((*yyd++ = *yys++) !=
'\0')
4650 char const *yyp =
yystr;
4657 goto do_not_strip_quotes;
4661 goto do_not_strip_quotes;
4674 do_not_strip_quotes: ;
4678 return yystrlen (yystr);
4680 return yystpcpy (yyres, yystr) - yyres;
4699 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4701 const char *yyformat = 0;
4703 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4738 yyarg[yycount++] = yytname[
yytoken];
4744 int yyxbegin = yyn < 0 ? -yyn : 0;
4746 int yychecklim =
YYLAST - yyn + 1;
4750 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4751 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR
4754 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4760 yyarg[yycount++] = yytname[yyx];
4761 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
4762 if (! (yysize <= yysize1
4772 # define YYCASE_(N, S) \
4777 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
4778 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4779 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4780 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4781 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4785 yysize1 = yysize + yystrlen (yyformat);
4790 if (*yymsg_alloc < yysize)
4792 *yymsg_alloc = 2 * yysize;
4793 if (! (yysize <= *yymsg_alloc
4805 while ((*yyp = *yyformat) !=
'\0')
4806 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
4826 #if (defined __STDC__ || defined __C99__FUNC__ \
4827 || defined __cplusplus || defined _MSC_VER)
4856 #ifdef YYPARSE_PARAM
4857 #if defined __STDC__ || defined __cplusplus
4858 int yyparse (
void *YYPARSE_PARAM);
4863 #if defined __STDC__ || defined __cplusplus
4875 #ifdef YYPARSE_PARAM
4876 #if (defined __STDC__ || defined __C99__FUNC__ \
4877 || defined __cplusplus || defined _MSC_VER)
4883 void *YYPARSE_PARAM;
4886 #if (defined __STDC__ || defined __C99__FUNC__ \
4887 || defined __cplusplus || defined _MSC_VER)
4944 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4955 YYDPRINTF ((stderr,
"Starting parse\n"));
4982 if (yyss + yystacksize - 1 <= yyssp)
4985 YYSIZE_T yysize = yyssp - yyss + 1;
4993 yytype_int16 *yyss1 =
yyss;
4999 yyoverflow (
YY_(
"memory exhausted"),
5000 &yyss1, yysize *
sizeof (*yyssp),
5001 &yyvs1, yysize *
sizeof (*yyvsp),
5008 # ifndef YYSTACK_RELOCATE
5009 goto yyexhaustedlab;
5013 goto yyexhaustedlab;
5019 yytype_int16 *yyss1 =
yyss;
5023 goto yyexhaustedlab;
5026 # undef YYSTACK_RELOCATE
5033 yyssp = yyss + yysize - 1;
5034 yyvsp = yyvs + yysize - 1;
5036 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
5037 (
unsigned long int) yystacksize));
5039 if (yyss + yystacksize - 1 <= yyssp)
5043 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
5068 YYDPRINTF ((stderr,
"Reading a token: "));
5074 yychar = yytoken =
YYEOF;
5075 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5086 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5139 yyval = yyvsp[1-
yylen];
5148 #line 855 "ripper.y"
5162 #line 864 "ripper.y"
5169 NODE *node = (yyvsp[(2) - (2)].
val);
5170 while (node->nd_next) {
5171 node = node->nd_next;
5178 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5179 parser->result = dispatch1(program, (yyval.
val));
5188 #line 887 "ripper.y"
5195 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5202 #line 898 "ripper.y"
5207 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5216 #line 907 "ripper.y"
5221 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5229 #line 915 "ripper.y"
5234 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5242 #line 923 "ripper.y"
5251 #line 930 "ripper.y"
5263 #line 937 "ripper.y"
5267 (yyvsp[(4) - (5)].
val));
5272 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5280 #line 954 "ripper.y"
5283 (yyval.
val) = (yyvsp[(1) - (4)].
val);
5284 if ((yyvsp[(2) - (4)].
val)) {
5287 else if ((yyvsp[(3) - (4)].
val)) {
5288 rb_warn0(
"else without rescue is useless");
5291 if ((yyvsp[(4) - (4)].
val)) {
5313 #line 984 "ripper.y"
5320 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5327 #line 995 "ripper.y"
5332 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5341 #line 1004 "ripper.y"
5346 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5354 #line 1012 "ripper.y"
5359 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5367 #line 1020 "ripper.y"
5376 #line 1026 "ripper.y"
5378 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5385 #line 1030 "ripper.y"
5387 yyerror(
"BEGIN is permitted only at toplevel");
5398 #line 1038 "ripper.y"
5402 (yyvsp[(4) - (5)].
val));
5407 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5415 #line 1050 "ripper.y"
5422 #line 1051 "ripper.y"
5427 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
5435 #line 1059 "ripper.y"
5440 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5448 #line 1067 "ripper.y"
5453 buf[1] = (char)(yyvsp[(3) - (3)].
val)->nd_nth;
5456 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5464 #line 1078 "ripper.y"
5467 yyerror(
"can't make alias for the number variables");
5470 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5471 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5479 #line 1088 "ripper.y"
5482 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5484 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].
val));
5492 #line 1096 "ripper.y"
5498 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5506 #line 1105 "ripper.y"
5512 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5520 #line 1114 "ripper.y"
5530 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5538 #line 1127 "ripper.y"
5548 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
5556 #line 1140 "ripper.y"
5562 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5570 #line 1149 "ripper.y"
5573 rb_warn0(
"END in method; use at_exit");
5579 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].
val));
5587 #line 1162 "ripper.y"
5592 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5594 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5602 #line 1172 "ripper.y"
5612 #line 1177 "ripper.y"
5620 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
5621 (yyvsp[(5) - (6)].
val) = 0;
5623 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
5624 (yyvsp[(5) - (6)].
val) = 1;
5630 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
5638 #line 1198 "ripper.y"
5648 #line 1203 "ripper.y"
5658 #line 1208 "ripper.y"
5664 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
5665 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
5673 #line 1218 "ripper.y"
5683 #line 1223 "ripper.y"
5689 (yyval.
val) = dispatch2(assign, dispatch1(var_field, (yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
5690 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5698 #line 1233 "ripper.y"
5704 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5712 #line 1242 "ripper.y"
5716 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5718 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5726 #line 1251 "ripper.y"
5730 (yyval.
val) = (yyvsp[(1) - (3)].
val);
5732 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5740 #line 1263 "ripper.y"
5746 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5754 #line 1272 "ripper.y"
5760 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5768 #line 1285 "ripper.y"
5781 #line 1293 "ripper.y"
5794 #line 1301 "ripper.y"
5807 #line 1309 "ripper.y"
5812 (yyval.
val) = dispatch2(unary, ripper_id2sym(
'!'), (yyvsp[(2) - (2)].
val));
5820 #line 1320 "ripper.y"
5824 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5827 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5835 #line 1337 "ripper.y"
5838 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5840 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
5841 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5849 #line 1348 "ripper.y"
5862 #line 1358 "ripper.y"
5877 #line 1370 "ripper.y"
5890 #line 1380 "ripper.y"
5893 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5896 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
5904 #line 1389 "ripper.y"
5910 (yyval.
val) = (yyvsp[(3) - (3)].
val);
5913 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
5914 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(3) - (3)].
val));
5922 #line 1402 "ripper.y"
5925 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5928 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5936 #line 1411 "ripper.y"
5941 (yyval.
val) = (yyvsp[(5) - (5)].
val);
5944 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
5945 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5953 #line 1423 "ripper.y"
5956 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
5967 #line 1432 "ripper.y"
5972 (yyval.
val) = (yyvsp[(5) - (5)].
val);
5976 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5984 #line 1444 "ripper.y"
5990 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
5998 #line 1453 "ripper.y"
6004 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].
val));
6012 #line 1462 "ripper.y"
6017 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].
val));
6025 #line 1470 "ripper.y"
6030 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].
val));
6038 #line 1478 "ripper.y"
6043 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].
val));
6051 #line 1489 "ripper.y"
6054 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6056 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6064 #line 1500 "ripper.y"
6069 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6077 #line 1510 "ripper.y"
6082 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6090 #line 1518 "ripper.y"
6095 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
6103 #line 1526 "ripper.y"
6108 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6116 #line 1534 "ripper.y"
6121 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6122 (yyval.
val) = mlhs_add((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
6130 #line 1543 "ripper.y"
6135 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].
val),
Qnil);
6143 #line 1551 "ripper.y"
6148 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].
val),
Qnil);
6149 (yyval.
val) = mlhs_add((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
6157 #line 1560 "ripper.y"
6162 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6170 #line 1568 "ripper.y"
6175 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6176 (yyval.
val) = mlhs_add((yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
6184 #line 1577 "ripper.y"
6189 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6197 #line 1585 "ripper.y"
6202 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6203 (yyval.
val) = mlhs_add((yyval.
val), (yyvsp[(3) - (3)].
val));
6211 #line 1597 "ripper.y"
6214 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6216 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6224 #line 1607 "ripper.y"
6229 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6237 #line 1615 "ripper.y"
6242 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
6250 #line 1625 "ripper.y"
6255 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6263 #line 1633 "ripper.y"
6268 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6276 #line 1643 "ripper.y"
6285 #line 1647 "ripper.y"
6294 #line 1651 "ripper.y"
6307 #line 1659 "ripper.y"
6312 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6320 #line 1667 "ripper.y"
6325 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6333 #line 1675 "ripper.y"
6338 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6346 #line 1683 "ripper.y"
6350 yyerror(
"dynamic constant assignment");
6354 yyerror(
"dynamic constant assignment");
6355 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6363 #line 1695 "ripper.y"
6367 yyerror(
"dynamic constant assignment");
6370 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6378 #line 1705 "ripper.y"
6384 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (1)].
val));
6385 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6393 #line 1717 "ripper.y"
6399 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6407 #line 1726 "ripper.y"
6413 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6421 #line 1735 "ripper.y"
6434 #line 1743 "ripper.y"
6439 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6447 #line 1751 "ripper.y"
6460 #line 1759 "ripper.y"
6465 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6473 #line 1767 "ripper.y"
6477 yyerror(
"dynamic constant assignment");
6480 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6482 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6491 #line 1780 "ripper.y"
6495 yyerror(
"dynamic constant assignment");
6498 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].
val));
6500 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6509 #line 1793 "ripper.y"
6515 (yyval.
val) = dispatch1(assign_error, (yyvsp[(1) - (1)].
val));
6523 #line 1804 "ripper.y"
6526 yyerror(
"class/module name must be CONSTANT");
6528 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].
val));
6536 #line 1815 "ripper.y"
6541 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
6549 #line 1823 "ripper.y"
6554 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].
val));
6562 #line 1831 "ripper.y"
6567 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6575 #line 1844 "ripper.y"
6578 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6585 #line 1849 "ripper.y"
6589 (yyval.
val) = (yyvsp[(1) - (1)].
id);
6591 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6599 #line 1864 "ripper.y"
6604 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
6612 #line 1875 "ripper.y"
6625 #line 1882 "ripper.y"
6632 #line 1883 "ripper.y"
6645 #line 1892 "ripper.y"
6652 #line 1893 "ripper.y"
6659 #line 1894 "ripper.y"
6666 #line 1895 "ripper.y"
6673 #line 1896 "ripper.y"
6680 #line 1897 "ripper.y"
6687 #line 1898 "ripper.y"
6694 #line 1899 "ripper.y"
6701 #line 1900 "ripper.y"
6708 #line 1901 "ripper.y"
6715 #line 1902 "ripper.y"
6722 #line 1903 "ripper.y"
6729 #line 1904 "ripper.y"
6736 #line 1905 "ripper.y"
6743 #line 1906 "ripper.y"
6750 #line 1907 "ripper.y"
6757 #line 1908 "ripper.y"
6764 #line 1909 "ripper.y"
6771 #line 1910 "ripper.y"
6778 #line 1911 "ripper.y"
6785 #line 1912 "ripper.y"
6792 #line 1913 "ripper.y"
6799 #line 1914 "ripper.y"
6806 #line 1915 "ripper.y"
6813 #line 1916 "ripper.y"
6820 #line 1917 "ripper.y"
6827 #line 1918 "ripper.y"
6834 #line 1919 "ripper.y"
6841 #line 1920 "ripper.y"
6848 #line 1921 "ripper.y"
6855 #line 1939 "ripper.y"
6861 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6869 #line 1948 "ripper.y"
6876 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (5)].
val), dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val)));
6884 #line 1958 "ripper.y"
6894 #line 1963 "ripper.y"
6900 (yyvsp[(3) - (5)].
val) = dispatch2(rescue_mod, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
6909 #line 1973 "ripper.y"
6922 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
6923 (yyvsp[(5) - (6)].
val) = 0;
6925 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
6926 (yyvsp[(5) - (6)].
val) = 1;
6931 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val),
escape_Qundef((yyvsp[(3) - (6)].
val)));
6932 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
6940 #line 1999 "ripper.y"
6950 #line 2004 "ripper.y"
6960 #line 2009 "ripper.y"
6970 #line 2014 "ripper.y"
6976 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6977 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
6985 #line 2024 "ripper.y"
6991 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (4)].
val));
6992 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
7000 #line 2034 "ripper.y"
7006 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (3)].
val));
7007 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
7008 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
7016 #line 2045 "ripper.y"
7027 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7035 #line 2059 "ripper.y"
7046 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7054 #line 2073 "ripper.y"
7059 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'+'), (yyvsp[(3) - (3)].
val));
7067 #line 2081 "ripper.y"
7072 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'-'), (yyvsp[(3) - (3)].
val));
7080 #line 2089 "ripper.y"
7085 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'*'), (yyvsp[(3) - (3)].
val));
7093 #line 2097 "ripper.y"
7098 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'/'), (yyvsp[(3) - (3)].
val));
7106 #line 2105 "ripper.y"
7111 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'%'), (yyvsp[(3) - (3)].
val));
7119 #line 2113 "ripper.y"
7132 #line 2121 "ripper.y"
7146 #line 2130 "ripper.y"
7160 #line 2139 "ripper.y"
7173 #line 2147 "ripper.y"
7186 #line 2155 "ripper.y"
7191 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'|'), (yyvsp[(3) - (3)].
val));
7199 #line 2163 "ripper.y"
7204 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'^'), (yyvsp[(3) - (3)].
val));
7212 #line 2171 "ripper.y"
7217 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'&'), (yyvsp[(3) - (3)].
val));
7225 #line 2179 "ripper.y"
7238 #line 2187 "ripper.y"
7243 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'>'), (yyvsp[(3) - (3)].
val));
7251 #line 2195 "ripper.y"
7264 #line 2203 "ripper.y"
7269 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].
val),
ID2SYM(
'<'), (yyvsp[(3) - (3)].
val));
7277 #line 2211 "ripper.y"
7290 #line 2219 "ripper.y"
7303 #line 2227 "ripper.y"
7316 #line 2235 "ripper.y"
7329 #line 2243 "ripper.y"
7345 #line 2254 "ripper.y"
7358 #line 2262 "ripper.y"
7363 (yyval.
val) = dispatch2(unary,
ID2SYM(
'!'), (yyvsp[(2) - (2)].
val));
7371 #line 2270 "ripper.y"
7376 (yyval.
val) = dispatch2(unary,
ID2SYM(
'~'), (yyvsp[(2) - (2)].
val));
7384 #line 2278 "ripper.y"
7397 #line 2286 "ripper.y"
7410 #line 2294 "ripper.y"
7423 #line 2302 "ripper.y"
7436 #line 2309 "ripper.y"
7443 #line 2310 "ripper.y"
7450 (yyval.
val) = dispatch1(defined, (yyvsp[(4) - (4)].
val));
7458 #line 2320 "ripper.y"
7465 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
7473 #line 2330 "ripper.y"
7475 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7482 #line 2336 "ripper.y"
7486 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7489 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7497 #line 2349 "ripper.y"
7499 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7506 #line 2353 "ripper.y"
7511 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7519 #line 2361 "ripper.y"
7524 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7532 #line 2371 "ripper.y"
7535 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7545 #line 2387 "ripper.y"
7547 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7554 #line 2391 "ripper.y"
7559 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7567 #line 2399 "ripper.y"
7572 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7580 #line 2409 "ripper.y"
7586 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7594 #line 2418 "ripper.y"
7599 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
7607 #line 2426 "ripper.y"
7613 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7614 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7622 #line 2436 "ripper.y"
7628 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7636 #line 2447 "ripper.y"
7638 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7645 #line 2453 "ripper.y"
7655 #line 2458 "ripper.y"
7659 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7666 #line 2466 "ripper.y"
7671 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7679 #line 2476 "ripper.y"
7681 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7688 #line 2480 "ripper.y"
7697 #line 2486 "ripper.y"
7702 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7710 #line 2494 "ripper.y"
7715 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
7723 #line 2502 "ripper.y"
7734 (yyval.
val) = arg_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7742 #line 2516 "ripper.y"
7753 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
7761 #line 2532 "ripper.y"
7772 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
7780 #line 2546 "ripper.y"
7792 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7800 #line 2561 "ripper.y"
7805 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
7813 #line 2581 "ripper.y"
7818 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].
val)), arg_new());
7826 #line 2589 "ripper.y"
7840 #line 2599 "ripper.y"
7844 if ((yyvsp[(3) - (4)].
val) ==
NULL) {
7855 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].
val));
7863 #line 2616 "ripper.y"
7870 #line 2617 "ripper.y"
7875 (yyval.
val) = dispatch1(paren, 0);
7883 #line 2625 "ripper.y"
7893 #line 2629 "ripper.y"
7900 #line 2630 "ripper.y"
7904 (yyval.
val) = (yyvsp[(3) - (5)].
val);
7906 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (5)].
val));
7914 #line 2639 "ripper.y"
7917 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7919 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
7927 #line 2647 "ripper.y"
7932 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7940 #line 2655 "ripper.y"
7945 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
7953 #line 2663 "ripper.y"
7956 if ((yyvsp[(2) - (3)].
val) == 0) {
7960 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7971 #line 2676 "ripper.y"
7984 #line 2684 "ripper.y"
7997 #line 2692 "ripper.y"
8002 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].
val)));
8010 #line 2700 "ripper.y"
8015 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
8023 #line 2708 "ripper.y"
8036 #line 2715 "ripper.y"
8043 #line 2716 "ripper.y"
8050 (yyval.
val) = dispatch1(defined, (yyvsp[(5) - (6)].
val));
8058 #line 2726 "ripper.y"
8071 #line 2734 "ripper.y"
8084 #line 2742 "ripper.y"
8088 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8090 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), arg_new());
8091 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(2) - (2)].
val));
8099 #line 2753 "ripper.y"
8104 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8106 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
8114 #line 2763 "ripper.y"
8116 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8123 #line 2770 "ripper.y"
8137 #line 2782 "ripper.y"
8151 #line 2790 "ripper.y"
8158 #line 2790 "ripper.y"
8165 #line 2793 "ripper.y"
8171 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8179 #line 2801 "ripper.y"
8186 #line 2801 "ripper.y"
8193 #line 2804 "ripper.y"
8199 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8207 #line 2815 "ripper.y"
8213 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8221 #line 2824 "ripper.y"
8226 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].
val));
8234 #line 2832 "ripper.y"
8241 #line 2834 "ripper.y"
8248 #line 2837 "ripper.y"
8293 m->nd_next = (yyvsp[(2) - (9)].
val);
8302 tbl[0] = 1; tbl[1] =
id;
8306 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].
val));
8314 #line 2898 "ripper.y"
8317 yyerror(
"class definition in method body");
8329 #line 2909 "ripper.y"
8335 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val));
8344 #line 2919 "ripper.y"
8354 #line 2924 "ripper.y"
8365 #line 2931 "ripper.y"
8371 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (8)].
val), (yyvsp[(7) - (8)].
val));
8382 #line 2943 "ripper.y"
8385 yyerror(
"module definition in method body");
8397 #line 2954 "ripper.y"
8403 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8412 #line 2964 "ripper.y"
8424 #line 2973 "ripper.y"
8432 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val));
8443 #line 2986 "ripper.y"
8450 #line 2987 "ripper.y"
8461 #line 2995 "ripper.y"
8466 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), body);
8469 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].
val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].
val));
8479 #line 3008 "ripper.y"
8484 (yyval.
val) = dispatch1(
break, arg_new());
8492 #line 3016 "ripper.y"
8497 (yyval.
val) = dispatch1(next, arg_new());
8505 #line 3024 "ripper.y"
8518 #line 3032 "ripper.y"
8531 #line 3042 "ripper.y"
8535 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8538 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8546 #line 3054 "ripper.y"
8555 #line 3060 "ripper.y"
8564 #line 3066 "ripper.y"
8573 #line 3072 "ripper.y"
8582 #line 3078 "ripper.y"
8591 #line 3084 "ripper.y"
8600 #line 3090 "ripper.y"
8609 #line 3096 "ripper.y"
8618 #line 3102 "ripper.y"
8627 #line 3108 "ripper.y"
8640 #line 3118 "ripper.y"
8649 #line 3126 "ripper.y"
8656 #line 3132 "ripper.y"
8657 { (yyval.
val) = (yyvsp[(2) - (2)].
val); }
8663 #line 3139 "ripper.y"
8670 #line 3148 "ripper.y"
8684 #line 3160 "ripper.y"
8687 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8689 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].
val));
8697 #line 3174 "ripper.y"
8702 (yyval.
val) = dispatch1(mlhs_paren, (yyval.
val));
8710 #line 3182 "ripper.y"
8713 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8715 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
8723 #line 3192 "ripper.y"
8728 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8736 #line 3200 "ripper.y"
8741 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8749 #line 3210 "ripper.y"
8754 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8762 #line 3218 "ripper.y"
8768 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].
val), (yyval.
val));
8776 #line 3227 "ripper.y"
8782 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].
val), (yyval.
val));
8790 #line 3236 "ripper.y"
8795 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val),
Qnil);
8803 #line 3244 "ripper.y"
8808 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
8816 #line 3252 "ripper.y"
8822 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8830 #line 3261 "ripper.y"
8839 (yyval.
val) = mlhs_add_star((yyval.
val), (yyvsp[(4) - (4)].
val));
8847 #line 3273 "ripper.y"
8852 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8860 #line 3281 "ripper.y"
8865 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8873 #line 3292 "ripper.y"
8882 #line 3296 "ripper.y"
8891 #line 3300 "ripper.y"
8900 #line 3304 "ripper.y"
8909 #line 3310 "ripper.y"
8911 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8918 #line 3314 "ripper.y"
8927 #line 3320 "ripper.y"
8936 #line 3324 "ripper.y"
8938 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
8945 #line 3328 "ripper.y"
8954 #line 3332 "ripper.y"
8963 #line 3336 "ripper.y"
8972 #line 3340 "ripper.y"
8977 dispatch1(excessed_comma, (yyval.
val));
8985 #line 3348 "ripper.y"
8994 #line 3352 "ripper.y"
9003 #line 3356 "ripper.y"
9012 #line 3360 "ripper.y"
9021 #line 3364 "ripper.y"
9030 #line 3368 "ripper.y"
9039 #line 3372 "ripper.y"
9048 #line 3376 "ripper.y"
9057 #line 3380 "ripper.y"
9066 #line 3387 "ripper.y"
9075 #line 3393 "ripper.y"
9089 #line 3402 "ripper.y"
9103 #line 3411 "ripper.y"
9106 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9116 #line 3422 "ripper.y"
9125 #line 3426 "ripper.y"
9130 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9138 #line 3438 "ripper.y"
9147 #line 3445 "ripper.y"
9156 #line 3452 "ripper.y"
9169 #line 3460 "ripper.y"
9178 #line 3465 "ripper.y"
9187 #line 3468 "ripper.y"
9197 #line 3473 "ripper.y"
9206 #line 3477 "ripper.y"
9213 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9222 #line 3490 "ripper.y"
9225 (yyval.
val) = (yyvsp[(2) - (4)].
val);
9227 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
9235 #line 3498 "ripper.y"
9238 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9240 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9248 #line 3508 "ripper.y"
9250 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9257 #line 3512 "ripper.y"
9259 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9266 #line 3518 "ripper.y"
9278 #line 3527 "ripper.y"
9293 #line 3539 "ripper.y"
9303 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9306 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9314 #line 3555 "ripper.y"
9317 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val));
9319 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val));
9320 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9328 #line 3564 "ripper.y"
9333 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9336 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9337 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9345 #line 3576 "ripper.y"
9350 (yyval.
val) = (yyvsp[(5) - (5)].
val);
9353 (yyval.
val) = dispatch4(
command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
9354 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
9362 #line 3590 "ripper.y"
9365 (yyval.
val) = (yyvsp[(1) - (2)].
val);
9368 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), (yyvsp[(2) - (2)].
val));
9376 #line 3599 "ripper.y"
9387 #line 3605 "ripper.y"
9390 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9393 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9394 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9402 #line 3615 "ripper.y"
9413 #line 3621 "ripper.y"
9416 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val));
9419 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (5)].
val), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
9420 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(5) - (5)].
val));
9428 #line 3631 "ripper.y"
9441 #line 3639 "ripper.y"
9452 #line 3645 "ripper.y"
9458 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].
val), ripper_id2sym(
'.'),
9460 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9468 #line 3656 "ripper.y"
9479 #line 3662 "ripper.y"
9487 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9495 #line 3673 "ripper.y"
9500 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
9508 #line 3681 "ripper.y"
9521 #line 3689 "ripper.y"
9538 #line 3703 "ripper.y"
9551 #line 3712 "ripper.y"
9566 #line 3722 "ripper.y"
9579 #line 3731 "ripper.y"
9594 #line 3745 "ripper.y"
9597 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
9607 #line 3761 "ripper.y"
9610 if ((yyvsp[(3) - (6)].
val)) {
9615 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
9617 (yyval.
val) = dispatch4(rescue,
9629 #line 3781 "ripper.y"
9642 #line 3789 "ripper.y"
9647 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9655 #line 3800 "ripper.y"
9657 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9664 #line 3807 "ripper.y"
9667 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9669 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].
val));
9677 #line 3819 "ripper.y"
9682 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
9690 #line 3830 "ripper.y"
9693 NODE *node = (yyvsp[(1) - (1)].
val);
9702 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9710 #line 3849 "ripper.y"
9715 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9723 #line 3859 "ripper.y"
9726 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9728 (yyval.
val) = dispatch1(string_literal, (yyvsp[(2) - (3)].
val));
9736 #line 3869 "ripper.y"
9739 NODE *node = (yyvsp[(2) - (3)].
val);
9758 (yyval.
val) = dispatch1(xstring_literal, (yyvsp[(2) - (3)].
val));
9766 #line 3896 "ripper.y"
9770 NODE *node = (yyvsp[(2) - (3)].
val);
9794 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9796 VALUE tail = list->nd_head->nd_lit;
9798 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9804 prev->nd_next = list->nd_next;
9817 if (!node->nd_next) {
9826 (yyval.
val) = dispatch2(regexp_literal, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
9834 #line 3961 "ripper.y"
9840 (yyval.
val) = dispatch1(array, (yyval.
val));
9848 #line 3970 "ripper.y"
9851 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9853 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9861 #line 3980 "ripper.y"
9874 #line 3988 "ripper.y"
9879 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9887 #line 4000 "ripper.y"
9890 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
9897 #line 4006 "ripper.y"
9902 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9910 #line 4016 "ripper.y"
9916 (yyval.
val) = dispatch1(array, (yyval.
val));
9924 #line 4025 "ripper.y"
9927 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9929 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9937 #line 4035 "ripper.y"
9950 #line 4043 "ripper.y"
9957 (yyval.
val) = dispatch2(symbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9965 #line 4055 "ripper.y"
9971 (yyval.
val) = dispatch1(array, (yyval.
val));
9979 #line 4064 "ripper.y"
9982 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9984 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9992 #line 4074 "ripper.y"
9998 (yyval.
val) = dispatch1(array, (yyval.
val));
10006 #line 4083 "ripper.y"
10009 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10011 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
10019 #line 4093 "ripper.y"
10032 #line 4101 "ripper.y"
10037 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10045 #line 4111 "ripper.y"
10058 #line 4119 "ripper.y"
10067 (yyval.
val) = dispatch2(qsymbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
10075 #line 4133 "ripper.y"
10088 #line 4141 "ripper.y"
10093 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10101 #line 4151 "ripper.y"
10114 #line 4159 "ripper.y"
10119 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10127 #line 4169 "ripper.y"
10140 #line 4177 "ripper.y"
10143 NODE *
head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].
val);
10145 (yyval.
val) = tail;
10148 (yyval.
val) = head;
10164 (yyval.
val) = dispatch2(regexp_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10172 #line 4207 "ripper.y"
10183 #line 4213 "ripper.y"
10190 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].
val));
10198 #line 4223 "ripper.y"
10210 #line 4229 "ripper.y"
10221 #line 4234 "ripper.y"
10231 #line 4239 "ripper.y"
10241 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(5) - (6)].
val));
10249 #line 4254 "ripper.y"
10254 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10262 #line 4262 "ripper.y"
10267 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10275 #line 4270 "ripper.y"
10280 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10288 #line 4281 "ripper.y"
10292 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10294 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].
val));
10302 #line 4298 "ripper.y"
10308 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].
val));
10316 #line 4311 "ripper.y"
10329 #line 4319 "ripper.y"
10342 #line 4335 "ripper.y"
10349 #line 4336 "ripper.y"
10356 #line 4337 "ripper.y"
10363 #line 4338 "ripper.y"
10370 #line 4339 "ripper.y"
10377 #line 4340 "ripper.y"
10384 #line 4341 "ripper.y"
10391 #line 4345 "ripper.y"
10396 if (id_is_var(
get_id((yyvsp[(1) - (1)].
val)))) {
10397 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10400 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].
val));
10409 #line 4358 "ripper.y"
10414 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
10422 #line 4368 "ripper.y"
10427 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10435 #line 4376 "ripper.y"
10440 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10448 #line 4390 "ripper.y"
10461 #line 4398 "ripper.y"
10471 #line 4403 "ripper.y"
10473 (yyval.
val) = (yyvsp[(3) - (4)].
val);
10480 #line 4407 "ripper.y"
10495 #line 4419 "ripper.y"
10498 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10500 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
10510 #line 4429 "ripper.y"
10512 (yyval.
val) = (yyvsp[(1) - (2)].
val);
10521 #line 4437 "ripper.y"
10530 #line 4441 "ripper.y"
10539 #line 4445 "ripper.y"
10548 #line 4449 "ripper.y"
10557 #line 4455 "ripper.y"
10559 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10566 #line 4459 "ripper.y"
10575 #line 4465 "ripper.y"
10584 #line 4469 "ripper.y"
10586 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
10593 #line 4473 "ripper.y"
10602 #line 4477 "ripper.y"
10611 #line 4481 "ripper.y"
10620 #line 4485 "ripper.y"
10629 #line 4489 "ripper.y"
10638 #line 4493 "ripper.y"
10647 #line 4497 "ripper.y"
10656 #line 4501 "ripper.y"
10665 #line 4505 "ripper.y"
10674 #line 4509 "ripper.y"
10683 #line 4513 "ripper.y"
10692 #line 4517 "ripper.y"
10701 #line 4521 "ripper.y"
10711 #line 4528 "ripper.y"
10714 yyerror(
"formal argument cannot be a constant");
10717 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10725 #line 4537 "ripper.y"
10728 yyerror(
"formal argument cannot be an instance variable");
10731 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10739 #line 4546 "ripper.y"
10742 yyerror(
"formal argument cannot be a global variable");
10745 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10753 #line 4555 "ripper.y"
10756 yyerror(
"formal argument cannot be a class variable");
10759 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10767 #line 4567 "ripper.y"
10770 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10777 #line 4574 "ripper.y"
10791 #line 4583 "ripper.y"
10805 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
10813 #line 4604 "ripper.y"
10822 #line 4609 "ripper.y"
10825 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10838 #line 4622 "ripper.y"
10853 #line 4634 "ripper.y"
10868 #line 4646 "ripper.y"
10871 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10881 #line 4654 "ripper.y"
10884 NODE *kws = (yyvsp[(1) - (3)].
val);
10886 while (kws->nd_next) {
10887 kws = kws->nd_next;
10889 kws->nd_next = (yyvsp[(3) - (3)].
val);
10890 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10900 #line 4671 "ripper.y"
10903 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10913 #line 4679 "ripper.y"
10916 NODE *kws = (yyvsp[(1) - (3)].
val);
10918 while (kws->nd_next) {
10919 kws = kws->nd_next;
10921 kws->nd_next = (yyvsp[(3) - (3)].
val);
10922 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10932 #line 4699 "ripper.y"
10935 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10942 #line 4704 "ripper.y"
10951 #line 4710 "ripper.y"
10966 #line 4722 "ripper.y"
10981 #line 4734 "ripper.y"
10984 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10994 #line 4742 "ripper.y"
10999 while (opts->nd_next) {
11000 opts = opts->nd_next;
11002 opts->nd_next = (yyvsp[(3) - (3)].
val);
11003 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11013 #line 4758 "ripper.y"
11016 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11026 #line 4766 "ripper.y"
11031 while (opts->nd_next) {
11032 opts = opts->nd_next;
11034 opts->nd_next = (yyvsp[(3) - (3)].
val);
11035 (yyval.
val) = (yyvsp[(1) - (3)].
val);
11045 #line 4786 "ripper.y"
11049 yyerror(
"rest argument must be local variable");
11053 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11055 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].
val));
11063 #line 4799 "ripper.y"
11069 (yyval.
val) = dispatch1(rest_param,
Qnil);
11077 #line 4814 "ripper.y"
11081 yyerror(
"block argument must be local variable");
11083 yyerror(
"duplicated block argument name");
11087 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11089 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].
val));
11097 #line 4831 "ripper.y"
11099 (yyval.
val) = (yyvsp[(2) - (2)].
val);
11106 #line 4835 "ripper.y"
11119 #line 4845 "ripper.y"
11123 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11126 (yyval.
val) = (yyvsp[(1) - (1)].
val);
11134 #line 4854 "ripper.y"
11141 #line 4855 "ripper.y"
11144 if ((yyvsp[(3) - (4)].
val) == 0) {
11145 yyerror(
"can't define singleton method for ().");
11157 yyerror(
"can't define singleton method for literals");
11163 (yyval.
val) = (yyvsp[(3) - (4)].
val);
11165 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].
val));
11173 #line 4885 "ripper.y"
11176 (yyval.
val) = (yyvsp[(1) - (2)].
val);
11178 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].
val));
11186 #line 4897 "ripper.y"
11195 #line 4902 "ripper.y"
11208 #line 4912 "ripper.y"
11213 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
11221 #line 4920 "ripper.y"
11226 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
11234 #line 4928 "ripper.y"
11239 (yyval.
val) = dispatch1(assoc_splat, (yyvsp[(2) - (2)].
val));
11247 #line 4958 "ripper.y"
11248 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11254 #line 4963 "ripper.y"
11255 { (yyval.
val) = (yyvsp[(1) - (1)].
val); }
11261 #line 4986 "ripper.y"
11268 #line 4991 "ripper.y"
11275 #line 4995 "ripper.y"
11288 #line 11287 "parse.c"
11317 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
11337 #if ! YYERROR_VERBOSE
11340 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
11343 char const *yymsgp =
YY_(
"syntax error");
11344 int yysyntax_error_status;
11346 if (yysyntax_error_status == 0)
11348 else if (yysyntax_error_status == 1)
11350 if (yymsg != yymsgbuf)
11357 yysyntax_error_status = 2;
11366 if (yysyntax_error_status == 2)
11367 goto yyexhaustedlab;
11369 # undef YYSYNTAX_ERROR
11375 if (yyerrstatus == 3)
11380 if (yychar <=
YYEOF)
11383 if (yychar ==
YYEOF)
11389 yytoken, &yylval, parser);
11433 yyn = yytable[
yyn];
11445 yystos[yystate], yyvsp, parser);
11475 #if !defined(yyoverflow) || YYERROR_VERBOSE
11491 yydestruct (
"Cleanup: discarding lookahead",
11492 yytoken, &yylval, parser);
11498 while (yyssp != yyss)
11501 yystos[*yyssp], yyvsp, parser);
11508 #if YYERROR_VERBOSE
11509 if (yymsg != yymsgbuf)
11513 return YYID (yyresult);
11519 #line 5003 "ripper.y"
11524 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
11533 # define nextc() parser_nextc(parser)
11534 # define pushback(c) parser_pushback(parser, (c))
11535 # define newtok() parser_newtok(parser)
11536 # define tokspace(n) parser_tokspace(parser, (n))
11537 # define tokadd(c) parser_tokadd(parser, (c))
11538 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
11539 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
11540 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
11541 # define regx_options() parser_regx_options(parser)
11542 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
11543 # define parse_string(n) parser_parse_string(parser,(n))
11544 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
11545 # define here_document(n) parser_here_document(parser,(n))
11546 # define heredoc_identifier() parser_heredoc_identifier(parser)
11547 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
11548 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
11551 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
11552 # define set_yylval_num(x) (yylval.num = (x))
11553 # define set_yylval_id(x) (yylval.id = (x))
11554 # define set_yylval_name(x) (yylval.id = (x))
11555 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
11556 # define set_yylval_node(x) (yylval.node = (x))
11557 # define yylval_id() (yylval.id)
11559 static inline VALUE
11560 ripper_yylval_id(
ID x)
11564 # define set_yylval_str(x) (void)(x)
11565 # define set_yylval_num(x) (void)(x)
11566 # define set_yylval_id(x) (void)(x)
11567 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
11568 # define set_yylval_literal(x) (void)(x)
11569 # define set_yylval_node(x) (void)(x)
11570 # define yylval_id() yylval.id
11574 #define ripper_flush(p) (void)(p)
11576 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
11578 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
11585 return lex_p > parser->tokp;
11598 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11600 if (!ripper_has_scan_event(parser))
return;
11601 yylval_rval = ripper_scan_event_val(parser, t);
11605 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11607 if (!ripper_has_scan_event(parser))
return;
11608 (
void)ripper_scan_event_val(parser, t);
11612 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11615 const char *saved_tokp = parser->tokp;
11618 parser->tokp =
lex_pbeg + parser->delayed_col;
11620 parser->delayed =
Qnil;
11622 parser->tokp = saved_tokp;
11633 #undef SIGN_EXTEND_CHAR
11635 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
11638 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
11641 #define parser_encoding_name() (current_enc->name)
11642 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
11643 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
11644 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
11645 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
11647 #define parser_isascii() ISASCII(*(lex_p-1))
11655 for (p =
lex_pbeg; p < pend; p++) {
11657 column = (((column - 1) / 8) + 1) * 8;
11668 for (p =
lex_pbeg; p < pend; p++) {
11669 if (*p !=
' ' && *p !=
'\t') {
11676 #undef token_info_push
11693 #undef token_info_pop
11700 if (!ptinfo)
return;
11706 if (linenum == ptinfo->
linenum) {
11714 "mismatched indentations at '%s' with '%s' at %d",
11727 const int max_line_margin = 30;
11728 const char *
p, *pe;
11736 if (*p ==
'\n')
break;
11743 if (*pe ==
'\n')
break;
11750 const char *pre =
"", *post =
"";
11752 if (len > max_line_margin * 2 + 10) {
11753 if (
lex_p - p > max_line_margin) {
11757 if (pe -
lex_p > max_line_margin) {
11764 MEMCPY(buf, p,
char, len);
11769 p2 =
buf; pe = buf +
len;
11772 if (*p2 !=
'\t') *p2 =
' ';
11780 dispatch1(parse_error,
STR_NEW2(msg));
11792 CONST_ID(script_lines,
"SCRIPT_LINES__");
11811 RBASIC(lines)->klass = 0;
11813 RARRAY(lines)->as.heap.len =
n;
11873 if (parser->
nerr) {
11883 return (
VALUE)tree;
11909 char *beg, *
end, *pend;
11919 while (end < pend) {
11920 if (*end++ ==
'\n')
break;
11930 if (
NIL_P(line))
return line;
12034 node =
yycompile(parser, fname, start);
12041 #define STR_FUNC_ESCAPE 0x01
12042 #define STR_FUNC_EXPAND 0x02
12043 #define STR_FUNC_REGEXP 0x04
12044 #define STR_FUNC_QWORDS 0x08
12045 #define STR_FUNC_SYMBOL 0x10
12046 #define STR_FUNC_INDENT 0x20
12076 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
12077 #define lex_eol_p() (lex_p >= lex_pend)
12078 #define peek(c) peek_n((c), 0)
12079 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
12102 if (
NIL_P(parser->delayed)) {
12106 parser->tokp,
lex_pend - parser->tokp);
12108 parser->delayed_col = (
int)(parser->tokp -
lex_pbeg);
12112 parser->tokp,
lex_pend - parser->tokp);
12128 c = (
unsigned char)*
lex_p++;
12129 if (c ==
'\r' &&
peek(
'\n')) {
12140 if (c == -1)
return;
12147 #define was_bol() (lex_p == lex_pbeg + 1)
12149 #define tokfix() (tokenbuf[tokidx]='\0')
12150 #define tok() tokenbuf
12151 #define toklen() tokidx
12152 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
12199 yyerror(
"invalid hex escape");
12206 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
12211 int string_literal,
int symbol_literal,
int regexp_literal)
12231 yyerror(
"invalid Unicode escape");
12234 if (codepoint > 0x10ffff) {
12235 yyerror(
"invalid Unicode codepoint (too large)");
12239 if (regexp_literal) {
12242 else if (codepoint >= 0x80) {
12244 if (string_literal)
tokaddmbc(codepoint, *encp);
12246 else if (string_literal) {
12249 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
12252 yyerror(
"unterminated Unicode escape");
12256 if (regexp_literal) {
tokadd(
'}'); }
12262 yyerror(
"invalid Unicode escape");
12266 if (regexp_literal) {
12269 else if (codepoint >= 0x80) {
12271 if (string_literal)
tokaddmbc(codepoint, *encp);
12273 else if (string_literal) {
12281 #define ESCAPE_CONTROL 1
12282 #define ESCAPE_META 2
12291 switch (c =
nextc()) {
12316 case '0':
case '1':
case '2':
case '3':
12317 case '4':
case '5':
case '6':
case '7':
12325 if (numlen == 0)
return 0;
12336 if ((c =
nextc()) !=
'-') {
12340 if ((c =
nextc()) ==
'\\') {
12341 if (
peek(
'u'))
goto eof;
12342 return read_escape(flags|ESCAPE_META, encp) | 0x80;
12344 else if (c == -1 || !
ISASCII(c))
goto eof;
12346 return ((c & 0xff) | 0x80);
12350 if ((c =
nextc()) !=
'-') {
12356 if ((c =
nextc())==
'\\') {
12357 if (
peek(
'u'))
goto eof;
12362 else if (c == -1 || !
ISASCII(c))
goto eof;
12367 yyerror(
"Invalid escape character syntax");
12390 switch (c =
nextc()) {
12394 case '0':
case '1':
case '2':
case '3':
12395 case '4':
case '5':
case '6':
case '7':
12398 if (numlen == 0)
goto eof;
12407 if (numlen == 0)
return -1;
12414 if ((c =
nextc()) !=
'-') {
12424 if ((c =
nextc()) !=
'-') {
12432 if (flags & ESCAPE_CONTROL)
goto eof;
12436 if ((c =
nextc()) ==
'\\') {
12439 else if (c == -1)
goto eof;
12445 yyerror(
"Invalid escape character syntax");
12512 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
12518 case '$':
case '*':
case '+':
case '.':
12519 case '?':
case '^':
case '|':
12520 case ')':
case ']':
case '}':
case '>':
12529 int func,
int term,
int paren,
long *nest,
12533 int has_nonascii = 0;
12536 static const char mixed_msg[] =
"%s mixed within %s source";
12538 #define mixed_error(enc1, enc2) if (!errbuf) { \
12539 size_t len = sizeof(mixed_msg) - 4; \
12540 len += strlen(rb_enc_name(enc1)); \
12541 len += strlen(rb_enc_name(enc2)); \
12542 errbuf = ALLOCA_N(char, len); \
12543 snprintf(errbuf, len, mixed_msg, \
12544 rb_enc_name(enc1), \
12545 rb_enc_name(enc2)); \
12548 #define mixed_escape(beg, enc1, enc2) do { \
12549 const char *pos = lex_p; \
12551 mixed_error((enc1), (enc2)); \
12555 while ((c =
nextc()) != -1) {
12556 if (paren && c == paren) {
12559 else if (c == term) {
12560 if (!nest || !*nest) {
12568 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12573 else if (c ==
'\\') {
12574 const char *beg =
lex_p - 1;
12579 if (func & STR_FUNC_EXPAND)
continue;
12588 if ((func & STR_FUNC_EXPAND) == 0) {
12595 if (has_nonascii && enc != *encp) {
12601 if (c == -1)
return -1;
12603 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12606 if (func & STR_FUNC_REGEXP) {
12614 if (has_nonascii && enc != *encp) {
12619 else if (func & STR_FUNC_EXPAND) {
12621 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12624 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12627 else if (c != term && !(paren && c == paren)) {
12637 if (enc != *encp) {
12650 if (enc != *encp) {
12661 #define NEW_STRTERM(func, term, paren) \
12662 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
12668 if (!
NIL_P(parser->delayed)) {
12669 ptrdiff_t
len =
lex_p - parser->tokp;
12674 parser->tokp =
lex_p;
12678 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
12680 #define flush_string_content(enc) ((void)(enc))
12687 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
12688 #define SPECIAL_PUNCT(idx) ( \
12689 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
12690 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
12691 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
12692 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
12693 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
12701 #undef SPECIAL_PUNCT
12707 if (c <= 0x20 || 0x7e < c)
return 0;
12708 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
12715 const char *p =
lex_p;
12721 if ((c = *p) ==
'-') {
12730 if ((c = *p) ==
'@') {
12750 int func = (
int)quote->nd_func;
12762 if (c == term && !quote->nd_nest) {
12763 if (func & STR_FUNC_QWORDS) {
12764 quote->nd_func = -1;
12826 while ((c =
nextc()) != -1 && c != term) {
12873 line = here->nd_orig;
12887 const char *eos,
long len,
int indent)
12893 while (*p &&
ISSPACE(*p)) p++;
12896 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
12897 return strncmp(eos, p, len) == 0;
12904 if (!
NIL_P(parser->delayed))
12907 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12910 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
12912 #define dispatch_heredoc_end() ((void)0)
12918 int c,
func, indent = 0;
12919 const char *eos, *
p, *pend;
12928 if ((c =
nextc()) == -1) {
12932 if (
NIL_P(parser->delayed)) {
12937 ((len =
lex_p - parser->tokp) > 0 &&
12938 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
12961 switch (pend[-1]) {
12963 if (--pend == p || pend[-1] !=
'\r') {
12977 if (
nextc() == -1) {
12998 if (parser->
eofp)
goto error;
13008 if ((c =
nextc()) == -1)
goto error;
13025 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
13030 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
13037 yyerror(
"formal argument must be local variable");
13055 if (len > 5 && name[nlen = len - 5] ==
'-') {
13056 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
13059 if (len > 4 && name[nlen = len - 4] ==
'-') {
13062 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
13063 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
13078 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
13095 for (i = 0; i <
n; ++
i) {
13133 case 't':
case 'T':
13139 case 'f':
case 'F':
13162 static const char *
13170 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13171 return str + i + 1;
13176 if (i + 1 >= len)
return 0;
13177 if (str[i+1] !=
'-') {
13180 else if (str[i-1] !=
'-') {
13184 return str + i + 2;
13199 const char *beg, *
end, *vbeg, *vend;
13200 #define str_copy(_s, _p, _n) ((_s) \
13201 ? (void)(rb_str_resize((_s), (_n)), \
13202 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
13203 : (void)((_s) = STR_NEW((_p), (_n))))
13205 if (len <= 7)
return FALSE;
13209 len = end - beg - 3;
13220 for (; len > 0 && *
str; str++, --
len) {
13222 case '\'':
case '"':
case ':':
case ';':
13227 for (beg = str; len > 0; str++, --
len) {
13229 case '\'':
case '"':
case ':':
case ';':
13237 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
13239 if (*str !=
':')
continue;
13241 do str++;
while (--len > 0 &&
ISSPACE(*str));
13244 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13245 if (*str ==
'\\') {
13257 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
13260 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13265 for (i = 0; i <
n; ++
i) {
13266 if (s[i] ==
'-') s[
i] =
'_';
13273 n = (*p->
length)(parser, vbeg, n);
13279 }
while (++p < magic_comments +
numberof(magic_comments));
13293 const char *beg =
str;
13297 if (send - str <= 6)
return;
13299 case 'C':
case 'c': str += 6;
continue;
13300 case 'O':
case 'o': str += 5;
continue;
13301 case 'D':
case 'd': str += 4;
continue;
13302 case 'I':
case 'i': str += 3;
continue;
13303 case 'N':
case 'n': str += 2;
continue;
13304 case 'G':
case 'g': str += 1;
continue;
13305 case '=':
case ':':
13318 if (++str >= send)
return;
13321 if (*str !=
'=' && *str !=
':')
return;
13326 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13342 (
unsigned char)
lex_p[0] == 0xbb &&
13343 (
unsigned char)
lex_p[1] == 0xbf) {
13357 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
13358 #define IS_END() IS_lex_state(EXPR_END_ANY)
13359 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY)
13360 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
13361 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
13362 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
13363 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
13366 #define ambiguous_operator(op, syn) ( \
13367 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
13368 rb_warning0("even though it seems like "syn""))
13370 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
13372 #define warn_balanced(op, syn) ((void) \
13373 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
13374 space_seen && !ISSPACE(c) && \
13375 (ambiguous_operator(op, syn), 0)))
13381 int space_seen = 0;
13387 int fallthru =
FALSE;
13413 switch (c =
nextc()) {
13421 case ' ':
case '\t':
case '\f':
case '\r':
13425 while ((c =
nextc())) {
13427 case ' ':
case '\t':
case '\f':
case '\r':
13436 ripper_dispatch_scan_event(parser,
tSP);
13449 ripper_dispatch_scan_event(parser,
tCOMMENT);
13454 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT)) {
13463 while ((c =
nextc())) {
13465 case ' ':
case '\t':
case '\f':
case '\r':
13470 if ((c =
nextc()) !=
'.') {
13483 parser->tokp =
lex_p;
13486 goto normal_newline;
13495 if ((c =
nextc()) ==
'*') {
13496 if ((c =
nextc()) ==
'=') {
13503 rb_warning0(
"`**' interpreted as argument prefix");
13522 rb_warning0(
"`*' interpreted as argument prefix");
13561 int first_p =
TRUE;
13570 ripper_dispatch_scan_event(parser,
tEMBDOC);
13579 if (c !=
'=')
continue;
13580 if (strncmp(
lex_p,
"end", 3) == 0 &&
13594 if ((c =
nextc()) ==
'=') {
13595 if ((c =
nextc()) ==
'=') {
13604 else if (c ==
'>') {
13616 (!
IS_ARG() || space_seen)) {
13618 if (token)
return token;
13629 if ((c =
nextc()) ==
'>') {
13636 if ((c =
nextc()) ==
'=') {
13650 if ((c =
nextc()) ==
'=') {
13654 if ((c =
nextc()) ==
'=') {
13722 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13739 else if (c ==
'\\') {
13768 if ((c =
nextc()) ==
'&') {
13770 if ((c =
nextc()) ==
'=') {
13778 else if (c ==
'=') {
13785 rb_warning0(
"`&' interpreted as argument prefix");
13799 if ((c =
nextc()) ==
'|') {
13801 if ((c =
nextc()) ==
'=') {
13881 if ((c =
nextc()) ==
'.') {
13882 if ((c =
nextc()) ==
'.') {
13890 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13896 case '0':
case '1':
case '2':
case '3':
case '4':
13897 case '5':
case '6':
case '7':
case '8':
case '9':
13899 int is_float, seen_point, seen_e, nondigit;
13901 is_float = seen_point = seen_e = nondigit = 0;
13904 if (c ==
'-' || c ==
'+') {
13909 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
13912 if (c ==
'x' || c ==
'X') {
13918 if (nondigit)
break;
13925 }
while ((c =
nextc()) != -1);
13929 if (
toklen() == start) {
13932 else if (nondigit)
goto trailing_uc;
13936 if (c ==
'b' || c ==
'B') {
13939 if (c ==
'0' || c ==
'1') {
13942 if (nondigit)
break;
13946 if (c !=
'0' && c !=
'1')
break;
13949 }
while ((c =
nextc()) != -1);
13953 if (
toklen() == start) {
13956 else if (nondigit)
goto trailing_uc;
13960 if (c ==
'd' || c ==
'D') {
13966 if (nondigit)
break;
13973 }
while ((c =
nextc()) != -1);
13977 if (
toklen() == start) {
13980 else if (nondigit)
goto trailing_uc;
13988 if (c ==
'o' || c ==
'O') {
13991 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13995 if (c >=
'0' && c <=
'7') {
14000 if (nondigit)
break;
14004 if (c < '0' || c >
'9')
break;
14005 if (c >
'7')
goto invalid_octal;
14008 }
while ((c =
nextc()) != -1);
14012 if (nondigit)
goto trailing_uc;
14021 if (c >
'7' && c <=
'9') {
14023 yyerror(
"Invalid octal digit");
14025 else if (c ==
'.' || c ==
'e' || c ==
'E') {
14037 case '0':
case '1':
case '2':
case '3':
case '4':
14038 case '5':
case '6':
case '7':
case '8':
case '9':
14044 if (nondigit)
goto trailing_uc;
14045 if (seen_point || seen_e) {
14050 if (c0 == -1 || !
ISDIGIT(c0)) {
14078 if (c !=
'-' && c !=
'+')
continue;
14084 if (nondigit)
goto decode_num;
14099 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14105 if (
errno == ERANGE) {
14166 if ((c =
nextc()) ==
'=') {
14182 if ((c =
nextc()) ==
'=') {
14202 if ((c =
nextc()) !=
'@') {
14229 if ((c =
nextc()) ==
']') {
14230 if ((c =
nextc()) ==
'=') {
14242 else if (
IS_ARG() && space_seen) {
14277 ripper_dispatch_scan_event(parser,
tSP);
14291 if (c == -1 || !
ISALNUM(c)) {
14298 yyerror(
"unknown type of %string");
14302 if (c == -1 || term == -1) {
14307 if (term ==
'(') term =
')';
14308 else if (term ==
'[') term =
']';
14309 else if (term ==
'{') term =
'}';
14310 else if (term ==
'<') term =
'>';
14360 yyerror(
"unknown type of %string");
14364 if ((c =
nextc()) ==
'=') {
14441 case '1':
case '2':
case '3':
14442 case '4':
case '5':
case '6':
14443 case '7':
case '8':
case '9':
14448 }
while (c != -1 &&
ISDIGIT(c));
14494 ripper_dispatch_scan_event(parser,
k__END__);
14517 switch (
tok()[0]) {
14518 case '@':
case '$':
14522 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14535 switch (
tok()[0]) {
14542 if (
tok()[1] ==
'@')
14588 if (state == EXPR_FNAME) {
14602 if (
CMDARG_P() && state != EXPR_CMDARG)
14604 if (state & (EXPR_BEG | EXPR_ENDARG))
14608 if (state & (EXPR_BEG | EXPR_VALUE))
14611 if (kw->
id[0] != kw->
id[1])
14648 yylex(
void *lval,
void *p)
14662 if (!
NIL_P(parser->delayed)) {
14663 ripper_dispatch_delayed_token(parser, t);
14667 ripper_dispatch_scan_event(parser, t);
14709 if (orig == (
NODE*)1)
return;
14718 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
14725 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
14732 if (tail == 0)
return head;
14734 if (h == 0)
return tail;
14773 tail->nd_end =
tail;
14775 end->nd_next =
tail;
14776 h->nd_end = tail->nd_end;
14786 if (list == 0)
return NEW_LIST(item);
14787 if (list->nd_next) {
14788 last = list->nd_next->nd_end;
14794 list->nd_alen += 1;
14796 list->nd_next->nd_end = last->nd_next;
14806 if (head->nd_next) {
14807 last = head->nd_next->nd_end;
14813 head->nd_alen += tail->nd_alen;
14814 last->nd_next =
tail;
14815 if (tail->nd_next) {
14816 head->nd_next->nd_end = tail->nd_next->nd_end;
14819 head->nd_next->nd_end =
tail;
14828 if (
NIL_P(tail))
return 1;
14849 if (!head)
return tail;
14850 if (!tail)
return head;
14860 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14863 lit = headlast->nd_lit;
14866 lit = head->nd_lit;
14886 tail->nd_lit = head->nd_lit;
14890 else if (
NIL_P(tail->nd_lit)) {
14892 head->nd_alen += tail->nd_alen - 1;
14893 head->nd_next->nd_end->nd_next = tail->nd_next;
14894 head->nd_next->nd_end = tail->nd_next->nd_end;
14897 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14899 lit = headlast->nd_lit;
14902 tail->nd_lit =
Qnil;
14907 tail->nd_head =
NEW_STR(tail->nd_lit);
15053 static const char *
15056 static const char names[][12] = {
15057 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15058 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15063 return names[
ffs(state)];
15078 # define assignable_result(x) get_value(lhs)
15079 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
15081 # define assignable_result(x) (x)
15086 yyerror(
"Can't change the value of self");
15089 yyerror(
"Can't assign to nil");
15092 yyerror(
"Can't assign to true");
15095 yyerror(
"Can't assign to false");
15098 yyerror(
"Can't assign to __FILE__");
15101 yyerror(
"Can't assign to __LINE__");
15104 yyerror(
"Can't assign to __ENCODING__");
15138 yyerror(
"dynamic constant assignment");
15147 #undef assignable_result
15148 #undef parser_yyerror
15155 if (name == idUScore)
return 1;
15162 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
15170 yyerror(
"duplicated argument name");
15182 yyerror(
"duplicated argument name");
15240 int scope = (
int)(
id & ID_SCOPE_MASK);
15249 id_type_names[scope],
ID2SYM(
id));
15253 id &= ~ID_SCOPE_MASK;
15282 if (!node2)
return node1;
15285 if (node1->nd_head)
15286 node1->nd_head =
arg_concat(node1->nd_head, node2);
15298 node1->nd_body =
list_concat(node1->nd_body, node2);
15307 if (!node1)
return NEW_LIST(node2);
15312 node1->nd_head =
arg_append(node1->nd_head, node2);
15333 if (!lhs)
return 0;
15345 lhs->nd_value = rhs;
15350 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
15381 if (!cond)
yyerror(
"void value expression");
15386 while (node->nd_next) {
15387 node = node->nd_next;
15389 node = node->nd_head;
15393 node = node->nd_body;
15397 if (!node->nd_body) {
15398 node = node->nd_else;
15401 else if (!node->nd_else) {
15402 node = node->nd_body;
15406 node = node->nd_else;
15412 node = node->nd_2nd;
15426 const char *useless = 0;
15433 switch (node->nd_mid) {
15464 useless =
"a variable";
15467 useless =
"a constant";
15474 useless =
"a literal";
15499 useless =
"defined?";
15507 rb_warnS(
"possibly useless use of %s in void context", useless);
15520 if (!node->nd_next)
return;
15522 node = node->nd_next;
15529 NODE **
n = &node, *n1 = node;
15531 *n = n1 = n1->nd_body;
15539 NODE *node = *body;
15545 #define subnodes(n1, n2) \
15546 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
15547 (!node->n2) ? (body = &node->n1, 1) : \
15548 (reduce_nodes(&node->n1), body = &node->n2, 1))
15558 *body = node = node->nd_stts;
15562 *body = node = node->nd_body;
15566 body = &node->nd_end->nd_head;
15572 body = &node->nd_body;
15581 if (node->nd_else) {
15582 body = &node->nd_resq;
15600 if (!node)
return 1;
15603 if (!(node = node->nd_head))
break;
15607 }
while ((node = node->nd_next) != 0);
15626 yyerror(
"multiple assignment in conditional");
15640 if (!node->nd_value)
return 1;
15643 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15665 for (node = *rootnode; node; node = next) {
15669 next = node->nd_next;
15670 head = node->nd_head;
15673 switch (type =
nd_type(head)) {
15676 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
15681 head->nd_lit =
val;
15696 if (node == 0)
return 0;
15704 return cond0(parser, node);
15710 if (!node)
return 1;
15731 if (node == 0)
return 0;
15738 rb_warn0(
"string literal in condition");
15748 node->nd_1st =
cond0(parser, node->nd_1st);
15749 node->nd_2nd =
cond0(parser, node->nd_2nd);
15754 node->nd_beg =
range_op(parser, node->nd_beg);
15755 node->nd_end =
range_op(parser, node->nd_end);
15788 if (node == 0)
return 0;
15789 return cond0(parser, node);
15797 NODE *node = left, *second;
15798 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
15801 node->nd_2nd =
NEW_NODE(type, second, right, 0);
15804 return NEW_NODE(type, left, right, 0);
15821 if (node->nd_next == 0) {
15822 node = node->nd_head;
15843 switch (
TYPE(node->nd_lit)) {
15872 node2->nd_head = node1;
15886 args->
pre_init = m ? m->nd_next : 0;
15940 lit = node->nd_lit;
15959 ID vid = lhs->nd_vid;
15961 lhs->nd_value = rhs;
15964 asgn->nd_aid = vid;
15967 else if (op ==
tANDOP) {
15968 lhs->nd_value = rhs;
15990 else if (op ==
tANDOP) {
16006 else if (op ==
tANDOP) {
16022 return dispatch3(opassign, lhs, op, rhs);
16028 VALUE recv = dispatch3(field, lhs, type, attr);
16029 return dispatch3(opassign, recv, op, rhs);
16039 if (!local->
used)
return;
16043 if (cnt != local->
vars->
pos) {
16044 rb_bug(
"local->used->pos != local->vars->pos");
16046 for (i = 0; i <
cnt; ++
i) {
16047 if (!v[i] || (u[i] &
LVAR_USED))
continue;
16062 local->
used = !(inherit_dvars &&
16091 int cnt = cnt_args + cnt_vars;
16095 if (cnt <= 0)
return 0;
16099 for (i = 0, j = cnt_args+1; i < cnt_vars; ++
i) {
16105 if (--j < cnt)
REALLOC_N(buf,
ID, (cnt = j) + 1);
16133 vars =
lvtbl->vars;
16134 args =
lvtbl->args;
16135 used =
lvtbl->used;
16140 if (used) used = used->
prev;
16156 static const struct vtable *
16164 return lvtbl->args;
16172 if ((tmp =
lvtbl->used) != 0) {
16188 while (
lvtbl->args != lvargs) {
16190 if (!
lvtbl->args) {
16211 args =
lvtbl->args;
16212 vars =
lvtbl->vars;
16213 used =
lvtbl->used;
16226 if (used) used = used->
prev;
16279 "regexp encoding option '%c' differs from source encoding '%s'",
16308 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
16314 const char *
s = (
const char *)name;
16331 rb_warningS(
"named capture conflicts a local variable - %s",
16411 NODE *scope = node;
16414 if (!node)
return node;
16418 node = node->nd_body;
16422 node = node->nd_body;
16429 prelude->nd_body = node;
16430 scope->nd_body = prelude;
16433 scope->nd_body = node;
16443 NODE *scope = node;
16446 if (!node)
return node;
16450 node = node->nd_body;
16454 node = node->nd_body;
16470 prelude->nd_body = node;
16471 scope->nd_body = prelude;
16474 scope->nd_body = node;
16480 static const struct {
16505 #define op_tbl_count numberof(op_tbl)
16507 #ifndef ENABLE_SELECTOR_NAMESPACE
16508 #define ENABLE_SELECTOR_NAMESPACE 0
16515 #if ENABLE_SELECTOR_NAMESPACE
16527 #if ENABLE_SELECTOR_NAMESPACE
16534 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
16536 if (key1->id == key2->id && key1->klass == key2->klass) {
16543 ivar2_hash(
struct ivar2_key *
key)
16545 return (key->id << 8) ^ (key->klass >> 2);
16559 #if ENABLE_SELECTOR_NAMESPACE
16567 (
void)lex_state_name(-1);
16596 if (m >= e)
return 0;
16600 else if (*m ==
'-') {
16614 return m == e ? mb + 1 : 0;
16629 #define IDSET_ATTRSET_FOR_SYNTAX ((1U<<ID_LOCAL)|(1U<<ID_CONST))
16630 #define IDSET_ATTRSET_FOR_INTERN (~(~0U<<(1<<ID_SCOPE_SHIFT)) & ~(1U<<ID_ATTRSET))
16635 const char *
m =
name;
16636 const char *
e = m +
len;
16639 if (!m || len <= 0)
return -1;
16659 case '<': ++
m;
break;
16660 case '=':
if (*++m ==
'>') ++
m;
break;
16667 case '>':
case '=': ++
m;
break;
16673 case '~': ++
m;
break;
16674 case '=':
if (*++m ==
'=') ++
m;
break;
16675 default:
return -1;
16680 if (*++m ==
'*') ++
m;
16683 case '+':
case '-':
16684 if (*++m ==
'@') ++
m;
16687 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16692 if (*++m !=
']')
return -1;
16693 if (*++m ==
'=') ++
m;
16697 if (len == 1)
return ID_JUNK;
16699 case '=':
case '~': ++
m;
break;
16700 default:
return -1;
16712 case '!':
case '?':
16716 if (m + 1 < e || *m !=
'=')
break;
16719 if (!(allowed_atttset & (1
U << type)))
return -1;
16726 return m == e ? type : -1;
16790 fake_str.
as.
heap.ptr = (
char *)name;
16792 str = (
VALUE)&fake_str;
16806 const char *
name, *
m, *
e;
16828 if (len < 2)
goto junk;
16837 if (len < 3)
goto junk;
16842 if (len < 2)
goto junk;
16858 if (*
op_tbl[i].name == *m &&
16859 strcmp(
op_tbl[i].name, m) == 0) {
16867 if (name[last] ==
'=') {
16869 if (last > 1 && name[last-1] ==
'=')
16879 else if (
id == 0) {
16951 name[0] = (char)
id;
16974 if (
RBASIC(str)->klass == 0)
16980 ID id_stem = (
id & ~ID_SCOPE_MASK);
16997 if (
RBASIC(str)->klass == 0)
17010 if (!str)
return 0;
17104 VALUE name = *namep;
17155 fake_str.
as.
heap.ptr = (
char *)ptr;
17165 fake_str.
as.
heap.len = len - 1;
17264 parser->delayed =
Qnil;
17266 parser->result =
Qnil;
17267 parser->parsing_thread =
Qnil;
17268 parser->toplevel_p =
TRUE;
17277 #define parser_mark ripper_parser_mark
17278 #define parser_free ripper_parser_free
17318 prev = local->
prev;
17329 size_t size =
sizeof(*p);
17331 if (!ptr)
return 0;
17334 size +=
sizeof(*local);
17354 #undef rb_reserved_word
17438 yydebug =
RTEST(flag);
17443 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
17444 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
17445 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
17446 (n)->u3.cnt = (c), (p))
17474 if (ptr && (n = parser->
heap) !=
NULL) {
17476 if (n->
u1.
node == ptr) {
17493 while ((
n = *prev) !=
NULL) {
17494 if (
n->u1.node == ptr) {
17495 *prev =
n->u2.node;
17499 prev = &
n->u2.node;
17507 #ifdef RIPPER_DEBUG
17508 extern int rb_is_pointer_to_heap(
VALUE);
17514 if (x ==
Qfalse)
return x;
17515 if (x ==
Qtrue)
return x;
17516 if (x ==
Qnil)
return x;
17521 if (!rb_is_pointer_to_heap(x))
17534 return ((
NODE *)x)->nd_rval;
17543 #define validate(x) ((x) = get_value(x))
17555 return rb_funcall(parser->value, mid, 1, a);
17563 return rb_funcall(parser->value, mid, 2, a, b);
17572 return rb_funcall(parser->value, mid, 3, a, b, c);
17582 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17593 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17606 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
17609 static const struct kw_assoc {
17612 } keyword_to_name[] = {
17665 keyword_id_to_str(
ID id)
17667 const struct kw_assoc *
a;
17669 for (a = keyword_to_name; a->id; a++) {
17676 #undef ripper_id2sym
17678 ripper_id2sym(
ID id)
17688 if ((name = keyword_id_to_str(
id))) {
17701 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
17719 ripper_get_value(
VALUE v)
17726 return nd->nd_rval;
17735 va_start(args, fmt);
17742 ripper_warn0(
struct parser_params *parser,
const char *fmt)
17748 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
17755 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
17762 ripper_warning0(
struct parser_params *parser,
const char *fmt)
17768 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
17793 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
17812 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
17822 if (
NIL_P(fname)) {
17837 struct ripper_args {
17844 ripper_parse0(
VALUE parser_v)
17850 ripper_yyparse((
void*)parser);
17851 return parser->result;
17855 ripper_ensure(
VALUE parser_v)
17860 parser->parsing_thread =
Qnil;
17871 ripper_parse(
VALUE self)
17876 if (!ripper_initialized_p(parser)) {
17879 if (!
NIL_P(parser->parsing_thread)) {
17886 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17888 return parser->result;
17899 ripper_column(
VALUE self)
17905 if (!ripper_initialized_p(parser)) {
17908 if (
NIL_P(parser->parsing_thread))
return Qnil;
17920 ripper_filename(
VALUE self)
17925 if (!ripper_initialized_p(parser)) {
17939 ripper_lineno(
VALUE self)
17944 if (!ripper_initialized_p(parser)) {
17947 if (
NIL_P(parser->parsing_thread))
return Qnil;
17951 #ifdef RIPPER_DEBUG
17987 InitVM_ripper(
void)
18003 #ifdef RIPPER_DEBUG
#define rb_enc_islower(c, enc)
char * parser_ruby_sourcefile
#define RB_TYPE_P(obj, type)
#define NEW_ARGSCAT(a, b)
VALUE rb_const_get_at(VALUE, ID)
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
struct local_vars * parser_lvtbl
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
#define IS_LABEL_SUFFIX(n)
#define new_args_tail(k, kr, b)
int rb_is_attrset_id(ID id)
int rb_enc_codelen(int c, rb_encoding *enc)
#define parser_precise_mbclen()
static NODE * remove_begin(NODE *)
#define NEW_STRTERM(func, term, paren)
static const yytype_int16 yydefgoto[]
#define list_concat(h, t)
static struct parser_params * parser_new(void)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
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)
static char *char * yydest
static NODE * arg_blk_pass(NODE *, NODE *)
static ID internal_id_gen(struct parser_params *)
void rb_bug(const char *fmt,...)
#define NEW_DASGN_CURR(v, val)
void rb_enc_copy(VALUE obj1, VALUE obj2)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
void rb_mark_tbl(struct st_table *)
int rb_is_class_name(VALUE name)
NODE * rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
static int comment_at_top(struct parser_params *parser)
#define RE_OPTION_ENCODING_IDX(o)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
#define assignable(id, node)
yytype_int16 yyssa[YYINITDEPTH]
static size_t parser_memsize(const void *ptr)
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
const char * rb_obj_classname(VALUE)
#define IDSET_ATTRSET_FOR_SYNTAX
#define reg_compile(str, options)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
int parser_ruby__end__seen
static void fixpos(NODE *, NODE *)
#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 void reduce_nodes_gen(struct parser_params *, NODE **)
VALUE rb_str_buf_append(VALUE, VALUE)
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
int parser_compile_for_eval
int parser_token_info_enabled
#define NEW_OP_CDECL(v, op, val)
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
SSL_METHOD *(* func)(void)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
#define rb_usascii_str_new2
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
void rb_define_global_const(const char *, VALUE)
static NODE * gettable_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
void rb_gc_force_recycle(VALUE)
static struct symbols global_symbols
VALUE rb_parser_end_seen_p(VALUE vparser)
struct token_info token_info
#define new_op_assign(lhs, op, rhs)
stack_type parser_cmdarg_stack
static NODE * parser_compile_string(volatile VALUE vparser, VALUE fname, VALUE s, int line)
#define new_args(f, o, r, p, t)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
static YYSIZE_T const char * yystr
#define token_info_push(token)
#define rb_enc_isalnum(c, enc)
static int parser_here_document(struct parser_params *, NODE *)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
#define logop(type, node1, node2)
#define rb_enc_prev_char(s, p, e, enc)
VALUE rb_ary_push(VALUE ary, VALUE item)
static NODE * evstr2dstr_gen(struct parser_params *, NODE *)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
unsigned short int yytype_uint16
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
#define is_identchar(p, e, enc)
#define NEW_MATCH2(n1, n2)
VALUE op_sym[tLAST_OP_ID]
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
#define warn_balanced(op, syn)
#define match_op(node1, node2)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
static void ripper_init_eventids1_table(VALUE self)
#define reg_fragment_setenc(str, options)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
void rb_raise(VALUE exc, const char *fmt,...)
#define rb_warn4S(file, line, fmt, a)
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static NODE * newline_node(NODE *)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
static NODE * range_op(struct parser_params *parser, NODE *node)
primary_value operation2 command_args prec tLOWEST
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
VALUE rb_ary_new3(long n,...)
static void parser_pushback(struct parser_params *parser, int c)
static int lvar_defined_gen(struct parser_params *, ID)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
#define parser_is_identchar()
#define NEW_CVASGN(v, val)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define RE_OPTION_ENCODING(e)
#define rb_backref_error(n)
#define NEW_OP_ASGN_OR(i, val)
static void parser_initialize(struct parser_params *parser)
#define ENCODING_IS_ASCII8BIT(obj)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
static const yytype_uint16 yyr1[]
ID rb_check_id(volatile VALUE *namep)
Returns ID for the given name if it is interned already, or 0.
ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc)
rb_encoding * rb_utf8_encoding(void)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define is_instance_id(id)
#define call_bin_op(recv, id, arg1)
#define rb_enc_isdigit(c, enc)
static enum node_type nodetype(NODE *node)
#define ENC_CODERANGE_BROKEN
VALUE rb_sym_all_symbols(void)
static VALUE lex_getline(struct parser_params *parser)
static NODE * ret_args_gen(struct parser_params *, NODE *)
VALUE rb_str_append(VALUE, VALUE)
static const yytype_int16 yytable[]
VALUE rb_str_new_frozen(VALUE)
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
VALUE parser_ruby_sourcefile_string
#define NEW_CLASS(n, b, s)
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
static NODE * yycompile(struct parser_params *parser, VALUE fname, int line)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define NEW_PRELUDE(p, b)
static int yylex(void *, void *)
#define ENCODING_GET(obj)
#define list_append(l, i)
NODE * parser_deferred_nodes
static int simple_re_meta(int c)
void rb_name_error(ID id, const char *fmt,...)
static int e_option_supplied(struct parser_params *parser)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
#define SPECIAL_PUNCT(idx)
#define nd_set_type(n, t)
static int vtable_size(const struct vtable *tbl)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define MEMZERO(p, type, n)
void rb_exc_raise(VALUE mesg)
#define NEW_UNLESS(c, t, e)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_usascii_str_new(const char *, long)
static rb_encoding * must_be_ascii_compatible(VALUE s)
int rb_is_const_id(ID id)
int rb_is_instance_id(ID id)
#define RUBY_DTRACE_PARSE_END(arg0, arg1)
struct RString::@63::@64 heap
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
int rb_is_method_name(VALUE name)
#define assignable_result(x)
static VALUE coverage(VALUE fname, int n)
#define NEW_OP_ASGN_AND(i, val)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
#define parser_warning(node, mesg)
static int parser_regx_options(struct parser_params *)
enum lex_state_e parser_lex_state
#define whole_match_p(e, l, i)
VALUE parser_lex_lastline
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define set_yylval_literal(x)
static int parser_yylex(struct parser_params *parser)
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
#define scan_hex(s, l, e)
static int dyna_in_block_gen(struct parser_params *)
#define rb_intern_str(string)
static const yytype_uint16 yystos[]
int rb_char_to_option_kcode(int c, int *option, int *kcode)
static char * parser_tokspace(struct parser_params *parser, int n)
#define TypedData_Get_Struct(obj, type, data_type, sval)
void rb_compile_error_append(const char *fmt,...)
void rb_compile_error_with_enc(const char *file, int line, void *enc, const char *fmt,...)
static void parser_free(void *ptr)
#define StringValuePtr(v)
#define literal_concat(h, t)
static int symbols_i(VALUE sym, ID value, VALUE ary)
const rb_data_type_t * parent
#define NEW_RESCUE(b, res, e)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int dvar_curr_gen(struct parser_params *, ID)
VALUE rb_parser_encoding(VALUE vparser)
static const yytype_uint16 yyrline[]
struct parser_params * parser
#define NEW_NODE(t, a0, a1, a2)
#define yytable_value_is_error(yytable_value)
#define NEW_ENSURE(b, en)
RUBY_EXTERN VALUE rb_mKernel
static struct @60 op_tbl[]
NODE * rb_compile_string(const char *f, VALUE s, int line)
static const yytype_uint16 yyprhs[]
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
int rb_ascii8bit_encindex(void)
static int is_global_name_punct(const char c)
#define is_attrset_id(id)
#define set_yylval_name(x)
#define IDSET_ATTRSET_FOR_INTERN
static char * parser_newtok(struct parser_params *parser)
static int vtable_included(const struct vtable *tbl, ID id)
#define block_dup_check(n1, n2)
void rb_define_const(VALUE, const char *, VALUE)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void local_push_gen(struct parser_params *, int)
#define NEW_WHEN(c, t, e)
top_stmt escape_Qundef($1)
static void const char * yymsg
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
#define heredoc_identifier()
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
static struct st_hash_type symhash
#define new_const_op_assign(lhs, op, rhs)
static void parser_tokadd(struct parser_params *parser, int c)
static void parser_mark(void *ptr)
#define lex_goto_eol(parser)
#define MBCLEN_CHARFOUND_P(ret)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
#define nd_set_line(n, l)
static void ripper_init_eventids1(void)
static void vtable_add(struct vtable *tbl, ID id)
#define flush_string_content(enc)
#define NEW_ARGS_AUX(r, b)
#define TypedData_Wrap_Struct(klass, data_type, sval)
#define tokadd_string(f, t, p, n, e)
static NODE * new_yield_gen(struct parser_params *, NODE *)
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
static int rb_enc_symname_type(const char *name, long len, rb_encoding *enc, unsigned int allowed_atttset)
#define RUBY_FUNC_EXPORTED
unsigned char buf[MIME_BUF_SIZE]
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_parse_in_main(void)
static int parser_nextc(struct parser_params *parser)
const char * parser_lex_pend
static ID formal_argument_gen(struct parser_params *, ID)
static void void_expr_gen(struct parser_params *, NODE *)
#define ALLOCA_N(type, n)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
#define ENC_CODERANGE_UNKNOWN
void rb_gc_mark_symbols(void)
static ID intern_str(VALUE str)
#define YY_REDUCE_PRINT(Rule)
YYSTYPE yyvsa[YYINITDEPTH]
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
token_info * parser_token_info
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
VALUE rb_str_buf_cat(VALUE, const char *, long)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
static int parser_peek_variable_name(struct parser_params *parser)
#define NEW_LASGN(v, val)
static VALUE yycompile0(VALUE arg)
#define mixed_escape(beg, enc1, enc2)
VALUE rb_obj_as_string(VALUE)
#define set_yylval_num(x)
static ID register_symid_str(ID, VALUE)
#define NEW_OPT_ARG(i, v)
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
int rb_dvar_defined(ID id)
static void dispose_string(VALUE str)
VALUE rb_str_resize(VALUE, long)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
#define RUBY_DTRACE_PARSE_END_ENABLED()
static ID shadowing_lvar_gen(struct parser_params *, ID)
int rb_symname_p(const char *name)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
VALUE rb_thread_current(void)
#define token_info_pop(token)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
VALUE rb_range_new(VALUE, VALUE, int)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
VALUE rb_sprintf(const char *format,...)
#define rb_enc_mbcput(c, buf, enc)
#define IS_lex_state_for(x, ls)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
#define rb_node_newnode(type, a1, a2, a3)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
int rb_is_attrset_name(VALUE name)
#define NEW_DASGN(v, val)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
#define NEW_POSTARG(i, v)
#define CONST_ID(var, str)
static int parser_parse_string(struct parser_params *, NODE *)
#define rb_warningS(fmt, a)
static NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
static int dvar_defined_gen(struct parser_params *, ID, int)
int rb_is_local_id(ID id)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static int local_id_gen(struct parser_params *, ID)
VALUE rb_assoc_new(VALUE car, VALUE cdr)
static void Init_id(void)
rb_encoding * rb_usascii_encoding(void)
static void rb_backref_error_gen(struct parser_params *, NODE *)
unsigned char yytype_uint8
static const yytype_int16 yyrhs[]
static void arg_ambiguous_gen(struct parser_params *parser)
#define heredoc_restore(n)
static void parser_prepare(struct parser_params *parser)
static NODE * cond_gen(struct parser_params *, NODE *)
#define rb_reserved_word(str, len)
#define NEW_UNTIL(c, b, n)
static const char *const yytname[]
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define NEW_MATCH3(r, n2)
VALUE rb_str_buf_new(long)
stack_type parser_cond_stack
static void FILE * yyoutput
static void ripper_init_eventids2(void)
int rb_const_defined_at(VALUE, ID)
static void dyna_pop_1(struct parser_params *parser)
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
static int parser_heredoc_identifier(struct parser_params *parser)
static int value_expr_gen(struct parser_params *, NODE *)
int rb_is_global_id(ID id)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static const yytype_int16 yycheck[]
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)
#define NEW_RESBODY(a, ex, n)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
#define set_yylval_str(x)
VALUE rb_reg_check_preprocess(VALUE)
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
expr ripper_intern("and")
static int is_static_content(NODE *node)
RUBY_EXTERN VALUE rb_cString
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
static const yytype_int16 yypgoto[]
static int arg_var_gen(struct parser_params *, ID)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
static ID * local_tbl_gen(struct parser_params *)
VALUE rb_vsprintf(const char *, va_list)
#define reg_named_capture_assign(regexp, match)
#define MEMCPY(p1, p2, type, n)
static int parser_yyerror(struct parser_params *, const char *)
#define NEW_GASGN(v, val)
yydestruct("Cleanup: discarding lookahead", yytoken,&yylval, parser)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_ARGSPUSH(a, b)
int rb_is_const_name(VALUE name)
static void yytype_int16 * yybottom
#define is_asgn_or_id(id)
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
int rb_is_local_name(VALUE name)
static struct vtable * dyna_push_gen(struct parser_params *)
yy_symbol_value_print(yyoutput, yytype, yyvaluep, parser)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
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)
#define NEW_DEFS(r, i, a, d)
void rb_gc_mark_parser(void)
static const yytype_uint8 yytranslate[]
#define ADD2HEAP(n, c, p)
static int is_private_local_id(ID name)
static void no_blockarg(struct parser_params *parser, NODE *node)
static void local_pop_gen(struct parser_params *)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define read_escape(flags, e)
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
static struct magic_comment magic_comments[]
#define parser_warn(node, mesg)
void rb_set_errinfo(VALUE err)
#define rb_enc_isspace(c, enc)
NODE * parser_lex_strterm
top_stmts dispatch0(stmts_new)
#define NEW_ATTRASGN(r, m, a)
static int token_info_get_column(struct parser_params *parser, const char *token)
#define node_assign(node1, node2)
static void void_stmts_gen(struct parser_params *, NODE *)
static int local_var_gen(struct parser_params *, ID)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
st_index_t rb_str_hash(VALUE)
#define NEW_OP_ASGN2(r, i, o, val)
#define YYSTACK_ALLOC_MAXIMUM
static const rb_data_type_t parser_data_type
void rb_compile_warning(const char *file, int line, const char *fmt,...)
RUBY_EXTERN VALUE rb_cObject
static const yytype_uint16 yydefact[]
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
#define parser_encoding_name()
static const yytype_int16 yypact[]
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
struct rb_encoding_entry * list
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
#define STRNCASECMP(s1, s2, n)
VALUE rb_make_backtrace(void)
static void new_bv_gen(struct parser_params *, ID)
static NODE * negate_lit(NODE *)
static void fixup_nodes(NODE **)
#define STR_NEW3(p, n, e, func)
static const char * magic_comment_marker(const char *str, long len)
#define NEW_OP_ASGN1(p, id, a)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define IS_LABEL_POSSIBLE()
VALUE rb_ary_new2(long capa)
static const char id_type_names[][9]
VALUE rb_str_new(const char *, long)
const char * parser_lex_pbeg
int rb_is_class_id(ID id)
VALUE rb_parser_new(void)
struct parser_params * parser
static void parser_set_encode(struct parser_params *parser, const char *name)
#define call_uni_op(recv, id)
#define NEW_CDECL(v, val, path)
static int literal_node(NODE *node)
#define set_yylval_node(x)
static void YYSTYPE * yyvsp
const char * parser_lex_p
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
#define RE_OPTION_ENCODING_NONE(o)
#define rb_enc_asciicompat(enc)
#define dvar_defined_get(id)
int rb_is_instance_name(VALUE name)
int parser_ruby_sourceline
const char * rb_id2name(ID id)
#define ruby_eval_tree_begin
#define ruby_sourcefile_string
#define formal_argument(id)
#define rb_enc_isupper(c, enc)
static int nodeline(NODE *node)
#define dispatch_heredoc_end()
static const yytype_uint8 yyr2[]
#define YY_STACK_PRINT(Bottom, Top)
#define rb_enc_isascii(c, enc)
int rb_str_hash_cmp(VALUE, VALUE)
NODE * rb_parser_compile_string_path(volatile VALUE vparser, VALUE f, VALUE s, int line)
static NODE * cond0(struct parser_params *, NODE *)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_is_junk_name(VALUE name)
int rb_enc_find_index(const char *name)
static NODE * splat_array(NODE *)
static struct vtable * vtable_alloc(struct vtable *prev)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e-0x20+31)/32]
#define RSTRING_GETMEM(str, ptrvar, lenvar)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define attrset(node, id)
#define mixed_error(enc1, enc2)
static ID register_symid(ID, const char *, long, rb_encoding *)
#define NEW_DEFN(i, a, d, p)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
#define shadowing_lvar(name)
st_table * st_init_numtable_with_size(st_index_t)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
#define reg_fragment_check(str, options)
int rb_parse_in_eval(void)
YYSTYPE const *const yyvaluep
#define ENCODING_SET(obj, i)
int rb_memcicmp(const void *, const void *, long)
VALUE rb_filesystem_str_new_cstr(const char *)
ID rb_intern2(const char *name, long len)
NODE * rb_compile_file(const char *f, VALUE file, int start)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
VALUE rb_parser_get_yydebug(VALUE self)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define rb_enc_isalpha(c, enc)
static VALUE debug_lines(VALUE fname)
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
static int rb_str_symname_type(VALUE name, unsigned int allowed_atttset)
VALUE rb_check_string_type(VALUE)
#define REALLOC_N(var, type, n)
#define yypact_value_is_default(yystate)
static struct kwtable * reserved_word(const char *, unsigned int)
int rb_enc_str_coderange(VALUE)
int rb_local_defined(ID id)
NODE * parser_eval_tree_begin
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define block_append(h, t)
NODE * rb_parser_compile_file_path(volatile VALUE vparser, VALUE fname, VALUE file, int start)
static void vtable_free(struct vtable *tbl)
#define RTYPEDDATA_TYPE(v)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
#define tokaddmbc(c, enc)
static void ripper_init_eventids2_table(VALUE self)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
static int sym_check_asciionly(VALUE str)
rb_encoding * rb_enc_from_index(int index)
#define aryset(node1, node2)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
#define IS_AFTER_OPERATOR()
#define NEW_BLOCK_PASS(b)
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
int rb_is_global_name(VALUE name)
static int parser_tokadd_mbchar(struct parser_params *parser, int c)