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];
5169 NODE *node = (yyvsp[(2) - (2)].
node);
5170 while (node->nd_next) {
5171 node = node->nd_next;
5195 (yyval.
node) = (yyvsp[(1) - (2)].node);
5267 (yyvsp[(4) - (5)].node));
5283 (yyval.
node) = (yyvsp[(1) - (4)].node);
5284 if ((yyvsp[(2) - (4)].node)) {
5285 (yyval.
node) =
NEW_RESCUE((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].
node), (yyvsp[(3) - (4)].node));
5287 else if ((yyvsp[(3) - (4)].node)) {
5288 rb_warn0(
"else without rescue is useless");
5291 if ((yyvsp[(4) - (4)].node)) {
5320 (yyval.
node) = (yyvsp[(1) - (2)].node);
5341 #line 1004 "parse.y"
5354 #line 1012 "parse.y"
5367 #line 1020 "parse.y"
5376 #line 1026 "parse.y"
5378 (yyval.
node) = (yyvsp[(1) - (1)].node);
5385 #line 1030 "parse.y"
5387 yyerror(
"BEGIN is permitted only at toplevel");
5398 #line 1038 "parse.y"
5402 (yyvsp[(4) - (5)].node));
5415 #line 1050 "parse.y"
5422 #line 1051 "parse.y"
5435 #line 1059 "parse.y"
5448 #line 1067 "parse.y"
5453 buf[1] = (char)(yyvsp[(3) - (3)].node)->nd_nth;
5464 #line 1078 "parse.y"
5467 yyerror(
"can't make alias for the number variables");
5479 #line 1088 "parse.y"
5482 (yyval.
node) = (yyvsp[(2) - (2)].node);
5492 #line 1096 "parse.y"
5506 #line 1105 "parse.y"
5520 #line 1114 "parse.y"
5523 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5527 (yyval.
node) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5538 #line 1127 "parse.y"
5541 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5542 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
5545 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5556 #line 1140 "parse.y"
5570 #line 1149 "parse.y"
5573 rb_warn0(
"END in method; use at_exit");
5577 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].node) , 0 ));
5587 #line 1162 "parse.y"
5591 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5592 (yyval.
node) = (yyvsp[(1) - (3)].node);
5602 #line 1172 "parse.y"
5605 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
5612 #line 1177 "parse.y"
5618 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
5619 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
5620 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
5621 (yyvsp[(5) - (6)].
id) = 0;
5623 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
5624 (yyvsp[(5) - (6)].
id) = 1;
5638 #line 1198 "parse.y"
5641 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5648 #line 1203 "parse.y"
5651 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5658 #line 1208 "parse.y"
5673 #line 1218 "parse.y"
5683 #line 1223 "parse.y"
5698 #line 1233 "parse.y"
5712 #line 1242 "parse.y"
5715 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5716 (yyval.
node) = (yyvsp[(1) - (3)].node);
5726 #line 1251 "parse.y"
5729 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5730 (yyval.
node) = (yyvsp[(1) - (3)].node);
5740 #line 1263 "parse.y"
5754 #line 1272 "parse.y"
5768 #line 1285 "parse.y"
5781 #line 1293 "parse.y"
5794 #line 1301 "parse.y"
5807 #line 1309 "parse.y"
5820 #line 1320 "parse.y"
5824 (yyval.
node) = (yyvsp[(1) - (1)].node);
5835 #line 1337 "parse.y"
5838 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5849 #line 1348 "parse.y"
5862 #line 1358 "parse.y"
5877 #line 1370 "parse.y"
5890 #line 1380 "parse.y"
5893 (yyval.
node) = (yyvsp[(1) - (2)].node);
5904 #line 1389 "parse.y"
5908 (yyvsp[(1) - (3)].
node)->
nd_args = (yyvsp[(2) - (3)].node);
5909 (yyvsp[(3) - (3)].
node)->
nd_iter = (yyvsp[(1) - (3)].node);
5910 (yyval.
node) = (yyvsp[(3) - (3)].node);
5922 #line 1402 "parse.y"
5925 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5936 #line 1411 "parse.y"
5940 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
5941 (yyval.
node) = (yyvsp[(5) - (5)].node);
5953 #line 1423 "parse.y"
5956 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5967 #line 1432 "parse.y"
5971 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
5972 (yyval.
node) = (yyvsp[(5) - (5)].node);
5984 #line 1444 "parse.y"
5998 #line 1453 "parse.y"
6012 #line 1462 "parse.y"
6025 #line 1470 "parse.y"
6038 #line 1478 "parse.y"
6051 #line 1489 "parse.y"
6054 (yyval.
node) = (yyvsp[(2) - (3)].node);
6064 #line 1500 "parse.y"
6077 #line 1510 "parse.y"
6090 #line 1518 "parse.y"
6103 #line 1526 "parse.y"
6116 #line 1534 "parse.y"
6130 #line 1543 "parse.y"
6143 #line 1551 "parse.y"
6157 #line 1560 "parse.y"
6170 #line 1568 "parse.y"
6184 #line 1577 "parse.y"
6197 #line 1585 "parse.y"
6211 #line 1597 "parse.y"
6214 (yyval.
node) = (yyvsp[(2) - (3)].node);
6224 #line 1607 "parse.y"
6237 #line 1615 "parse.y"
6250 #line 1625 "parse.y"
6263 #line 1633 "parse.y"
6276 #line 1643 "parse.y"
6285 #line 1647 "parse.y"
6294 #line 1651 "parse.y"
6297 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6307 #line 1659 "parse.y"
6310 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6320 #line 1667 "parse.y"
6323 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6333 #line 1675 "parse.y"
6336 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6346 #line 1683 "parse.y"
6350 yyerror(
"dynamic constant assignment");
6363 #line 1695 "parse.y"
6367 yyerror(
"dynamic constant assignment");
6378 #line 1705 "parse.y"
6393 #line 1717 "parse.y"
6407 #line 1726 "parse.y"
6421 #line 1735 "parse.y"
6424 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6434 #line 1743 "parse.y"
6437 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6447 #line 1751 "parse.y"
6450 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6460 #line 1759 "parse.y"
6463 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6473 #line 1767 "parse.y"
6477 yyerror(
"dynamic constant assignment");
6491 #line 1780 "parse.y"
6495 yyerror(
"dynamic constant assignment");
6509 #line 1793 "parse.y"
6523 #line 1804 "parse.y"
6526 yyerror(
"class/module name must be CONSTANT");
6536 #line 1815 "parse.y"
6549 #line 1823 "parse.y"
6562 #line 1831 "parse.y"
6575 #line 1844 "parse.y"
6578 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6585 #line 1849 "parse.y"
6589 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6599 #line 1864 "parse.y"
6612 #line 1875 "parse.y"
6625 #line 1882 "parse.y"
6632 #line 1883 "parse.y"
6645 #line 1892 "parse.y"
6652 #line 1893 "parse.y"
6659 #line 1894 "parse.y"
6666 #line 1895 "parse.y"
6673 #line 1896 "parse.y"
6680 #line 1897 "parse.y"
6687 #line 1898 "parse.y"
6694 #line 1899 "parse.y"
6701 #line 1900 "parse.y"
6708 #line 1901 "parse.y"
6715 #line 1902 "parse.y"
6722 #line 1903 "parse.y"
6729 #line 1904 "parse.y"
6736 #line 1905 "parse.y"
6743 #line 1906 "parse.y"
6750 #line 1907 "parse.y"
6757 #line 1908 "parse.y"
6764 #line 1909 "parse.y"
6771 #line 1910 "parse.y"
6778 #line 1911 "parse.y"
6785 #line 1912 "parse.y"
6792 #line 1913 "parse.y"
6799 #line 1914 "parse.y"
6806 #line 1915 "parse.y"
6813 #line 1916 "parse.y"
6820 #line 1917 "parse.y"
6827 #line 1918 "parse.y"
6834 #line 1919 "parse.y"
6841 #line 1920 "parse.y"
6848 #line 1921 "parse.y"
6855 #line 1939 "parse.y"
6869 #line 1948 "parse.y"
6884 #line 1958 "parse.y"
6887 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
6894 #line 1963 "parse.y"
6902 (yyval.
node) =
new_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].node));
6909 #line 1973 "parse.y"
6915 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
6917 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6920 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6922 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
6923 (yyvsp[(5) - (6)].
id) = 0;
6925 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
6926 (yyvsp[(5) - (6)].
id) = 1;
6940 #line 1999 "parse.y"
6943 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6950 #line 2004 "parse.y"
6953 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6960 #line 2009 "parse.y"
6970 #line 2014 "parse.y"
6985 #line 2024 "parse.y"
7000 #line 2034 "parse.y"
7016 #line 2045 "parse.y"
7035 #line 2059 "parse.y"
7054 #line 2073 "parse.y"
7067 #line 2081 "parse.y"
7080 #line 2089 "parse.y"
7093 #line 2097 "parse.y"
7106 #line 2105 "parse.y"
7119 #line 2113 "parse.y"
7132 #line 2121 "parse.y"
7146 #line 2130 "parse.y"
7160 #line 2139 "parse.y"
7173 #line 2147 "parse.y"
7186 #line 2155 "parse.y"
7199 #line 2163 "parse.y"
7212 #line 2171 "parse.y"
7225 #line 2179 "parse.y"
7238 #line 2187 "parse.y"
7251 #line 2195 "parse.y"
7264 #line 2203 "parse.y"
7277 #line 2211 "parse.y"
7290 #line 2219 "parse.y"
7303 #line 2227 "parse.y"
7316 #line 2235 "parse.y"
7329 #line 2243 "parse.y"
7345 #line 2254 "parse.y"
7358 #line 2262 "parse.y"
7371 #line 2270 "parse.y"
7384 #line 2278 "parse.y"
7397 #line 2286 "parse.y"
7410 #line 2294 "parse.y"
7423 #line 2302 "parse.y"
7436 #line 2309 "parse.y"
7443 #line 2310 "parse.y"
7458 #line 2320 "parse.y"
7462 (yyval.
node) =
NEW_IF(
cond((yyvsp[(1) - (6)].node)), (yyvsp[(3) - (6)].
node), (yyvsp[(6) - (6)].node));
7473 #line 2330 "parse.y"
7475 (yyval.
node) = (yyvsp[(1) - (1)].node);
7482 #line 2336 "parse.y"
7486 (yyval.
node) = (yyvsp[(1) - (1)].node);
7497 #line 2349 "parse.y"
7499 (yyval.
node) = (yyvsp[(1) - (2)].node);
7506 #line 2353 "parse.y"
7519 #line 2361 "parse.y"
7532 #line 2371 "parse.y"
7535 (yyval.
node) = (yyvsp[(2) - (3)].node);
7545 #line 2387 "parse.y"
7547 (yyval.
node) = (yyvsp[(1) - (2)].node);
7554 #line 2391 "parse.y"
7567 #line 2399 "parse.y"
7580 #line 2409 "parse.y"
7594 #line 2418 "parse.y"
7607 #line 2426 "parse.y"
7622 #line 2436 "parse.y"
7636 #line 2453 "parse.y"
7646 #line 2458 "parse.y"
7650 (yyval.
node) = (yyvsp[(2) - (2)].node);
7657 #line 2466 "parse.y"
7670 #line 2476 "parse.y"
7672 (yyval.
node) = (yyvsp[(2) - (2)].node);
7679 #line 2480 "parse.y"
7688 #line 2486 "parse.y"
7701 #line 2494 "parse.y"
7714 #line 2502 "parse.y"
7718 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7733 #line 2516 "parse.y"
7752 #line 2532 "parse.y"
7756 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7771 #line 2546 "parse.y"
7776 (n1 =
splat_array((yyvsp[(1) - (4)].node))) != 0) {
7791 #line 2561 "parse.y"
7804 #line 2581 "parse.y"
7817 #line 2589 "parse.y"
7831 #line 2599 "parse.y"
7835 if ((yyvsp[(3) - (4)].node) ==
NULL) {
7841 nd_set_line((yyvsp[(3) - (4)].node), (yyvsp[(2) - (4)].num));
7854 #line 2616 "parse.y"
7861 #line 2617 "parse.y"
7874 #line 2625 "parse.y"
7884 #line 2629 "parse.y"
7891 #line 2630 "parse.y"
7895 (yyval.
node) = (yyvsp[(3) - (5)].node);
7905 #line 2639 "parse.y"
7908 (yyval.
node) = (yyvsp[(2) - (3)].node);
7918 #line 2647 "parse.y"
7931 #line 2655 "parse.y"
7944 #line 2663 "parse.y"
7947 if ((yyvsp[(2) - (3)].node) == 0) {
7951 (yyval.
node) = (yyvsp[(2) - (3)].node);
7962 #line 2676 "parse.y"
7975 #line 2684 "parse.y"
7988 #line 2692 "parse.y"
8001 #line 2700 "parse.y"
8014 #line 2708 "parse.y"
8027 #line 2715 "parse.y"
8034 #line 2716 "parse.y"
8049 #line 2726 "parse.y"
8062 #line 2734 "parse.y"
8075 #line 2742 "parse.y"
8078 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8079 (yyval.
node) = (yyvsp[(2) - (2)].node);
8090 #line 2753 "parse.y"
8094 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8095 (yyval.
node) = (yyvsp[(2) - (2)].node);
8105 #line 2763 "parse.y"
8107 (yyval.
node) = (yyvsp[(2) - (2)].node);
8114 #line 2770 "parse.y"
8117 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].
node));
8128 #line 2782 "parse.y"
8131 (yyval.
node) =
NEW_UNLESS(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node));
8142 #line 2790 "parse.y"
8149 #line 2790 "parse.y"
8156 #line 2793 "parse.y"
8170 #line 2801 "parse.y"
8177 #line 2801 "parse.y"
8184 #line 2804 "parse.y"
8198 #line 2815 "parse.y"
8212 #line 2824 "parse.y"
8225 #line 2832 "parse.y"
8232 #line 2834 "parse.y"
8239 #line 2837 "parse.y"
8284 m->nd_next = (yyvsp[(2) - (9)].
node);
8293 tbl[0] = 1; tbl[1] =
id;
8294 (yyval.
node) =
NEW_FOR(0, (yyvsp[(5) - (9)].node), scope);
8305 #line 2898 "parse.y"
8308 yyerror(
"class definition in method body");
8320 #line 2909 "parse.y"
8323 (yyval.
node) =
NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(3) - (6)].node));
8335 #line 2919 "parse.y"
8345 #line 2924 "parse.y"
8356 #line 2931 "parse.y"
8373 #line 2943 "parse.y"
8376 yyerror(
"module definition in method body");
8388 #line 2954 "parse.y"
8403 #line 2964 "parse.y"
8415 #line 2973 "parse.y"
8434 #line 2986 "parse.y"
8441 #line 2987 "parse.y"
8452 #line 2995 "parse.y"
8457 (yyval.
node) =
NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].
id), (yyvsp[(7) - (9)].node), body);
8470 #line 3008 "parse.y"
8483 #line 3016 "parse.y"
8496 #line 3024 "parse.y"
8509 #line 3032 "parse.y"
8522 #line 3042 "parse.y"
8526 (yyval.
node) = (yyvsp[(1) - (1)].node);
8537 #line 3054 "parse.y"
8546 #line 3060 "parse.y"
8555 #line 3066 "parse.y"
8564 #line 3072 "parse.y"
8573 #line 3078 "parse.y"
8582 #line 3084 "parse.y"
8591 #line 3090 "parse.y"
8600 #line 3096 "parse.y"
8609 #line 3102 "parse.y"
8618 #line 3108 "parse.y"
8631 #line 3118 "parse.y"
8640 #line 3148 "parse.y"
8643 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (5)].node)), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
8654 #line 3160 "parse.y"
8657 (yyval.
node) = (yyvsp[(2) - (2)].node);
8667 #line 3174 "parse.y"
8680 #line 3182 "parse.y"
8683 (yyval.
node) = (yyvsp[(2) - (3)].node);
8693 #line 3192 "parse.y"
8706 #line 3200 "parse.y"
8719 #line 3210 "parse.y"
8732 #line 3218 "parse.y"
8746 #line 3227 "parse.y"
8760 #line 3236 "parse.y"
8773 #line 3244 "parse.y"
8786 #line 3252 "parse.y"
8800 #line 3261 "parse.y"
8817 #line 3273 "parse.y"
8830 #line 3281 "parse.y"
8843 #line 3292 "parse.y"
8845 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
8852 #line 3296 "parse.y"
8861 #line 3300 "parse.y"
8870 #line 3304 "parse.y"
8879 #line 3310 "parse.y"
8881 (yyval.
node) = (yyvsp[(2) - (2)].node);
8888 #line 3314 "parse.y"
8897 #line 3320 "parse.y"
8899 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
8906 #line 3324 "parse.y"
8908 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
8915 #line 3328 "parse.y"
8924 #line 3332 "parse.y"
8926 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8933 #line 3336 "parse.y"
8942 #line 3340 "parse.y"
8955 #line 3348 "parse.y"
8957 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8964 #line 3352 "parse.y"
8973 #line 3356 "parse.y"
8982 #line 3360 "parse.y"
8984 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8991 #line 3364 "parse.y"
9000 #line 3368 "parse.y"
9009 #line 3372 "parse.y"
9018 #line 3376 "parse.y"
9027 #line 3380 "parse.y"
9036 #line 3387 "parse.y"
9045 #line 3393 "parse.y"
9059 #line 3402 "parse.y"
9073 #line 3411 "parse.y"
9076 (yyval.
node) = (yyvsp[(2) - (4)].node);
9086 #line 3422 "parse.y"
9095 #line 3426 "parse.y"
9108 #line 3452 "parse.y"
9121 #line 3460 "parse.y"
9130 #line 3465 "parse.y"
9139 #line 3468 "parse.y"
9149 #line 3473 "parse.y"
9158 #line 3477 "parse.y"
9174 #line 3490 "parse.y"
9177 (yyval.
node) = (yyvsp[(2) - (4)].node);
9187 #line 3498 "parse.y"
9190 (yyval.
node) = (yyvsp[(1) - (1)].node);
9200 #line 3508 "parse.y"
9202 (yyval.
node) = (yyvsp[(2) - (3)].node);
9209 #line 3512 "parse.y"
9211 (yyval.
node) = (yyvsp[(2) - (3)].node);
9218 #line 3518 "parse.y"
9230 #line 3527 "parse.y"
9245 #line 3539 "parse.y"
9254 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
9255 (yyval.
node) = (yyvsp[(2) - (2)].node);
9266 #line 3555 "parse.y"
9269 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
9280 #line 3564 "parse.y"
9284 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
9285 (yyval.
node) = (yyvsp[(5) - (5)].node);
9297 #line 3576 "parse.y"
9301 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
9302 (yyval.
node) = (yyvsp[(5) - (5)].node);
9314 #line 3590 "parse.y"
9317 (yyval.
node) = (yyvsp[(1) - (2)].node);
9328 #line 3599 "parse.y"
9339 #line 3605 "parse.y"
9342 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
9354 #line 3615 "parse.y"
9365 #line 3621 "parse.y"
9368 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
9380 #line 3631 "parse.y"
9383 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id), 0);
9393 #line 3639 "parse.y"
9404 #line 3645 "parse.y"
9420 #line 3656 "parse.y"
9431 #line 3662 "parse.y"
9447 #line 3673 "parse.y"
9460 #line 3681 "parse.y"
9473 #line 3689 "parse.y"
9476 if ((yyvsp[(1) - (4)].node) &&
nd_type((yyvsp[(1) - (4)].node)) ==
NODE_SELF)
9479 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node),
tAREF, (yyvsp[(3) - (4)].node));
9490 #line 3703 "parse.y"
9503 #line 3712 "parse.y"
9518 #line 3722 "parse.y"
9531 #line 3731 "parse.y"
9546 #line 3745 "parse.y"
9549 (yyval.
node) =
NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
9559 #line 3761 "parse.y"
9562 if ((yyvsp[(3) - (6)].node)) {
9566 (yyval.
node) =
NEW_RESBODY((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(6) - (6)].node));
9581 #line 3781 "parse.y"
9594 #line 3789 "parse.y"
9607 #line 3800 "parse.y"
9609 (yyval.
node) = (yyvsp[(2) - (2)].node);
9616 #line 3807 "parse.y"
9619 (yyval.
node) = (yyvsp[(2) - (2)].node);
9629 #line 3819 "parse.y"
9642 #line 3830 "parse.y"
9645 NODE *node = (yyvsp[(1) - (1)].
node);
9652 (yyval.
node) = node;
9662 #line 3849 "parse.y"
9675 #line 3859 "parse.y"
9678 (yyval.
node) = (yyvsp[(2) - (3)].node);
9688 #line 3869 "parse.y"
9691 NODE *node = (yyvsp[(2) - (3)].
node);
9708 (yyval.
node) = node;
9718 #line 3896 "parse.y"
9722 NODE *node = (yyvsp[(2) - (3)].
node);
9746 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9748 VALUE tail = list->nd_head->nd_lit;
9750 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9756 prev->nd_next = list->nd_next;
9769 if (!node->nd_next) {
9776 (yyval.
node) = node;
9786 #line 3961 "parse.y"
9800 #line 3970 "parse.y"
9803 (yyval.
node) = (yyvsp[(2) - (3)].node);
9813 #line 3980 "parse.y"
9826 #line 3988 "parse.y"
9839 #line 4006 "parse.y"
9852 #line 4016 "parse.y"
9866 #line 4025 "parse.y"
9869 (yyval.
node) = (yyvsp[(2) - (3)].node);
9879 #line 4035 "parse.y"
9892 #line 4043 "parse.y"
9907 #line 4055 "parse.y"
9921 #line 4064 "parse.y"
9924 (yyval.
node) = (yyvsp[(2) - (3)].node);
9934 #line 4074 "parse.y"
9948 #line 4083 "parse.y"
9951 (yyval.
node) = (yyvsp[(2) - (3)].node);
9961 #line 4093 "parse.y"
9974 #line 4101 "parse.y"
9987 #line 4111 "parse.y"
10000 #line 4119 "parse.y"
10017 #line 4133 "parse.y"
10030 #line 4141 "parse.y"
10043 #line 4151 "parse.y"
10056 #line 4159 "parse.y"
10069 #line 4169 "parse.y"
10082 #line 4177 "parse.y"
10085 NODE *
head = (yyvsp[(1) - (2)].
node), *tail = (yyvsp[(2) - (2)].node);
10087 (yyval.
node) = tail;
10090 (yyval.
node) = head;
10114 #line 4207 "parse.y"
10125 #line 4213 "parse.y"
10140 #line 4223 "parse.y"
10152 #line 4229 "parse.y"
10163 #line 4234 "parse.y"
10173 #line 4239 "parse.y"
10180 if ((yyvsp[(5) - (6)].node)) (yyvsp[(5) - (6)].node)->flags &= ~
NODE_FL_NEWLINE;
10191 #line 4254 "parse.y"
10204 #line 4262 "parse.y"
10217 #line 4270 "parse.y"
10230 #line 4281 "parse.y"
10234 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10244 #line 4298 "parse.y"
10258 #line 4311 "parse.y"
10271 #line 4319 "parse.y"
10284 #line 4335 "parse.y"
10291 #line 4336 "parse.y"
10298 #line 4337 "parse.y"
10305 #line 4338 "parse.y"
10312 #line 4339 "parse.y"
10319 #line 4340 "parse.y"
10326 #line 4341 "parse.y"
10333 #line 4345 "parse.y"
10351 #line 4358 "parse.y"
10364 #line 4368 "parse.y"
10377 #line 4376 "parse.y"
10390 #line 4390 "parse.y"
10403 #line 4398 "parse.y"
10413 #line 4403 "parse.y"
10415 (yyval.
node) = (yyvsp[(3) - (4)].node);
10422 #line 4407 "parse.y"
10437 #line 4419 "parse.y"
10440 (yyval.
node) = (yyvsp[(2) - (3)].node);
10452 #line 4429 "parse.y"
10454 (yyval.
node) = (yyvsp[(1) - (2)].node);
10463 #line 4437 "parse.y"
10465 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
10472 #line 4441 "parse.y"
10481 #line 4445 "parse.y"
10490 #line 4449 "parse.y"
10499 #line 4455 "parse.y"
10501 (yyval.
node) = (yyvsp[(2) - (2)].node);
10508 #line 4459 "parse.y"
10517 #line 4465 "parse.y"
10519 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
10526 #line 4469 "parse.y"
10528 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
10535 #line 4473 "parse.y"
10544 #line 4477 "parse.y"
10546 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10553 #line 4481 "parse.y"
10562 #line 4485 "parse.y"
10564 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10571 #line 4489 "parse.y"
10580 #line 4493 "parse.y"
10589 #line 4497 "parse.y"
10591 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10598 #line 4501 "parse.y"
10607 #line 4505 "parse.y"
10616 #line 4509 "parse.y"
10625 #line 4513 "parse.y"
10634 #line 4517 "parse.y"
10643 #line 4521 "parse.y"
10653 #line 4528 "parse.y"
10656 yyerror(
"formal argument cannot be a constant");
10667 #line 4537 "parse.y"
10670 yyerror(
"formal argument cannot be an instance variable");
10681 #line 4546 "parse.y"
10684 yyerror(
"formal argument cannot be a global variable");
10695 #line 4555 "parse.y"
10698 yyerror(
"formal argument cannot be a class variable");
10709 #line 4567 "parse.y"
10712 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10719 #line 4574 "parse.y"
10733 #line 4583 "parse.y"
10755 #line 4609 "parse.y"
10758 (yyval.
node) = (yyvsp[(1) - (3)].node);
10771 #line 4622 "parse.y"
10786 #line 4634 "parse.y"
10801 #line 4646 "parse.y"
10804 (yyval.
node) = (yyvsp[(1) - (1)].node);
10814 #line 4654 "parse.y"
10817 NODE *kws = (yyvsp[(1) - (3)].
node);
10819 while (kws->nd_next) {
10820 kws = kws->nd_next;
10822 kws->nd_next = (yyvsp[(3) - (3)].
node);
10823 (yyval.
node) = (yyvsp[(1) - (3)].node);
10833 #line 4671 "parse.y"
10836 (yyval.
node) = (yyvsp[(1) - (1)].node);
10846 #line 4679 "parse.y"
10849 NODE *kws = (yyvsp[(1) - (3)].
node);
10851 while (kws->nd_next) {
10852 kws = kws->nd_next;
10854 kws->nd_next = (yyvsp[(3) - (3)].
node);
10855 (yyval.
node) = (yyvsp[(1) - (3)].node);
10865 #line 4699 "parse.y"
10868 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10875 #line 4704 "parse.y"
10884 #line 4710 "parse.y"
10899 #line 4722 "parse.y"
10914 #line 4734 "parse.y"
10917 (yyval.
node) = (yyvsp[(1) - (1)].node);
10927 #line 4742 "parse.y"
10932 while (opts->nd_next) {
10933 opts = opts->nd_next;
10935 opts->nd_next = (yyvsp[(3) - (3)].
node);
10936 (yyval.
node) = (yyvsp[(1) - (3)].node);
10946 #line 4758 "parse.y"
10949 (yyval.
node) = (yyvsp[(1) - (1)].node);
10959 #line 4766 "parse.y"
10964 while (opts->nd_next) {
10965 opts = opts->nd_next;
10967 opts->nd_next = (yyvsp[(3) - (3)].
node);
10968 (yyval.
node) = (yyvsp[(1) - (3)].node);
10978 #line 4786 "parse.y"
10982 yyerror(
"rest argument must be local variable");
10986 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10996 #line 4799 "parse.y"
11010 #line 4814 "parse.y"
11014 yyerror(
"block argument must be local variable");
11016 yyerror(
"duplicated block argument name");
11020 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11030 #line 4831 "parse.y"
11032 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11039 #line 4835 "parse.y"
11052 #line 4845 "parse.y"
11056 (yyval.
node) = (yyvsp[(1) - (1)].node);
11067 #line 4854 "parse.y"
11074 #line 4855 "parse.y"
11077 if ((yyvsp[(3) - (4)].node) == 0) {
11078 yyerror(
"can't define singleton method for ().");
11081 switch (
nd_type((yyvsp[(3) - (4)].node))) {
11090 yyerror(
"can't define singleton method for literals");
11096 (yyval.
node) = (yyvsp[(3) - (4)].node);
11106 #line 4885 "parse.y"
11109 (yyval.
node) = (yyvsp[(1) - (2)].node);
11119 #line 4902 "parse.y"
11132 #line 4912 "parse.y"
11145 #line 4920 "parse.y"
11158 #line 4928 "parse.y"
11171 #line 4986 "parse.y"
11178 #line 4991 "parse.y"
11185 #line 4995 "parse.y"
11198 #line 11197 "parse.c"
11227 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
11247 #if ! YYERROR_VERBOSE
11250 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
11253 char const *yymsgp =
YY_(
"syntax error");
11254 int yysyntax_error_status;
11256 if (yysyntax_error_status == 0)
11258 else if (yysyntax_error_status == 1)
11260 if (yymsg != yymsgbuf)
11267 yysyntax_error_status = 2;
11276 if (yysyntax_error_status == 2)
11277 goto yyexhaustedlab;
11279 # undef YYSYNTAX_ERROR
11285 if (yyerrstatus == 3)
11290 if (yychar <=
YYEOF)
11293 if (yychar ==
YYEOF)
11299 yytoken, &yylval, parser);
11343 yyn = yytable[
yyn];
11355 yystos[yystate], yyvsp, parser);
11385 #if !defined(yyoverflow) || YYERROR_VERBOSE
11401 yydestruct (
"Cleanup: discarding lookahead",
11402 yytoken, &yylval, parser);
11408 while (yyssp != yyss)
11411 yystos[*yyssp], yyvsp, parser);
11418 #if YYERROR_VERBOSE
11419 if (yymsg != yymsgbuf)
11423 return YYID (yyresult);
11429 #line 5003 "parse.y"
11434 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
11443 # define nextc() parser_nextc(parser)
11444 # define pushback(c) parser_pushback(parser, (c))
11445 # define newtok() parser_newtok(parser)
11446 # define tokspace(n) parser_tokspace(parser, (n))
11447 # define tokadd(c) parser_tokadd(parser, (c))
11448 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
11449 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
11450 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
11451 # define regx_options() parser_regx_options(parser)
11452 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
11453 # define parse_string(n) parser_parse_string(parser,(n))
11454 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
11455 # define here_document(n) parser_here_document(parser,(n))
11456 # define heredoc_identifier() parser_heredoc_identifier(parser)
11457 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
11458 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
11461 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
11462 # define set_yylval_num(x) (yylval.num = (x))
11463 # define set_yylval_id(x) (yylval.id = (x))
11464 # define set_yylval_name(x) (yylval.id = (x))
11465 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
11466 # define set_yylval_node(x) (yylval.node = (x))
11467 # define yylval_id() (yylval.id)
11469 static inline VALUE
11470 ripper_yylval_id(
ID x)
11474 # define set_yylval_str(x) (void)(x)
11475 # define set_yylval_num(x) (void)(x)
11476 # define set_yylval_id(x) (void)(x)
11477 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
11478 # define set_yylval_literal(x) (void)(x)
11479 # define set_yylval_node(x) (void)(x)
11480 # define yylval_id() yylval.id
11484 #define ripper_flush(p) (void)(p)
11486 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
11488 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
11495 return lex_p > parser->tokp;
11508 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11510 if (!ripper_has_scan_event(parser))
return;
11511 yylval_rval = ripper_scan_event_val(parser, t);
11515 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11517 if (!ripper_has_scan_event(parser))
return;
11518 (
void)ripper_scan_event_val(parser, t);
11522 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11525 const char *saved_tokp = parser->tokp;
11528 parser->tokp =
lex_pbeg + parser->delayed_col;
11530 parser->delayed =
Qnil;
11532 parser->tokp = saved_tokp;
11543 #undef SIGN_EXTEND_CHAR
11545 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
11548 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
11551 #define parser_encoding_name() (current_enc->name)
11552 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
11553 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
11554 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
11555 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
11557 #define parser_isascii() ISASCII(*(lex_p-1))
11565 for (p =
lex_pbeg; p < pend; p++) {
11567 column = (((column - 1) / 8) + 1) * 8;
11578 for (p =
lex_pbeg; p < pend; p++) {
11579 if (*p !=
' ' && *p !=
'\t') {
11586 #undef token_info_push
11603 #undef token_info_pop
11610 if (!ptinfo)
return;
11616 if (linenum == ptinfo->
linenum) {
11624 "mismatched indentations at '%s' with '%s' at %d",
11637 const int max_line_margin = 30;
11638 const char *
p, *pe;
11646 if (*p ==
'\n')
break;
11653 if (*pe ==
'\n')
break;
11660 const char *pre =
"", *post =
"";
11662 if (len > max_line_margin * 2 + 10) {
11663 if (
lex_p - p > max_line_margin) {
11667 if (pe -
lex_p > max_line_margin) {
11674 MEMCPY(buf, p,
char, len);
11679 p2 =
buf; pe = buf +
len;
11682 if (*p2 !=
'\t') *p2 =
' ';
11690 dispatch1(parse_error,
STR_NEW2(msg));
11702 CONST_ID(script_lines,
"SCRIPT_LINES__");
11721 RBASIC(lines)->klass = 0;
11723 RARRAY(lines)->as.heap.len =
n;
11783 if (parser->
nerr) {
11793 return (
VALUE)tree;
11819 char *beg, *
end, *pend;
11829 while (end < pend) {
11830 if (*end++ ==
'\n')
break;
11840 if (
NIL_P(line))
return line;
11944 node =
yycompile(parser, fname, start);
11951 #define STR_FUNC_ESCAPE 0x01
11952 #define STR_FUNC_EXPAND 0x02
11953 #define STR_FUNC_REGEXP 0x04
11954 #define STR_FUNC_QWORDS 0x08
11955 #define STR_FUNC_SYMBOL 0x10
11956 #define STR_FUNC_INDENT 0x20
11986 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
11987 #define lex_eol_p() (lex_p >= lex_pend)
11988 #define peek(c) peek_n((c), 0)
11989 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
12012 if (
NIL_P(parser->delayed)) {
12016 parser->tokp,
lex_pend - parser->tokp);
12018 parser->delayed_col = (
int)(parser->tokp -
lex_pbeg);
12022 parser->tokp,
lex_pend - parser->tokp);
12038 c = (
unsigned char)*
lex_p++;
12039 if (c ==
'\r' &&
peek(
'\n')) {
12050 if (c == -1)
return;
12057 #define was_bol() (lex_p == lex_pbeg + 1)
12059 #define tokfix() (tokenbuf[tokidx]='\0')
12060 #define tok() tokenbuf
12061 #define toklen() tokidx
12062 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
12109 yyerror(
"invalid hex escape");
12116 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
12121 int string_literal,
int symbol_literal,
int regexp_literal)
12141 yyerror(
"invalid Unicode escape");
12144 if (codepoint > 0x10ffff) {
12145 yyerror(
"invalid Unicode codepoint (too large)");
12149 if (regexp_literal) {
12152 else if (codepoint >= 0x80) {
12154 if (string_literal)
tokaddmbc(codepoint, *encp);
12156 else if (string_literal) {
12159 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
12162 yyerror(
"unterminated Unicode escape");
12166 if (regexp_literal) {
tokadd(
'}'); }
12172 yyerror(
"invalid Unicode escape");
12176 if (regexp_literal) {
12179 else if (codepoint >= 0x80) {
12181 if (string_literal)
tokaddmbc(codepoint, *encp);
12183 else if (string_literal) {
12191 #define ESCAPE_CONTROL 1
12192 #define ESCAPE_META 2
12201 switch (c =
nextc()) {
12226 case '0':
case '1':
case '2':
case '3':
12227 case '4':
case '5':
case '6':
case '7':
12235 if (numlen == 0)
return 0;
12246 if ((c =
nextc()) !=
'-') {
12250 if ((c =
nextc()) ==
'\\') {
12251 if (
peek(
'u'))
goto eof;
12252 return read_escape(flags|ESCAPE_META, encp) | 0x80;
12254 else if (c == -1 || !
ISASCII(c))
goto eof;
12256 return ((c & 0xff) | 0x80);
12260 if ((c =
nextc()) !=
'-') {
12266 if ((c =
nextc())==
'\\') {
12267 if (
peek(
'u'))
goto eof;
12272 else if (c == -1 || !
ISASCII(c))
goto eof;
12277 yyerror(
"Invalid escape character syntax");
12300 switch (c =
nextc()) {
12304 case '0':
case '1':
case '2':
case '3':
12305 case '4':
case '5':
case '6':
case '7':
12308 if (numlen == 0)
goto eof;
12317 if (numlen == 0)
return -1;
12324 if ((c =
nextc()) !=
'-') {
12334 if ((c =
nextc()) !=
'-') {
12342 if (flags & ESCAPE_CONTROL)
goto eof;
12346 if ((c =
nextc()) ==
'\\') {
12349 else if (c == -1)
goto eof;
12355 yyerror(
"Invalid escape character syntax");
12422 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
12428 case '$':
case '*':
case '+':
case '.':
12429 case '?':
case '^':
case '|':
12430 case ')':
case ']':
case '}':
case '>':
12439 int func,
int term,
int paren,
long *nest,
12443 int has_nonascii = 0;
12446 static const char mixed_msg[] =
"%s mixed within %s source";
12448 #define mixed_error(enc1, enc2) if (!errbuf) { \
12449 size_t len = sizeof(mixed_msg) - 4; \
12450 len += strlen(rb_enc_name(enc1)); \
12451 len += strlen(rb_enc_name(enc2)); \
12452 errbuf = ALLOCA_N(char, len); \
12453 snprintf(errbuf, len, mixed_msg, \
12454 rb_enc_name(enc1), \
12455 rb_enc_name(enc2)); \
12458 #define mixed_escape(beg, enc1, enc2) do { \
12459 const char *pos = lex_p; \
12461 mixed_error((enc1), (enc2)); \
12465 while ((c =
nextc()) != -1) {
12466 if (paren && c == paren) {
12469 else if (c == term) {
12470 if (!nest || !*nest) {
12478 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12483 else if (c ==
'\\') {
12484 const char *beg =
lex_p - 1;
12489 if (func & STR_FUNC_EXPAND)
continue;
12498 if ((func & STR_FUNC_EXPAND) == 0) {
12505 if (has_nonascii && enc != *encp) {
12511 if (c == -1)
return -1;
12513 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12516 if (func & STR_FUNC_REGEXP) {
12524 if (has_nonascii && enc != *encp) {
12529 else if (func & STR_FUNC_EXPAND) {
12531 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12534 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12537 else if (c != term && !(paren && c == paren)) {
12547 if (enc != *encp) {
12560 if (enc != *encp) {
12571 #define NEW_STRTERM(func, term, paren) \
12572 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
12578 if (!
NIL_P(parser->delayed)) {
12579 ptrdiff_t
len =
lex_p - parser->tokp;
12584 parser->tokp =
lex_p;
12588 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
12590 #define flush_string_content(enc) ((void)(enc))
12597 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
12598 #define SPECIAL_PUNCT(idx) ( \
12599 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
12600 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
12601 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
12602 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
12603 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
12611 #undef SPECIAL_PUNCT
12617 if (c <= 0x20 || 0x7e < c)
return 0;
12618 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
12625 const char *p =
lex_p;
12631 if ((c = *p) ==
'-') {
12640 if ((c = *p) ==
'@') {
12660 int func = (
int)quote->nd_func;
12672 if (c == term && !quote->nd_nest) {
12673 if (func & STR_FUNC_QWORDS) {
12674 quote->nd_func = -1;
12736 while ((c =
nextc()) != -1 && c != term) {
12783 line = here->nd_orig;
12797 const char *eos,
long len,
int indent)
12803 while (*p &&
ISSPACE(*p)) p++;
12806 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
12807 return strncmp(eos, p, len) == 0;
12814 if (!
NIL_P(parser->delayed))
12817 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12820 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
12822 #define dispatch_heredoc_end() ((void)0)
12828 int c,
func, indent = 0;
12829 const char *eos, *
p, *pend;
12838 if ((c =
nextc()) == -1) {
12842 if (
NIL_P(parser->delayed)) {
12847 ((len =
lex_p - parser->tokp) > 0 &&
12848 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
12871 switch (pend[-1]) {
12873 if (--pend == p || pend[-1] !=
'\r') {
12887 if (
nextc() == -1) {
12908 if (parser->
eofp)
goto error;
12918 if ((c =
nextc()) == -1)
goto error;
12935 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
12940 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
12947 yyerror(
"formal argument must be local variable");
12965 if (len > 5 && name[nlen = len - 5] ==
'-') {
12966 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
12969 if (len > 4 && name[nlen = len - 4] ==
'-') {
12972 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
12973 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
12988 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
13005 for (i = 0; i <
n; ++
i) {
13043 case 't':
case 'T':
13049 case 'f':
case 'F':
13072 static const char *
13080 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13081 return str + i + 1;
13086 if (i + 1 >= len)
return 0;
13087 if (str[i+1] !=
'-') {
13090 else if (str[i-1] !=
'-') {
13094 return str + i + 2;
13109 const char *beg, *
end, *vbeg, *vend;
13110 #define str_copy(_s, _p, _n) ((_s) \
13111 ? (void)(rb_str_resize((_s), (_n)), \
13112 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
13113 : (void)((_s) = STR_NEW((_p), (_n))))
13115 if (len <= 7)
return FALSE;
13119 len = end - beg - 3;
13130 for (; len > 0 && *
str; str++, --
len) {
13132 case '\'':
case '"':
case ':':
case ';':
13137 for (beg = str; len > 0; str++, --
len) {
13139 case '\'':
case '"':
case ':':
case ';':
13147 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
13149 if (*str !=
':')
continue;
13151 do str++;
while (--len > 0 &&
ISSPACE(*str));
13154 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13155 if (*str ==
'\\') {
13167 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
13170 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13175 for (i = 0; i <
n; ++
i) {
13176 if (s[i] ==
'-') s[
i] =
'_';
13183 n = (*p->
length)(parser, vbeg, n);
13189 }
while (++p < magic_comments +
numberof(magic_comments));
13203 const char *beg =
str;
13207 if (send - str <= 6)
return;
13209 case 'C':
case 'c': str += 6;
continue;
13210 case 'O':
case 'o': str += 5;
continue;
13211 case 'D':
case 'd': str += 4;
continue;
13212 case 'I':
case 'i': str += 3;
continue;
13213 case 'N':
case 'n': str += 2;
continue;
13214 case 'G':
case 'g': str += 1;
continue;
13215 case '=':
case ':':
13228 if (++str >= send)
return;
13231 if (*str !=
'=' && *str !=
':')
return;
13236 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13252 (
unsigned char)
lex_p[0] == 0xbb &&
13253 (
unsigned char)
lex_p[1] == 0xbf) {
13267 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
13268 #define IS_END() IS_lex_state(EXPR_END_ANY)
13269 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY)
13270 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
13271 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
13272 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
13273 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
13276 #define ambiguous_operator(op, syn) ( \
13277 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
13278 rb_warning0("even though it seems like "syn""))
13280 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
13282 #define warn_balanced(op, syn) ((void) \
13283 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
13284 space_seen && !ISSPACE(c) && \
13285 (ambiguous_operator(op, syn), 0)))
13291 int space_seen = 0;
13297 int fallthru =
FALSE;
13323 switch (c =
nextc()) {
13331 case ' ':
case '\t':
case '\f':
case '\r':
13335 while ((c =
nextc())) {
13337 case ' ':
case '\t':
case '\f':
case '\r':
13346 ripper_dispatch_scan_event(parser,
tSP);
13359 ripper_dispatch_scan_event(parser,
tCOMMENT);
13364 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT)) {
13373 while ((c =
nextc())) {
13375 case ' ':
case '\t':
case '\f':
case '\r':
13380 if ((c =
nextc()) !=
'.') {
13393 parser->tokp =
lex_p;
13396 goto normal_newline;
13405 if ((c =
nextc()) ==
'*') {
13406 if ((c =
nextc()) ==
'=') {
13413 rb_warning0(
"`**' interpreted as argument prefix");
13432 rb_warning0(
"`*' interpreted as argument prefix");
13471 int first_p =
TRUE;
13480 ripper_dispatch_scan_event(parser,
tEMBDOC);
13489 if (c !=
'=')
continue;
13490 if (strncmp(
lex_p,
"end", 3) == 0 &&
13504 if ((c =
nextc()) ==
'=') {
13505 if ((c =
nextc()) ==
'=') {
13514 else if (c ==
'>') {
13526 (!
IS_ARG() || space_seen)) {
13528 if (token)
return token;
13539 if ((c =
nextc()) ==
'>') {
13546 if ((c =
nextc()) ==
'=') {
13560 if ((c =
nextc()) ==
'=') {
13564 if ((c =
nextc()) ==
'=') {
13632 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13649 else if (c ==
'\\') {
13678 if ((c =
nextc()) ==
'&') {
13680 if ((c =
nextc()) ==
'=') {
13688 else if (c ==
'=') {
13695 rb_warning0(
"`&' interpreted as argument prefix");
13709 if ((c =
nextc()) ==
'|') {
13711 if ((c =
nextc()) ==
'=') {
13791 if ((c =
nextc()) ==
'.') {
13792 if ((c =
nextc()) ==
'.') {
13800 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13806 case '0':
case '1':
case '2':
case '3':
case '4':
13807 case '5':
case '6':
case '7':
case '8':
case '9':
13809 int is_float, seen_point, seen_e, nondigit;
13811 is_float = seen_point = seen_e = nondigit = 0;
13814 if (c ==
'-' || c ==
'+') {
13819 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
13822 if (c ==
'x' || c ==
'X') {
13828 if (nondigit)
break;
13835 }
while ((c =
nextc()) != -1);
13839 if (
toklen() == start) {
13842 else if (nondigit)
goto trailing_uc;
13846 if (c ==
'b' || c ==
'B') {
13849 if (c ==
'0' || c ==
'1') {
13852 if (nondigit)
break;
13856 if (c !=
'0' && c !=
'1')
break;
13859 }
while ((c =
nextc()) != -1);
13863 if (
toklen() == start) {
13866 else if (nondigit)
goto trailing_uc;
13870 if (c ==
'd' || c ==
'D') {
13876 if (nondigit)
break;
13883 }
while ((c =
nextc()) != -1);
13887 if (
toklen() == start) {
13890 else if (nondigit)
goto trailing_uc;
13898 if (c ==
'o' || c ==
'O') {
13901 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13905 if (c >=
'0' && c <=
'7') {
13910 if (nondigit)
break;
13914 if (c < '0' || c >
'9')
break;
13915 if (c >
'7')
goto invalid_octal;
13918 }
while ((c =
nextc()) != -1);
13922 if (nondigit)
goto trailing_uc;
13931 if (c >
'7' && c <=
'9') {
13933 yyerror(
"Invalid octal digit");
13935 else if (c ==
'.' || c ==
'e' || c ==
'E') {
13947 case '0':
case '1':
case '2':
case '3':
case '4':
13948 case '5':
case '6':
case '7':
case '8':
case '9':
13954 if (nondigit)
goto trailing_uc;
13955 if (seen_point || seen_e) {
13960 if (c0 == -1 || !
ISDIGIT(c0)) {
13988 if (c !=
'-' && c !=
'+')
continue;
13994 if (nondigit)
goto decode_num;
14009 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14015 if (
errno == ERANGE) {
14076 if ((c =
nextc()) ==
'=') {
14092 if ((c =
nextc()) ==
'=') {
14112 if ((c =
nextc()) !=
'@') {
14139 if ((c =
nextc()) ==
']') {
14140 if ((c =
nextc()) ==
'=') {
14152 else if (
IS_ARG() && space_seen) {
14187 ripper_dispatch_scan_event(parser,
tSP);
14201 if (c == -1 || !
ISALNUM(c)) {
14208 yyerror(
"unknown type of %string");
14212 if (c == -1 || term == -1) {
14217 if (term ==
'(') term =
')';
14218 else if (term ==
'[') term =
']';
14219 else if (term ==
'{') term =
'}';
14220 else if (term ==
'<') term =
'>';
14270 yyerror(
"unknown type of %string");
14274 if ((c =
nextc()) ==
'=') {
14351 case '1':
case '2':
case '3':
14352 case '4':
case '5':
case '6':
14353 case '7':
case '8':
case '9':
14358 }
while (c != -1 &&
ISDIGIT(c));
14404 ripper_dispatch_scan_event(parser,
k__END__);
14427 switch (
tok()[0]) {
14428 case '@':
case '$':
14432 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14445 switch (
tok()[0]) {
14452 if (
tok()[1] ==
'@')
14498 if (state == EXPR_FNAME) {
14512 if (
CMDARG_P() && state != EXPR_CMDARG)
14514 if (state & (EXPR_BEG | EXPR_ENDARG))
14518 if (state & (EXPR_BEG | EXPR_VALUE))
14521 if (kw->
id[0] != kw->
id[1])
14558 yylex(
void *lval,
void *p)
14572 if (!
NIL_P(parser->delayed)) {
14573 ripper_dispatch_delayed_token(parser, t);
14577 ripper_dispatch_scan_event(parser, t);
14619 if (orig == (
NODE*)1)
return;
14628 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
14635 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
14642 if (tail == 0)
return head;
14644 if (h == 0)
return tail;
14683 tail->nd_end =
tail;
14685 end->nd_next =
tail;
14686 h->nd_end = tail->nd_end;
14696 if (list == 0)
return NEW_LIST(item);
14697 if (list->nd_next) {
14698 last = list->nd_next->nd_end;
14704 list->nd_alen += 1;
14706 list->nd_next->nd_end = last->nd_next;
14716 if (head->nd_next) {
14717 last = head->nd_next->nd_end;
14723 head->nd_alen += tail->nd_alen;
14724 last->nd_next =
tail;
14725 if (tail->nd_next) {
14726 head->nd_next->nd_end = tail->nd_next->nd_end;
14729 head->nd_next->nd_end =
tail;
14738 if (
NIL_P(tail))
return 1;
14759 if (!head)
return tail;
14760 if (!tail)
return head;
14770 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14773 lit = headlast->nd_lit;
14776 lit = head->nd_lit;
14796 tail->nd_lit = head->nd_lit;
14800 else if (
NIL_P(tail->nd_lit)) {
14802 head->nd_alen += tail->nd_alen - 1;
14803 head->nd_next->nd_end->nd_next = tail->nd_next;
14804 head->nd_next->nd_end = tail->nd_next->nd_end;
14807 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14809 lit = headlast->nd_lit;
14812 tail->nd_lit =
Qnil;
14817 tail->nd_head =
NEW_STR(tail->nd_lit);
14963 static const char *
14966 static const char names[][12] = {
14967 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
14968 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
14973 return names[
ffs(state)];
14988 # define assignable_result(x) get_value(lhs)
14989 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
14991 # define assignable_result(x) (x)
14996 yyerror(
"Can't change the value of self");
14999 yyerror(
"Can't assign to nil");
15002 yyerror(
"Can't assign to true");
15005 yyerror(
"Can't assign to false");
15008 yyerror(
"Can't assign to __FILE__");
15011 yyerror(
"Can't assign to __LINE__");
15014 yyerror(
"Can't assign to __ENCODING__");
15048 yyerror(
"dynamic constant assignment");
15057 #undef assignable_result
15058 #undef parser_yyerror
15065 if (name == idUScore)
return 1;
15072 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
15080 yyerror(
"duplicated argument name");
15092 yyerror(
"duplicated argument name");
15150 int scope = (
int)(
id & ID_SCOPE_MASK);
15159 id_type_names[scope],
ID2SYM(
id));
15163 id &= ~ID_SCOPE_MASK;
15192 if (!node2)
return node1;
15195 if (node1->nd_head)
15196 node1->nd_head =
arg_concat(node1->nd_head, node2);
15208 node1->nd_body =
list_concat(node1->nd_body, node2);
15217 if (!node1)
return NEW_LIST(node2);
15222 node1->nd_head =
arg_append(node1->nd_head, node2);
15243 if (!lhs)
return 0;
15255 lhs->nd_value = rhs;
15260 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
15291 if (!cond)
yyerror(
"void value expression");
15296 while (node->nd_next) {
15297 node = node->nd_next;
15299 node = node->nd_head;
15303 node = node->nd_body;
15307 if (!node->nd_body) {
15308 node = node->nd_else;
15311 else if (!node->nd_else) {
15312 node = node->nd_body;
15316 node = node->nd_else;
15322 node = node->nd_2nd;
15336 const char *useless = 0;
15343 switch (node->nd_mid) {
15374 useless =
"a variable";
15377 useless =
"a constant";
15384 useless =
"a literal";
15409 useless =
"defined?";
15417 rb_warnS(
"possibly useless use of %s in void context", useless);
15430 if (!node->nd_next)
return;
15432 node = node->nd_next;
15439 NODE **
n = &node, *n1 = node;
15441 *n = n1 = n1->nd_body;
15449 NODE *node = *body;
15455 #define subnodes(n1, n2) \
15456 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
15457 (!node->n2) ? (body = &node->n1, 1) : \
15458 (reduce_nodes(&node->n1), body = &node->n2, 1))
15468 *body = node = node->nd_stts;
15472 *body = node = node->nd_body;
15476 body = &node->nd_end->nd_head;
15482 body = &node->nd_body;
15491 if (node->nd_else) {
15492 body = &node->nd_resq;
15510 if (!node)
return 1;
15513 if (!(node = node->nd_head))
break;
15517 }
while ((node = node->nd_next) != 0);
15536 yyerror(
"multiple assignment in conditional");
15550 if (!node->nd_value)
return 1;
15553 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15575 for (node = *rootnode; node; node = next) {
15579 next = node->nd_next;
15580 head = node->nd_head;
15583 switch (type =
nd_type(head)) {
15586 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
15591 head->nd_lit =
val;
15606 if (node == 0)
return 0;
15614 return cond0(parser, node);
15620 if (!node)
return 1;
15641 if (node == 0)
return 0;
15648 rb_warn0(
"string literal in condition");
15658 node->nd_1st =
cond0(parser, node->nd_1st);
15659 node->nd_2nd =
cond0(parser, node->nd_2nd);
15664 node->nd_beg =
range_op(parser, node->nd_beg);
15665 node->nd_end =
range_op(parser, node->nd_end);
15698 if (node == 0)
return 0;
15699 return cond0(parser, node);
15707 NODE *node = left, *second;
15708 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
15711 node->nd_2nd =
NEW_NODE(type, second, right, 0);
15714 return NEW_NODE(type, left, right, 0);
15731 if (node->nd_next == 0) {
15732 node = node->nd_head;
15753 switch (
TYPE(node->nd_lit)) {
15782 node2->nd_head = node1;
15796 args->
pre_init = m ? m->nd_next : 0;
15850 lit = node->nd_lit;
15869 ID vid = lhs->nd_vid;
15871 lhs->nd_value = rhs;
15874 asgn->nd_aid = vid;
15877 else if (op ==
tANDOP) {
15878 lhs->nd_value = rhs;
15900 else if (op ==
tANDOP) {
15916 else if (op ==
tANDOP) {
15932 return dispatch3(opassign, lhs, op, rhs);
15938 VALUE recv = dispatch3(field, lhs, type, attr);
15939 return dispatch3(opassign, recv, op, rhs);
15949 if (!local->
used)
return;
15953 if (cnt != local->
vars->
pos) {
15954 rb_bug(
"local->used->pos != local->vars->pos");
15956 for (i = 0; i <
cnt; ++
i) {
15957 if (!v[i] || (u[i] &
LVAR_USED))
continue;
15972 local->
used = !(inherit_dvars &&
16001 int cnt = cnt_args + cnt_vars;
16005 if (cnt <= 0)
return 0;
16009 for (i = 0, j = cnt_args+1; i < cnt_vars; ++
i) {
16015 if (--j < cnt)
REALLOC_N(buf,
ID, (cnt = j) + 1);
16043 vars =
lvtbl->vars;
16044 args =
lvtbl->args;
16045 used =
lvtbl->used;
16050 if (used) used = used->
prev;
16066 static const struct vtable *
16074 return lvtbl->args;
16082 if ((tmp =
lvtbl->used) != 0) {
16098 while (
lvtbl->args != lvargs) {
16100 if (!
lvtbl->args) {
16121 args =
lvtbl->args;
16122 vars =
lvtbl->vars;
16123 used =
lvtbl->used;
16136 if (used) used = used->
prev;
16189 "regexp encoding option '%c' differs from source encoding '%s'",
16218 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
16224 const char *
s = (
const char *)name;
16241 rb_warningS(
"named capture conflicts a local variable - %s",
16321 NODE *scope = node;
16324 if (!node)
return node;
16328 node = node->nd_body;
16332 node = node->nd_body;
16339 prelude->nd_body = node;
16340 scope->nd_body = prelude;
16343 scope->nd_body = node;
16353 NODE *scope = node;
16356 if (!node)
return node;
16360 node = node->nd_body;
16364 node = node->nd_body;
16380 prelude->nd_body = node;
16381 scope->nd_body = prelude;
16384 scope->nd_body = node;
16390 static const struct {
16415 #define op_tbl_count numberof(op_tbl)
16417 #ifndef ENABLE_SELECTOR_NAMESPACE
16418 #define ENABLE_SELECTOR_NAMESPACE 0
16425 #if ENABLE_SELECTOR_NAMESPACE
16437 #if ENABLE_SELECTOR_NAMESPACE
16444 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
16446 if (key1->id == key2->id && key1->klass == key2->klass) {
16453 ivar2_hash(
struct ivar2_key *
key)
16455 return (key->id << 8) ^ (key->klass >> 2);
16469 #if ENABLE_SELECTOR_NAMESPACE
16477 (
void)lex_state_name(-1);
16506 if (m >= e)
return 0;
16510 else if (*m ==
'-') {
16524 return m == e ? mb + 1 : 0;
16539 #define IDSET_ATTRSET_FOR_SYNTAX ((1U<<ID_LOCAL)|(1U<<ID_CONST))
16540 #define IDSET_ATTRSET_FOR_INTERN (~(~0U<<(1<<ID_SCOPE_SHIFT)) & ~(1U<<ID_ATTRSET))
16545 const char *
m =
name;
16546 const char *
e = m +
len;
16549 if (!m || len <= 0)
return -1;
16569 case '<': ++
m;
break;
16570 case '=':
if (*++m ==
'>') ++
m;
break;
16577 case '>':
case '=': ++
m;
break;
16583 case '~': ++
m;
break;
16584 case '=':
if (*++m ==
'=') ++
m;
break;
16585 default:
return -1;
16590 if (*++m ==
'*') ++
m;
16593 case '+':
case '-':
16594 if (*++m ==
'@') ++
m;
16597 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16602 if (*++m !=
']')
return -1;
16603 if (*++m ==
'=') ++
m;
16607 if (len == 1)
return ID_JUNK;
16609 case '=':
case '~': ++
m;
break;
16610 default:
return -1;
16622 case '!':
case '?':
16626 if (m + 1 < e || *m !=
'=')
break;
16629 if (!(allowed_atttset & (1
U << type)))
return -1;
16636 return m == e ? type : -1;
16700 fake_str.
as.
heap.ptr = (
char *)name;
16702 str = (
VALUE)&fake_str;
16716 const char *
name, *
m, *
e;
16738 if (len < 2)
goto junk;
16747 if (len < 3)
goto junk;
16752 if (len < 2)
goto junk;
16768 if (*
op_tbl[i].name == *m &&
16769 strcmp(
op_tbl[i].name, m) == 0) {
16777 if (name[last] ==
'=') {
16779 if (last > 1 && name[last-1] ==
'=')
16789 else if (
id == 0) {
16861 name[0] = (char)
id;
16884 if (
RBASIC(str)->klass == 0)
16890 ID id_stem = (
id & ~ID_SCOPE_MASK);
16907 if (
RBASIC(str)->klass == 0)
16920 if (!str)
return 0;
17014 VALUE name = *namep;
17065 fake_str.
as.
heap.ptr = (
char *)ptr;
17075 fake_str.
as.
heap.len = len - 1;
17174 parser->delayed =
Qnil;
17176 parser->result =
Qnil;
17177 parser->parsing_thread =
Qnil;
17178 parser->toplevel_p =
TRUE;
17187 #define parser_mark ripper_parser_mark
17188 #define parser_free ripper_parser_free
17228 prev = local->
prev;
17239 size_t size =
sizeof(*p);
17241 if (!ptr)
return 0;
17244 size +=
sizeof(*local);
17264 #undef rb_reserved_word
17348 yydebug =
RTEST(flag);
17353 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
17354 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
17355 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
17356 (n)->u3.cnt = (c), (p))
17384 if (ptr && (n = parser->
heap) !=
NULL) {
17386 if (n->
u1.
node == ptr) {
17403 while ((
n = *prev) !=
NULL) {
17404 if (
n->u1.node == ptr) {
17405 *prev =
n->u2.node;
17409 prev = &
n->u2.node;
17417 #ifdef RIPPER_DEBUG
17418 extern int rb_is_pointer_to_heap(
VALUE);
17424 if (x ==
Qfalse)
return x;
17425 if (x ==
Qtrue)
return x;
17426 if (x ==
Qnil)
return x;
17431 if (!rb_is_pointer_to_heap(x))
17444 return ((
NODE *)x)->nd_rval;
17453 #define validate(x) ((x) = get_value(x))
17465 return rb_funcall(parser->value, mid, 1, a);
17473 return rb_funcall(parser->value, mid, 2, a, b);
17482 return rb_funcall(parser->value, mid, 3, a, b, c);
17492 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17503 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17516 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
17519 static const struct kw_assoc {
17522 } keyword_to_name[] = {
17575 keyword_id_to_str(
ID id)
17577 const struct kw_assoc *
a;
17579 for (a = keyword_to_name; a->id; a++) {
17586 #undef ripper_id2sym
17588 ripper_id2sym(
ID id)
17598 if ((name = keyword_id_to_str(
id))) {
17611 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
17629 ripper_get_value(
VALUE v)
17636 return nd->nd_rval;
17645 va_start(args, fmt);
17652 ripper_warn0(
struct parser_params *parser,
const char *fmt)
17658 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
17665 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
17672 ripper_warning0(
struct parser_params *parser,
const char *fmt)
17678 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
17703 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
17722 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
17732 if (
NIL_P(fname)) {
17747 struct ripper_args {
17754 ripper_parse0(
VALUE parser_v)
17760 ripper_yyparse((
void*)parser);
17761 return parser->result;
17765 ripper_ensure(
VALUE parser_v)
17770 parser->parsing_thread =
Qnil;
17781 ripper_parse(
VALUE self)
17786 if (!ripper_initialized_p(parser)) {
17789 if (!
NIL_P(parser->parsing_thread)) {
17796 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17798 return parser->result;
17809 ripper_column(
VALUE self)
17815 if (!ripper_initialized_p(parser)) {
17818 if (
NIL_P(parser->parsing_thread))
return Qnil;
17830 ripper_filename(
VALUE self)
17835 if (!ripper_initialized_p(parser)) {
17849 ripper_lineno(
VALUE self)
17854 if (!ripper_initialized_p(parser)) {
17857 if (
NIL_P(parser->parsing_thread))
return Qnil;
17861 #ifdef RIPPER_DEBUG
17897 InitVM_ripper(
void)
17913 #ifdef RIPPER_DEBUG
#define rb_enc_islower(c, enc)
char * parser_ruby_sourcefile
#define RB_TYPE_P(obj, type)
#define NEW_ARGSCAT(a, b)
static const char id_type_names[][9]
VALUE rb_const_get_at(VALUE, ID)
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
struct local_vars * parser_lvtbl
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
static ID internal_id_gen(struct parser_params *)
int rb_is_attrset_id(ID id)
int rb_enc_codelen(int c, rb_encoding *enc)
#define shadowing_lvar(name)
static void arg_ambiguous_gen(struct parser_params *parser)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define RE_OPTION_ENCODING_IDX(o)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
st_table * st_init_table_with_size(const struct st_hash_type *, st_index_t)
#define NEW_IASGN(v, val)
VALUE rb_get_coverages(void)
void rb_bug(const char *fmt,...)
#define NEW_DASGN_CURR(v, val)
#define mixed_escape(beg, enc1, enc2)
static const yytype_uint8 yyr2[]
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
void rb_enc_copy(VALUE obj1, VALUE obj2)
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)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
yytype_int16 yyssa[YYINITDEPTH]
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
static NODE * negate_lit(NODE *)
const char * rb_obj_classname(VALUE)
#define dispatch_heredoc_end()
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
int parser_ruby__end__seen
static void local_push_gen(struct parser_params *, int)
static int vtable_size(const struct vtable *tbl)
#define formal_argument(id)
static void fixpos(NODE *, NODE *)
static NODE * arg_concat_gen(struct parser_params *, 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 NODE * evstr2dstr_gen(struct parser_params *, NODE *)
VALUE rb_str_buf_append(VALUE, VALUE)
static int nodeline(NODE *node)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
static NODE * arg_blk_pass(NODE *, NODE *)
#define IS_LABEL_POSSIBLE()
#define is_asgn_or_id(id)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
int parser_compile_for_eval
int parser_token_info_enabled
#define parser_precise_mbclen()
static ID formal_argument_gen(struct parser_params *, ID)
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
#define NEW_OP_CDECL(v, op, val)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
static ID register_symid(ID, const char *, long, rb_encoding *)
static void FILE * yyoutput
SSL_METHOD *(* func)(void)
#define rb_usascii_str_new2
#define RE_OPTION_ENCODING(e)
void rb_define_global_const(const char *, VALUE)
#define set_yylval_str(x)
void rb_gc_force_recycle(VALUE)
static const yytype_uint16 yyr1[]
#define set_yylval_literal(x)
#define yytable_value_is_error(yytable_value)
#define IDSET_ATTRSET_FOR_SYNTAX
#define ADD2HEAP(n, c, p)
VALUE rb_parser_end_seen_p(VALUE vparser)
#define literal_concat(h, t)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
struct token_info token_info
stack_type parser_cmdarg_stack
static int lvar_defined_gen(struct parser_params *, ID)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
#define token_info_push(token)
static ID * local_tbl_gen(struct parser_params *)
#define rb_enc_isalnum(c, enc)
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 rb_enc_prev_char(s, p, e, enc)
VALUE rb_ary_push(VALUE ary, VALUE item)
unsigned short int yytype_uint16
static int parser_yylex(struct parser_params *parser)
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
#define new_args_tail(k, kr, b)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
#define NEW_MATCH2(n1, n2)
VALUE op_sym[tLAST_OP_ID]
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
static int parser_regx_options(struct parser_params *)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
#define warn_balanced(op, syn)
static VALUE coverage(VALUE fname, int n)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
static NODE * newline_node(NODE *)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
static void ripper_init_eventids1_table(VALUE self)
void rb_raise(VALUE exc, const char *fmt,...)
static const yytype_uint16 yyprhs[]
#define block_dup_check(n1, n2)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
#define attrset(node, id)
primary_value operation2 command_args prec tLOWEST
#define new_const_op_assign(lhs, op, rhs)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
static size_t parser_memsize(const void *ptr)
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
static struct @118 op_tbl[]
static NODE * gettable_gen(struct parser_params *, ID)
static struct symbols global_symbols
static NODE * cond0(struct parser_params *, NODE *)
#define NEW_CVASGN(v, val)
#define reg_compile(str, options)
static int local_var_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
#define NEW_OP_ASGN_OR(i, val)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
#define ENCODING_IS_ASCII8BIT(obj)
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 int dvar_defined_gen(struct parser_params *, ID, int)
static NODE * new_yield_gen(struct parser_params *, NODE *)
#define RE_OPTION_ENCODING_NONE(o)
static char * parser_tokspace(struct parser_params *parser, int n)
#define rb_enc_isdigit(c, enc)
#define tokadd_string(f, t, p, n, e)
#define ENC_CODERANGE_BROKEN
VALUE rb_sym_all_symbols(void)
#define is_identchar(p, e, enc)
VALUE rb_str_append(VALUE, VALUE)
VALUE rb_str_new_frozen(VALUE)
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
VALUE parser_ruby_sourcefile_string
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
#define NEW_CLASS(n, b, s)
static NODE * remove_begin(NODE *)
static int is_global_name_punct(const char c)
static struct st_hash_type symhash
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define NEW_PRELUDE(p, b)
#define ENCODING_GET(obj)
static const yytype_int16 yytable[]
NODE * parser_deferred_nodes
void rb_name_error(ID id, const char *fmt,...)
static int dyna_in_block_gen(struct parser_params *)
static const rb_data_type_t parser_data_type
#define nd_set_type(n, t)
#define logop(type, node1, node2)
static rb_encoding * must_be_ascii_compatible(VALUE s)
#define MEMZERO(p, type, n)
static void dyna_pop_1(struct parser_params *parser)
void rb_exc_raise(VALUE mesg)
#define NEW_UNLESS(c, t, e)
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
VALUE rb_usascii_str_new(const char *, long)
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
int rb_is_method_name(VALUE name)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_OP_ASGN_AND(i, val)
#define parser_warning(node, mesg)
static void parser_free(void *ptr)
static YYSIZE_T const char * yystr
enum lex_state_e parser_lex_state
VALUE parser_lex_lastline
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
static void parser_initialize(struct parser_params *parser)
#define scan_hex(s, l, e)
static struct vtable * dyna_push_gen(struct parser_params *)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define rb_intern_str(string)
#define lex_goto_eol(parser)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
#define TypedData_Get_Struct(obj, type, data_type, sval)
void rb_compile_error_append(const char *fmt,...)
void rb_compile_error_with_enc(const char *file, int line, void *enc, const char *fmt,...)
#define StringValuePtr(v)
#define match_op(node1, node2)
static enum node_type nodetype(NODE *node)
#define NEW_STRTERM(func, term, paren)
const rb_data_type_t * parent
#define NEW_RESCUE(b, res, e)
VALUE rb_parser_encoding(VALUE vparser)
#define reg_named_capture_assign(regexp, match)
struct parser_params * parser
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ENSURE(b, en)
RUBY_EXTERN VALUE rb_mKernel
static int e_option_supplied(struct parser_params *parser)
NODE * rb_compile_string(const char *f, VALUE s, int line)
static struct vtable * vtable_alloc(struct vtable *prev)
static int rb_str_symname_type(VALUE name, unsigned int allowed_atttset)
int rb_ascii8bit_encindex(void)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
static const yytype_uint16 yyrline[]
void rb_define_const(VALUE, const char *, VALUE)
#define NEW_WHEN(c, t, e)
top_stmt escape_Qundef($1)
static char *char * yydest
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
static void no_blockarg(struct parser_params *parser, NODE *node)
static struct magic_comment magic_comments[]
#define MBCLEN_CHARFOUND_P(ret)
static NODE * splat_array(NODE *)
static void parser_mark(void *ptr)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
static void parser_tokadd(struct parser_params *parser, int c)
#define nd_set_line(n, l)
static void ripper_init_eventids1(void)
static int sym_check_asciionly(VALUE str)
static ID intern_str(VALUE str)
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define NEW_ARGS_AUX(r, b)
#define TypedData_Wrap_Struct(klass, data_type, sval)
static void void_expr_gen(struct parser_params *, NODE *)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
#define RUBY_FUNC_EXPORTED
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 VALUE debug_lines(VALUE fname)
#define IS_AFTER_OPERATOR()
const char * parser_lex_pend
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
#define ALLOCA_N(type, n)
#define IDSET_ATTRSET_FOR_INTERN
#define ENC_CODERANGE_UNKNOWN
void rb_gc_mark_symbols(void)
#define set_yylval_num(x)
#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)
#define parser_encoding_name()
token_info * parser_token_info
#define new_op_assign(lhs, op, rhs)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_str_buf_cat(VALUE, const char *, long)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
static const yytype_int16 yycheck[]
static int literal_node(NODE *node)
static int dvar_curr_gen(struct parser_params *, ID)
#define NEW_LASGN(v, val)
#define flush_string_content(enc)
VALUE rb_obj_as_string(VALUE)
#define NEW_OPT_ARG(i, v)
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
int rb_dvar_defined(ID id)
VALUE rb_str_resize(VALUE, long)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
static int parser_yyerror(struct parser_params *, const char *)
#define RUBY_DTRACE_PARSE_END_ENABLED()
static const yytype_int16 yypgoto[]
int rb_symname_p(const char *name)
static int parser_tokadd_mbchar(struct parser_params *parser, int c)
VALUE rb_thread_current(void)
#define token_info_pop(token)
VALUE rb_range_new(VALUE, VALUE, int)
VALUE rb_sprintf(const char *format,...)
#define rb_enc_mbcput(c, buf, enc)
#define rb_node_newnode(type, a1, a2, a3)
#define ruby_sourcefile_string
#define mixed_error(enc1, enc2)
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)
#define reg_fragment_setenc(str, options)
static int value_expr_gen(struct parser_params *, NODE *)
static const yytype_int16 yyrhs[]
static void yytype_int16 * yybottom
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
static const char * magic_comment_marker(const char *str, long len)
int rb_is_local_id(ID id)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static const yytype_uint8 yytranslate[]
static void Init_id(void)
static char * parser_newtok(struct parser_params *parser)
static void fixup_nodes(NODE **)
rb_encoding * rb_usascii_encoding(void)
unsigned char yytype_uint8
#define list_concat(h, t)
#define rb_reserved_word(str, len)
#define heredoc_restore(n)
#define NEW_UNTIL(c, b, n)
#define NEW_MATCH3(r, n2)
VALUE rb_str_buf_new(long)
stack_type parser_cond_stack
#define IS_lex_state_for(x, ls)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void ripper_init_eventids2(void)
int rb_const_defined_at(VALUE, ID)
#define heredoc_identifier()
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
int rb_is_global_id(ID id)
static int arg_var_gen(struct parser_params *, ID)
#define call_bin_op(recv, id, arg1)
#define rb_warn4S(file, line, fmt, a)
VALUE rb_attr_get(VALUE, ID)
#define rb_enc_ispunct(c, enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
static VALUE yycompile0(VALUE arg)
#define NEW_RESBODY(a, ex, n)
#define assignable_result(x)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
VALUE rb_reg_check_preprocess(VALUE)
expr ripper_intern("and")
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
RUBY_EXTERN VALUE rb_cString
#define dvar_defined_get(id)
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
static int vtable_included(const struct vtable *tbl, ID id)
VALUE rb_vsprintf(const char *, va_list)
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
#define MEMCPY(p1, p2, type, n)
#define parser_is_identchar()
#define set_yylval_node(x)
static void const char * yymsg
static void vtable_free(struct vtable *tbl)
#define NEW_GASGN(v, val)
yydestruct("Cleanup: discarding lookahead", yytoken,&yylval, parser)
#define NEW_ARGSPUSH(a, b)
int rb_is_const_name(VALUE name)
int rb_is_local_name(VALUE name)
static int rb_enc_symname_type(const char *name, long len, rb_encoding *enc, unsigned int allowed_atttset)
#define reg_fragment_check(str, options)
yy_symbol_value_print(yyoutput, yytype, yyvaluep, parser)
VALUE rb_str_cat(VALUE, const char *, long)
#define ENC_CODERANGE_7BIT
rb_encoding * rb_enc_get(VALUE obj)
#define NEW_WHILE(c, b, n)
static void reduce_nodes_gen(struct parser_params *, NODE **)
#define NEW_DEFS(r, i, a, d)
void rb_gc_mark_parser(void)
#define YYSTACK_ALLOC_MAXIMUM
#define set_yylval_name(x)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
static void parser_pushback(struct parser_params *parser, int c)
void rb_parser_free(struct parser_params *parser, void *ptr)
static const yytype_uint16 yydefact[]
static int parser_here_document(struct parser_params *, NODE *)
#define parser_warn(node, mesg)
static NODE * ret_args_gen(struct parser_params *, NODE *)
void rb_set_errinfo(VALUE err)
#define rb_enc_isspace(c, enc)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
NODE * parser_lex_strterm
top_stmts dispatch0(stmts_new)
static void local_pop_gen(struct parser_params *)
#define NEW_ATTRASGN(r, m, a)
static int simple_re_meta(int c)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
#define aryset(node1, node2)
#define list_append(l, i)
st_index_t rb_str_hash(VALUE)
#define NEW_OP_ASGN2(r, i, o, val)
#define tokaddmbc(c, enc)
#define STR_NEW3(p, n, e, func)
static const yytype_int16 yypact[]
void rb_compile_warning(const char *file, int line, const char *fmt,...)
RUBY_EXTERN VALUE rb_cObject
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define yypact_value_is_default(yystate)
static int symbols_i(VALUE sym, ID value, VALUE ary)
static void parser_prepare(struct parser_params *parser)
static struct parser_params * parser_new(void)
#define new_args(f, o, r, p, t)
static void rb_backref_error_gen(struct parser_params *, NODE *)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
static void void_stmts_gen(struct parser_params *, NODE *)
struct rb_encoding_entry * list
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
static const yytype_int16 yydefgoto[]
#define STRNCASECMP(s1, s2, n)
VALUE rb_make_backtrace(void)
static NODE * parser_compile_string(volatile VALUE vparser, VALUE fname, VALUE s, int line)
static int yylex(void *, void *)
#define node_assign(node1, node2)
#define NEW_OP_ASGN1(p, id, a)
static int parser_parse_string(struct parser_params *, NODE *)
VALUE rb_ary_new2(long capa)
#define ruby_eval_tree_begin
#define is_instance_id(id)
VALUE rb_str_new(const char *, long)
const char * parser_lex_pbeg
static NODE * cond_gen(struct parser_params *, NODE *)
int rb_is_class_id(ID id)
VALUE rb_parser_new(void)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
struct parser_params * parser
#define NEW_CDECL(v, val, path)
static int is_private_local_id(ID name)
static int comment_at_top(struct parser_params *parser)
const char * parser_lex_p
static void dispose_string(VALUE str)
static int parser_nextc(struct parser_params *parser)
#define rb_enc_asciicompat(enc)
#define read_escape(flags, e)
static const char *const yytname[]
int rb_is_instance_name(VALUE name)
int parser_ruby_sourceline
const char * rb_id2name(ID id)
#define call_uni_op(recv, id)
static ID register_symid_str(ID, VALUE)
#define rb_enc_isupper(c, enc)
static ID shadowing_lvar_gen(struct parser_params *, ID)
static int token_info_get_column(struct parser_params *parser, const char *token)
static NODE * yycompile(struct parser_params *parser, VALUE fname, int line)
#define YY_STACK_PRINT(Bottom, Top)
#define rb_enc_isascii(c, enc)
int rb_str_hash_cmp(VALUE, VALUE)
static void vtable_add(struct vtable *tbl, ID id)
NODE * rb_parser_compile_string_path(volatile VALUE vparser, VALUE f, VALUE s, int line)
static const yytype_uint16 yystos[]
static int is_static_content(NODE *node)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_is_junk_name(VALUE name)
int rb_enc_find_index(const char *name)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
static int parser_heredoc_identifier(struct parser_params *parser)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e-0x20+31)/32]
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
#define RSTRING_GETMEM(str, ptrvar, lenvar)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define NEW_DEFN(i, a, d, p)
static void new_bv_gen(struct parser_params *, ID)
#define assignable(id, node)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
st_table * st_init_numtable_with_size(st_index_t)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
static NODE * range_op(struct parser_params *parser, NODE *node)
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
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)
#define block_append(h, t)
VALUE rb_parser_get_yydebug(VALUE self)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define rb_enc_isalpha(c, enc)
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
VALUE rb_check_string_type(VALUE)
#define REALLOC_N(var, type, n)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
static struct kwtable * reserved_word(const char *, unsigned int)
int rb_enc_str_coderange(VALUE)
int rb_local_defined(ID id)
#define IS_LABEL_SUFFIX(n)
NODE * parser_eval_tree_begin
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
static VALUE lex_getline(struct parser_params *parser)
NODE * rb_parser_compile_file_path(volatile VALUE vparser, VALUE fname, VALUE file, int start)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
#define RTYPEDDATA_TYPE(v)
#define whole_match_p(e, l, i)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
static int parser_peek_variable_name(struct parser_params *parser)
#define is_attrset_id(id)
static void YYSTYPE * yyvsp
static int local_id_gen(struct parser_params *, ID)
#define SPECIAL_PUNCT(idx)
#define rb_backref_error(n)
static void ripper_init_eventids2_table(VALUE self)
static NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
#define rb_warningS(fmt, a)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
rb_encoding * rb_enc_from_index(int index)
#define NEW_BLOCK_PASS(b)
int rb_is_global_name(VALUE name)