w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

y.tab.c
Go to the documentation of this file.
1 /* A Bison parser, made by GNU Bison 3.5.1. */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5  Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
6  Inc.
7 
8  This program is free software: you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation, either version 3 of the License, or
11  (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 
21 /* As a special exception, you may create a larger work that contains
22  part or all of the Bison parser skeleton and distribute that work
23  under terms of your choice, so long as that work isn't itself a
24  parser generator using the skeleton or a modified version thereof
25  as a parser skeleton. Alternatively, if you modify or redistribute
26  the parser skeleton itself, you may (at your option) remove this
27  special exception, which will cause the skeleton and the resulting
28  Bison output files to be licensed under the GNU General Public
29  License without this special exception.
30 
31  This special exception was added by the Free Software Foundation in
32  version 2.2 of Bison. */
33 
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35  simplifying the original so-called "semantic" parser. */
36 
37 /* All symbols defined below should begin with yy or YY, to avoid
38  infringing on user name space. This should be done even for local
39  variables, as they might otherwise be expanded by user macros.
40  There are some unavoidable exceptions within include files to
41  define necessary library symbols; they are noted "INFRINGES ON
42  USER NAME SPACE" below. */
43 
44 /* Undocumented macros, especially those whose name start with YY_,
45  are private implementation details. Do not rely on them. */
46 
47 /* Identify Bison output. */
48 #define YYBISON 1
49 
50 /* Bison version. */
51 #define YYBISON_VERSION "3.5.1"
52 
53 /* Skeleton name. */
54 #define YYSKELETON_NAME "yacc.c"
55 
56 /* Pure parsers. */
57 #define YYPURE 1
58 
59 /* Push parsers. */
60 #define YYPUSH 0
61 
62 /* Pull parsers. */
63 #define YYPULL 1
64 
65 
66 
67 
68 /* First part of user prologue. */
69 #line 7 "mrbgems/mruby-compiler/core/parse.y"
70 
71 #undef PARSER_DEBUG
72 #ifdef PARSER_DEBUG
73 # define YYDEBUG 1
74 #endif
75 #define YYSTACK_USE_ALLOCA 1
76 
77 #include <ctype.h>
78 #include <errno.h>
79 #include <stdlib.h>
80 #include <string.h>
81 #include <mruby.h>
82 #include <mruby/compile.h>
83 #include <mruby/proc.h>
84 #include <mruby/error.h>
85 #include <mruby/throw.h>
86 #include <mruby/string.h>
87 #include <mruby/dump.h>
88 #include <mruby/presym.h>
89 #include "node.h"
90 
91 #define YYLEX_PARAM p
92 
94 typedef struct mrb_parser_state parser_state;
96 
97 static int yyparse(parser_state *p);
98 static int yylex(void *lval, parser_state *p);
99 static void yyerror(parser_state *p, const char *s);
100 static void yywarn(parser_state *p, const char *s);
101 static void yywarning(parser_state *p, const char *s);
102 static void backref_error(parser_state *p, node *n);
103 static void void_expr_error(parser_state *p, node *n);
104 static void tokadd(parser_state *p, int32_t c);
105 
106 #define identchar(c) (ISALNUM(c) || (c) == '_' || !ISASCII(c))
107 
108 typedef unsigned int stack_type;
109 
110 #define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
111 #define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
112 #define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
113 #define BITSTACK_SET_P(stack) ((stack)&1)
114 
115 #define COND_PUSH(n) BITSTACK_PUSH(p->cond_stack, (n))
116 #define COND_POP() BITSTACK_POP(p->cond_stack)
117 #define COND_LEXPOP() BITSTACK_LEXPOP(p->cond_stack)
118 #define COND_P() BITSTACK_SET_P(p->cond_stack)
119 
120 #define CMDARG_PUSH(n) BITSTACK_PUSH(p->cmdarg_stack, (n))
121 #define CMDARG_POP() BITSTACK_POP(p->cmdarg_stack)
122 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(p->cmdarg_stack)
123 #define CMDARG_P() BITSTACK_SET_P(p->cmdarg_stack)
124 
125 #define SET_LINENO(c,n) ((c)->lineno = (n))
126 #define NODE_LINENO(c,n) do {\
127  if (n) {\
128  (c)->filename_index = (n)->filename_index;\
129  (c)->lineno = (n)->lineno;\
130  }\
131 } while (0)
132 
133 #define sym(x) ((mrb_sym)(intptr_t)(x))
134 #define nsym(x) ((node*)(intptr_t)(x))
135 #define nint(x) ((node*)(intptr_t)(x))
136 #define intn(x) ((int)(intptr_t)(x))
137 #define typen(x) ((enum node_type)(intptr_t)(x))
138 
139 #define NUM_SUFFIX_R (1<<0)
140 #define NUM_SUFFIX_I (1<<1)
141 
142 static inline mrb_sym
144 {
145  return mrb_intern_cstr(p->mrb, s);
146 }
147 #define intern_cstr(s) intern_cstr_gen(p,(s))
148 
149 static inline mrb_sym
150 intern_gen(parser_state *p, const char *s, size_t len)
151 {
152  return mrb_intern(p->mrb, s, len);
153 }
154 #define intern(s,len) intern_gen(p,(s),(len))
155 
156 #define intern_op(op) MRB_OPSYM_2(p->mrb, op)
157 
158 static void
160 {
161  cons->cdr = p->cells;
162  p->cells = cons;
163 }
164 #define cons_free(c) cons_free_gen(p, (c))
165 
166 static void*
168 {
169  void *m = mrb_pool_alloc(p->pool, size);
170 
171  if (!m) {
172  MRB_THROW(p->jmp);
173  }
174  return m;
175 }
176 
177 static node*
179 {
180  node *c;
181 
182  if (p->cells) {
183  c = p->cells;
184  p->cells = p->cells->cdr;
185  }
186  else {
187  c = (node *)parser_palloc(p, sizeof(mrb_ast_node));
188  }
189 
190  c->car = car;
191  c->cdr = cdr;
192  c->lineno = p->lineno;
193  c->filename_index = p->current_filename_index;
194  /* beginning of next partial file; need to point the previous file */
195  if (p->lineno == 0 && p->current_filename_index > 0) {
196  c->filename_index-- ;
197  }
198  return c;
199 }
200 #define cons(a,b) cons_gen(p,(a),(b))
201 
202 static node*
204 {
205  return cons(a, 0);
206 }
207 #define list1(a) list1_gen(p, (a))
208 
209 static node*
211 {
212  return cons(a, cons(b,0));
213 }
214 #define list2(a,b) list2_gen(p, (a),(b))
215 
216 static node*
218 {
219  return cons(a, cons(b, cons(c,0)));
220 }
221 #define list3(a,b,c) list3_gen(p, (a),(b),(c))
222 
223 static node*
225 {
226  return cons(a, cons(b, cons(c, cons(d, 0))));
227 }
228 #define list4(a,b,c,d) list4_gen(p, (a),(b),(c),(d))
229 
230 static node*
232 {
233  return cons(a, cons(b, cons(c, cons(d, cons(e, 0)))));
234 }
235 #define list5(a,b,c,d,e) list5_gen(p, (a),(b),(c),(d),(e))
236 
237 static node*
239 {
240  return cons(a, cons(b, cons(c, cons(d, cons(e, cons(f, 0))))));
241 }
242 #define list6(a,b,c,d,e,f) list6_gen(p, (a),(b),(c),(d),(e),(f))
243 
244 static node*
246 {
247  node *c = a;
248 
249  if (!a) return b;
250  if (!b) return a;
251  while (c->cdr) {
252  c = c->cdr;
253  }
254  c->cdr = b;
255  return a;
256 }
257 #define append(a,b) append_gen(p,(a),(b))
258 #define push(a,b) append_gen(p,(a),list1(b))
259 
260 static char*
261 parser_strndup(parser_state *p, const char *s, size_t len)
262 {
263  char *b = (char *)parser_palloc(p, len+1);
264 
265  memcpy(b, s, len);
266  b[len] = '\0';
267  return b;
268 }
269 #undef strndup
270 #define strndup(s,len) parser_strndup(p, s, len)
271 
272 static char*
274 {
275  return parser_strndup(p, s, strlen(s));
276 }
277 #undef strdup
278 #define strdup(s) parser_strdup(p, s)
279 
280 static void
282 {
283  char *p = s;
284  char *t = s;
285 
286  while (i > 0) {
287  *p++ = (i % 10)+'0';
288  i /= 10;
289  }
290  if (p == s) *p++ = '0';
291  *p = 0;
292  p--; /* point the last char */
293  while (t < p) {
294  char c = *t;
295  *t++ = *p;
296  *p-- = c;
297  }
298 }
299 
300 /* xxx ----------------------------- */
301 
302 static node*
304 {
305  node *prev = p->locals;
306 
307  p->locals = cons(0, 0);
308  return prev;
309 }
310 
311 static void
313 {
314  p->locals = prev;
315 }
316 
317 static void
319 {
320  p->locals = cons(0, p->locals);
321 }
322 
323 static void
325 {
326  if (p->locals) {
327  p->locals = p->locals->cdr;
328  }
329 }
330 
331 static mrb_bool
333 {
334  const struct RProc *u;
335  node *l = p->locals;
336 
337  while (l) {
338  node *n = l->car;
339  while (n) {
340  if (sym(n->car) == sym) return TRUE;
341  n = n->cdr;
342  }
343  l = l->cdr;
344  }
345 
346  u = p->upper;
347  while (u && !MRB_PROC_CFUNC_P(u)) {
348  const struct mrb_irep *ir = u->body.irep;
349  const mrb_sym *v = ir->lv;
350  int i;
351 
352  if (!v) break;
353  for (i=0; i+1 < ir->nlocals; i++) {
354  if (v[i] == sym) return TRUE;
355  }
356  if (MRB_PROC_SCOPE_P(u)) break;
357  u = u->upper;
358  }
359  return FALSE;
360 }
361 
362 static void
364 {
365  if (p->locals) {
366  p->locals->car = push(p->locals->car, nsym(sym));
367  }
368 }
369 
370 static void
372 {
373  if (!local_var_p(p, sym)) {
374  local_add_f(p, sym);
375  }
376 }
377 
378 static void
380 {
381  /* allocate register for block */
382  local_add_f(p, blk ? blk : intern_op(and));
383 }
384 
385 static void
387 {
388  /* allocate register for keywords hash */
389  local_add_f(p, kwd ? kwd : intern_op(pow));
390 }
391 
392 static node*
394 {
395  return p->locals ? p->locals->car : NULL;
396 }
397 
398 static void
400 {
401  p->nvars = cons(nint(0), p->nvars);
402 }
403 
404 static void
406 {
407  p->nvars = cons(nint(-2), p->nvars);
408 }
409 
410 static void
412 {
413  p->nvars = p->nvars->cdr;
414 }
415 
416 /* (:scope (vars..) (prog...)) */
417 static node*
419 {
420  return cons((node*)NODE_SCOPE, cons(locals_node(p), body));
421 }
422 
423 /* (:begin prog...) */
424 static node*
426 {
427  if (body) {
428  return list2((node*)NODE_BEGIN, body);
429  }
430  return cons((node*)NODE_BEGIN, 0);
431 }
432 
433 #define newline_node(n) (n)
434 
435 /* (:rescue body rescue else) */
436 static node*
438 {
439  return list4((node*)NODE_RESCUE, body, resq, els);
440 }
441 
442 static node*
444 {
445  return new_rescue(p, body, list1(list3(0, 0, resq)), 0);
446 }
447 
448 /* (:ensure body ensure) */
449 static node*
451 {
452  return cons((node*)NODE_ENSURE, cons(a, cons(0, b)));
453 }
454 
455 /* (:nil) */
456 static node*
458 {
459  return list1((node*)NODE_NIL);
460 }
461 
462 /* (:true) */
463 static node*
465 {
466  return list1((node*)NODE_TRUE);
467 }
468 
469 /* (:false) */
470 static node*
472 {
473  return list1((node*)NODE_FALSE);
474 }
475 
476 /* (:alias new old) */
477 static node*
479 {
480  return cons((node*)NODE_ALIAS, cons(nsym(a), nsym(b)));
481 }
482 
483 /* (:if cond then else) */
484 static node*
486 {
487  void_expr_error(p, a);
488  return list4((node*)NODE_IF, a, b, c);
489 }
490 
491 /* (:unless cond then else) */
492 static node*
494 {
495  void_expr_error(p, a);
496  return list4((node*)NODE_IF, a, c, b);
497 }
498 
499 /* (:while cond body) */
500 static node*
502 {
503  void_expr_error(p, a);
504  return cons((node*)NODE_WHILE, cons(a, b));
505 }
506 
507 /* (:until cond body) */
508 static node*
510 {
511  void_expr_error(p, a);
512  return cons((node*)NODE_UNTIL, cons(a, b));
513 }
514 
515 /* (:for var obj body) */
516 static node*
518 {
519  void_expr_error(p, o);
520  return list4((node*)NODE_FOR, v, o, b);
521 }
522 
523 /* (:case a ((when ...) body) ((when...) body)) */
524 static node*
526 {
527  node *n = list2((node*)NODE_CASE, a);
528  node *n2 = n;
529 
530  void_expr_error(p, a);
531  while (n2->cdr) {
532  n2 = n2->cdr;
533  }
534  n2->cdr = b;
535  return n;
536 }
537 
538 /* (:postexe a) */
539 static node*
541 {
542  return cons((node*)NODE_POSTEXE, a);
543 }
544 
545 /* (:self) */
546 static node*
548 {
549  return list1((node*)NODE_SELF);
550 }
551 
552 /* (:call a b c) */
553 static node*
555 {
556  node *n = list4(nint(pass?NODE_CALL:NODE_SCALL), a, nsym(b), c);
557  void_expr_error(p, a);
558  NODE_LINENO(n, a);
559  return n;
560 }
561 
562 /* (:fcall self mid args) */
563 static node*
565 {
566  node *n = new_self(p);
567  NODE_LINENO(n, c);
568  n = list4((node*)NODE_FCALL, n, nsym(b), c);
569  NODE_LINENO(n, c);
570  return n;
571 }
572 
573 /* (:super . c) */
574 static node*
576 {
577  return cons((node*)NODE_SUPER, c);
578 }
579 
580 /* (:zsuper) */
581 static node*
583 {
584  return list1((node*)NODE_ZSUPER);
585 }
586 
587 /* (:yield . c) */
588 static node*
590 {
591  if (c) {
592  if (c->cdr) {
593  yyerror(p, "both block arg and actual block given");
594  }
595  return cons((node*)NODE_YIELD, c->car);
596  }
597  return cons((node*)NODE_YIELD, 0);
598 }
599 
600 /* (:return . c) */
601 static node*
603 {
604  return cons((node*)NODE_RETURN, c);
605 }
606 
607 /* (:break . c) */
608 static node*
610 {
611  return cons((node*)NODE_BREAK, c);
612 }
613 
614 /* (:next . c) */
615 static node*
617 {
618  return cons((node*)NODE_NEXT, c);
619 }
620 
621 /* (:redo) */
622 static node*
624 {
625  return list1((node*)NODE_REDO);
626 }
627 
628 /* (:retry) */
629 static node*
631 {
632  return list1((node*)NODE_RETRY);
633 }
634 
635 /* (:dot2 a b) */
636 static node*
638 {
639  return cons((node*)NODE_DOT2, cons(a, b));
640 }
641 
642 /* (:dot3 a b) */
643 static node*
645 {
646  return cons((node*)NODE_DOT3, cons(a, b));
647 }
648 
649 /* (:colon2 b c) */
650 static node*
652 {
653  void_expr_error(p, b);
654  return cons((node*)NODE_COLON2, cons(b, nsym(c)));
655 }
656 
657 /* (:colon3 . c) */
658 static node*
660 {
661  return cons((node*)NODE_COLON3, nsym(c));
662 }
663 
664 /* (:and a b) */
665 static node*
667 {
668  return cons((node*)NODE_AND, cons(a, b));
669 }
670 
671 /* (:or a b) */
672 static node*
674 {
675  return cons((node*)NODE_OR, cons(a, b));
676 }
677 
678 /* (:array a...) */
679 static node*
681 {
682  return cons((node*)NODE_ARRAY, a);
683 }
684 
685 /* (:splat . a) */
686 static node*
688 {
689  return cons((node*)NODE_SPLAT, a);
690 }
691 
692 /* (:hash (k . v) (k . v)...) */
693 static node*
695 {
696  return cons((node*)NODE_HASH, a);
697 }
698 
699 /* (:kw_hash (k . v) (k . v)...) */
700 static node*
702 {
703  return cons((node*)NODE_KW_HASH, a);
704 }
705 
706 /* (:sym . a) */
707 static node*
709 {
710  return cons((node*)NODE_SYM, nsym(sym));
711 }
712 
713 static mrb_sym
715 {
716  const char *s = (const char*)str->cdr->car;
717  size_t len = (size_t)str->cdr->cdr;
718 
719  return mrb_intern(p->mrb, s, len);
720 }
721 
722 /* (:lvar . a) */
723 static node*
725 {
726  return cons((node*)NODE_LVAR, nsym(sym));
727 }
728 
729 /* (:gvar . a) */
730 static node*
732 {
733  return cons((node*)NODE_GVAR, nsym(sym));
734 }
735 
736 /* (:ivar . a) */
737 static node*
739 {
740  return cons((node*)NODE_IVAR, nsym(sym));
741 }
742 
743 /* (:cvar . a) */
744 static node*
746 {
747  return cons((node*)NODE_CVAR, nsym(sym));
748 }
749 
750 /* (:nvar . a) */
751 static node*
753 {
754  int nvars = intn(p->nvars->car);
755 
756  p->nvars->car = nint(nvars > num ? nvars : num);
757  return cons((node*)NODE_NVAR, nint(num));
758 }
759 
760 /* (:const . a) */
761 static node*
763 {
764  return cons((node*)NODE_CONST, nsym(sym));
765 }
766 
767 /* (:undef a...) */
768 static node*
770 {
771  return list2((node*)NODE_UNDEF, nsym(sym));
772 }
773 
774 /* (:class class super body) */
775 static node*
777 {
778  void_expr_error(p, s);
779  return list4((node*)NODE_CLASS, c, s, cons(locals_node(p), b));
780 }
781 
782 /* (:sclass obj body) */
783 static node*
785 {
786  void_expr_error(p, o);
787  return list3((node*)NODE_SCLASS, o, cons(locals_node(p), b));
788 }
789 
790 /* (:module module body) */
791 static node*
793 {
794  return list3((node*)NODE_MODULE, m, cons(locals_node(p), b));
795 }
796 
797 /* (:def m lv (arg . body)) */
798 static node*
800 {
801  return list5((node*)NODE_DEF, nsym(m), 0, a, b);
802 }
803 
804 static void
806 {
807  node *n = d->cdr->cdr;
808 
809  n->car = locals_node(p);
810  p->cmdarg_stack = intn(n->cdr->car);
811  n->cdr->car = a;
812  local_resume(p, n->cdr->cdr->car);
813  n->cdr->cdr->car = b;
814 }
815 
816 /* (:sdef obj m lv (arg . body)) */
817 static node*
819 {
820  void_expr_error(p, o);
821  return list6((node*)NODE_SDEF, o, nsym(m), 0, a, b);
822 }
823 
824 static void
826 {
827  node *n = d->cdr->cdr->cdr;
828 
829  n->car = locals_node(p);
830  p->cmdarg_stack = intn(n->cdr->car);
831  n->cdr->car = a;
832  local_resume(p, n->cdr->cdr->car);
833  n->cdr->cdr->car = b;
834 }
835 
836 /* (:arg . sym) */
837 static node*
839 {
840  return cons((node*)NODE_ARG, nsym(sym));
841 }
842 
843 static void
845 {
846  while (n) {
847  if (typen(n->car->car) == NODE_MASGN) {
848  node *t = n->car->cdr->cdr;
849 
850  n->car->cdr->cdr = NULL;
851  while (t) {
852  local_add_f(p, sym(t->car));
853  t = t->cdr;
854  }
855  local_add_margs(p, n->car->cdr->car->car);
856  local_add_margs(p, n->car->cdr->car->cdr->cdr->car);
857  }
858  n = n->cdr;
859  }
860 }
861 
862 static void
864 {
865  while (lv) {
866  local_add_f(p, sym(lv->car));
867  lv = lv->cdr;
868  }
869 }
870 
871 /* (m o r m2 tail) */
872 /* m: (a b c) */
873 /* o: ((a . e1) (b . e2)) */
874 /* r: a */
875 /* m2: (a b c) */
876 /* b: a */
877 static node*
879 {
880  node *n;
881 
882  local_add_margs(p, m);
883  local_add_margs(p, m2);
884  n = cons(m2, tail);
885  n = cons(nsym(rest), n);
886  n = cons(opt, n);
887  while (opt) {
888  /* opt: (sym . (opt . lv)) -> (sym . opt) */
889  local_add_lv(p, opt->car->cdr->cdr);
890  opt->car->cdr = opt->car->cdr->car;
891  opt = opt->cdr;
892  }
893  return cons(m, n);
894 }
895 
896 /* (:args_tail keywords rest_keywords_sym block_sym) */
897 static node*
899 {
900  node *k;
901 
902  if (kws || kwrest) {
903  local_add_kw(p, (kwrest && kwrest->cdr)? sym(kwrest->cdr) : 0);
904  }
905 
906  local_add_blk(p, blk);
907 
908  /* allocate register for keywords arguments */
909  /* order is for Proc#parameters */
910  for (k = kws; k; k = k->cdr) {
911  if (!k->car->cdr->cdr->car) { /* allocate required keywords */
912  local_add_f(p, sym(k->car->cdr->car));
913  }
914  }
915  for (k = kws; k; k = k->cdr) {
916  if (k->car->cdr->cdr->car) { /* allocate keywords with default */
917  local_add_lv(p, k->car->cdr->cdr->car->cdr);
918  k->car->cdr->cdr->car = k->car->cdr->cdr->car->car;
919  local_add_f(p, sym(k->car->cdr->car));
920  }
921  }
922 
923  return list4((node*)NODE_ARGS_TAIL, kws, kwrest, nsym(blk));
924 }
925 
926 /* (:kw_arg kw_sym def_arg) */
927 static node*
929 {
930  mrb_assert(kw);
931  return list3((node*)NODE_KW_ARG, nsym(kw), def_arg);
932 }
933 
934 /* (:kw_rest_args . a) */
935 static node*
937 {
938  return cons((node*)NODE_KW_REST_ARGS, a);
939 }
940 
941 /* (:block_arg . a) */
942 static node*
944 {
945  return cons((node*)NODE_BLOCK_ARG, a);
946 }
947 
948 static node*
950 {
951  int nvars = intn(p->nvars->car);
952  if (nvars > 0) {
953  int i;
954  mrb_sym sym;
955  // m || opt || rest || tail
956  if (a && (a->car || (a->cdr && a->cdr->car) || (a->cdr->cdr && a->cdr->cdr->car) || (a->cdr->cdr->cdr->cdr && a->cdr->cdr->cdr->cdr->car))) {
957  yyerror(p, "ordinary parameter is defined");
958  }
959  else if (p->locals) {
960  /* p->locals should not be NULL unless error happens before the point */
961  node* args = 0;
962  for (i = nvars; i > 0; i--) {
963  char buf[3];
964 
965  buf[0] = '_';
966  buf[1] = i+'0';
967  buf[2] = '\0';
968  sym = intern_cstr(buf);
969  args = cons(new_arg(p, sym), args);
970  p->locals->car = cons(nsym(sym), p->locals->car);
971  }
972  a = new_args(p, args, 0, 0, 0, 0);
973  }
974  }
975  return a;
976 }
977 
978 /* (:block arg body) */
979 static node*
981 {
982  a = setup_numparams(p, a);
983  return list4((node*)NODE_BLOCK, locals_node(p), a, b);
984 }
985 
986 /* (:lambda arg body) */
987 static node*
989 {
990  return list4((node*)NODE_LAMBDA, locals_node(p), a, b);
991 }
992 
993 /* (:asgn lhs rhs) */
994 static node*
996 {
997  void_expr_error(p, b);
998  return cons((node*)NODE_ASGN, cons(a, b));
999 }
1000 
1001 /* (:masgn mlhs=(pre rest post) mrhs) */
1002 static node*
1004 {
1005  void_expr_error(p, b);
1006  return cons((node*)NODE_MASGN, cons(a, b));
1007 }
1008 
1009 /* (:masgn mlhs mrhs) no check */
1010 static node*
1012 {
1013  return cons((node*)NODE_MASGN, cons(a, b));
1014 }
1015 
1016 /* (:asgn lhs rhs) */
1017 static node*
1019 {
1020  void_expr_error(p, b);
1021  return list4((node*)NODE_OP_ASGN, a, nsym(op), b);
1022 }
1023 
1024 static node*
1026 {
1027  return new_call(p, new_const(p, MRB_SYM_2(p->mrb, Kernel)), MRB_SYM_2(p->mrb, Complex), list1(list2(list3((node*)NODE_INT, (node*)strdup("0"), nint(10)), imaginary)), 1);
1028 }
1029 
1030 static node*
1032 {
1033  return new_call(p, new_const(p, MRB_SYM_2(p->mrb, Kernel)), MRB_SYM_2(p->mrb, Rational), list1(list1(rational)), 1);
1034 }
1035 
1036 /* (:int . i) */
1037 static node*
1038 new_int(parser_state *p, const char *s, int base, int suffix)
1039 {
1041  if (suffix & NUM_SUFFIX_R) {
1043  }
1044  if (suffix & NUM_SUFFIX_I) {
1046  }
1047  return result;
1048 }
1049 
1050 #ifndef MRB_NO_FLOAT
1051 /* (:float . i) */
1052 static node*
1053 new_float(parser_state *p, const char *s, int suffix)
1054 {
1055  node* result = cons((node*)NODE_FLOAT, (node*)strdup(s));
1056  if (suffix & NUM_SUFFIX_R) {
1058  }
1059  if (suffix & NUM_SUFFIX_I) {
1061  }
1062  return result;
1063 }
1064 #endif
1065 
1066 /* (:str . (s . len)) */
1067 static node*
1068 new_str(parser_state *p, const char *s, size_t len)
1069 {
1070  return cons((node*)NODE_STR, cons((node*)strndup(s, len), nint(len)));
1071 }
1072 
1073 /* (:dstr . a) */
1074 static node*
1076 {
1077  return cons((node*)NODE_DSTR, a);
1078 }
1079 
1080 static int
1082 {
1083  return (int)(typen(n->car) == NODE_STR);
1084 }
1085 
1086 static node*
1088 {
1089  size_t newlen = (size_t)a->cdr + (size_t)b->cdr;
1090  char *str = (char*)mrb_pool_realloc(p->pool, a->car, (size_t)a->cdr + 1, newlen + 1);
1091  memcpy(str + (size_t)a->cdr, b->car, (size_t)b->cdr);
1092  str[newlen] = '\0';
1093  a->car = (node*)str;
1094  a->cdr = (node*)newlen;
1095  cons_free(b);
1096  return a;
1097 }
1098 
1099 static node*
1101 {
1102  if (string_node_p(a)) {
1103  if (string_node_p(b)) {
1104  /* a == NODE_STR && b == NODE_STR */
1105  composite_string_node(p, a->cdr, b->cdr);
1106  cons_free(b);
1107  return a;
1108  }
1109  else {
1110  /* a == NODE_STR && b == NODE_DSTR */
1111 
1112  if (string_node_p(b->cdr->car)) {
1113  /* a == NODE_STR && b->[NODE_STR, ...] */
1114  composite_string_node(p, a->cdr, b->cdr->car->cdr);
1115  cons_free(b->cdr->car);
1116  b->cdr->car = a;
1117  return b;
1118  }
1119  }
1120  }
1121  else {
1122  node *c; /* last node of a */
1123  for (c = a; c->cdr != NULL; c = c->cdr) ;
1124 
1125  if (string_node_p(b)) {
1126  /* a == NODE_DSTR && b == NODE_STR */
1127  if (string_node_p(c->car)) {
1128  /* a->[..., NODE_STR] && b == NODE_STR */
1129  composite_string_node(p, c->car->cdr, b->cdr);
1130  cons_free(b);
1131  return a;
1132  }
1133 
1134  push(a, b);
1135  return a;
1136  }
1137  else {
1138  /* a == NODE_DSTR && b == NODE_DSTR */
1139  if (string_node_p(c->car) && string_node_p(b->cdr->car)) {
1140  /* a->[..., NODE_STR] && b->[NODE_STR, ...] */
1141  node *d = b->cdr;
1142  cons_free(b);
1143  composite_string_node(p, c->car->cdr, d->car->cdr);
1144  cons_free(d->car);
1145  c->cdr = d->cdr;
1146  cons_free(d);
1147  return a;
1148  }
1149  else {
1150  c->cdr = b->cdr;
1151  cons_free(b);
1152  return a;
1153  }
1154  }
1155  }
1156 
1157  return new_dstr(p, list2(a, b));
1158 }
1159 
1160 /* (:str . (s . len)) */
1161 static node*
1162 new_xstr(parser_state *p, const char *s, int len)
1163 {
1164  return cons((node*)NODE_XSTR, cons((node*)strndup(s, len), nint(len)));
1165 }
1166 
1167 /* (:xstr . a) */
1168 static node*
1170 {
1171  return cons((node*)NODE_DXSTR, a);
1172 }
1173 
1174 /* (:dsym . a) */
1175 static node*
1177 {
1178  return cons((node*)NODE_DSYM, a);
1179 }
1180 
1181 /* (:regx . (s . (opt . enc))) */
1182 static node*
1183 new_regx(parser_state *p, const char *p1, const char* p2, const char* p3)
1184 {
1185  return cons((node*)NODE_REGX, cons((node*)p1, cons((node*)p2, (node*)p3)));
1186 }
1187 
1188 /* (:dregx . (a . b)) */
1189 static node*
1191 {
1192  return cons((node*)NODE_DREGX, cons(a, b));
1193 }
1194 
1195 /* (:backref . n) */
1196 static node*
1198 {
1199  return cons((node*)NODE_BACK_REF, nint(n));
1200 }
1201 
1202 /* (:nthref . n) */
1203 static node*
1205 {
1206  return cons((node*)NODE_NTH_REF, nint(n));
1207 }
1208 
1209 /* (:heredoc . a) */
1210 static node*
1212 {
1214  return cons((node*)NODE_HEREDOC, (node*)inf);
1215 }
1216 
1217 static void
1219 {
1220 }
1221 
1222 static node*
1224 {
1225  return cons((node*)NODE_LITERAL_DELIM, 0);
1226 }
1227 
1228 /* (:words . a) */
1229 static node*
1231 {
1232  return cons((node*)NODE_WORDS, a);
1233 }
1234 
1235 /* (:symbols . a) */
1236 static node*
1238 {
1239  return cons((node*)NODE_SYMBOLS, a);
1240 }
1241 
1242 /* xxx ----------------------------- */
1243 
1244 /* (:call a op) */
1245 static node*
1246 call_uni_op(parser_state *p, node *recv, const char *m)
1247 {
1248  void_expr_error(p, recv);
1249  return new_call(p, recv, intern_cstr(m), 0, 1);
1250 }
1251 
1252 /* (:call a op b) */
1253 static node*
1254 call_bin_op(parser_state *p, node *recv, const char *m, node *arg1)
1255 {
1256  return new_call(p, recv, intern_cstr(m), list1(list1(arg1)), 1);
1257 }
1258 
1259 static void
1261 {
1262  if (b) {
1263  if (a->cdr) {
1264  yyerror(p, "both block arg and actual block given");
1265  }
1266  a->cdr = b;
1267  }
1268 }
1269 
1270 static void
1272 {
1273  node *n;
1274 
1275  switch (typen(a->car)) {
1276  case NODE_SUPER:
1277  case NODE_ZSUPER:
1278  if (!a->cdr) a->cdr = cons(0, b);
1279  else {
1280  args_with_block(p, a->cdr, b);
1281  }
1282  break;
1283  case NODE_CALL:
1284  case NODE_FCALL:
1285  case NODE_SCALL:
1286  n = a->cdr->cdr->cdr;
1287  if (!n->car) n->car = cons(0, b);
1288  else {
1289  args_with_block(p, n->car, b);
1290  }
1291  break;
1292  default:
1293  break;
1294  }
1295 }
1296 
1297 static node*
1299 {
1300  return cons((node*)NODE_NEGATE, n);
1301 }
1302 
1303 static node*
1305 {
1306  return n;
1307 }
1308 
1309 static node*
1311 {
1312  if (n->cdr) {
1313  yyerror(p, "block argument should not be given");
1314  return NULL;
1315  }
1316  if (!n->car->cdr) return n->car->car;
1317  return new_array(p, n->car);
1318 }
1319 
1320 static void
1322 {
1323  if (intn(lhs->car) == NODE_LVAR) {
1324  local_add(p, sym(lhs->cdr));
1325  }
1326 }
1327 
1328 static node*
1330 {
1331  node *n;
1332 
1333  if (intn(lhs->car) == NODE_LVAR) {
1334  if (!local_var_p(p, sym(lhs->cdr))) {
1335  n = new_fcall(p, sym(lhs->cdr), 0);
1336  cons_free(lhs);
1337  return n;
1338  }
1339  }
1340 
1341  return lhs;
1342 }
1343 
1344 typedef enum mrb_string_type string_type;
1345 
1346 static node*
1347 new_strterm(parser_state *p, string_type type, int term, int paren)
1348 {
1349  return cons(nint(type), cons(nint(0), cons(nint(paren), nint(term))));
1350 }
1351 
1352 static void
1354 {
1355  cons_free(p->lex_strterm->cdr->cdr);
1356  cons_free(p->lex_strterm->cdr);
1357  cons_free(p->lex_strterm);
1358  p->lex_strterm = NULL;
1359 }
1360 
1361 static parser_heredoc_info *
1363 {
1364  node *nd = p->parsing_heredoc;
1365  if (nd == NULL)
1366  return NULL;
1367  /* mrb_assert(nd->car->car == NODE_HEREDOC); */
1368  return (parser_heredoc_info*)nd->car->cdr;
1369 }
1370 
1371 static void
1373 {
1374  if (p->heredocs_from_nextline == NULL)
1375  return;
1376  if (p->parsing_heredoc == NULL) {
1377  node *n;
1378  p->parsing_heredoc = p->heredocs_from_nextline;
1379  p->lex_strterm_before_heredoc = p->lex_strterm;
1380  p->lex_strterm = new_strterm(p, parsing_heredoc_inf(p)->type, 0, 0);
1381  n = p->all_heredocs;
1382  if (n) {
1383  while (n->cdr)
1384  n = n->cdr;
1385  n->cdr = p->parsing_heredoc;
1386  }
1387  else {
1388  p->all_heredocs = p->parsing_heredoc;
1389  }
1390  }
1391  else {
1392  node *n, *m;
1393  m = p->heredocs_from_nextline;
1394  while (m->cdr)
1395  m = m->cdr;
1396  n = p->all_heredocs;
1397  mrb_assert(n != NULL);
1398  if (n == p->parsing_heredoc) {
1399  m->cdr = n;
1400  p->all_heredocs = p->heredocs_from_nextline;
1401  p->parsing_heredoc = p->heredocs_from_nextline;
1402  }
1403  else {
1404  while (n->cdr != p->parsing_heredoc) {
1405  n = n->cdr;
1406  mrb_assert(n != NULL);
1407  }
1408  m->cdr = n->cdr;
1409  n->cdr = p->heredocs_from_nextline;
1410  p->parsing_heredoc = p->heredocs_from_nextline;
1411  }
1412  }
1413  p->heredocs_from_nextline = NULL;
1414 }
1415 
1416 static void
1418 {
1419  p->parsing_heredoc = p->parsing_heredoc->cdr;
1420  if (p->parsing_heredoc == NULL) {
1421  p->lstate = EXPR_BEG;
1422  end_strterm(p);
1423  p->lex_strterm = p->lex_strterm_before_heredoc;
1424  p->lex_strterm_before_heredoc = NULL;
1425  }
1426  else {
1427  /* next heredoc */
1428  p->lex_strterm->car = nint(parsing_heredoc_inf(p)->type);
1429  }
1430 }
1431 #define is_strterm_type(p,str_func) (intn((p)->lex_strterm->car) & (str_func))
1432 
1433 /* xxx ----------------------------- */
1434 
1435 
1436 #line 1437 "mrbgems/mruby-compiler/core/y.tab.c"
1437 
1438 # ifndef YY_CAST
1439 # ifdef __cplusplus
1440 # define YY_CAST(Type, Val) static_cast<Type> (Val)
1441 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
1442 # else
1443 # define YY_CAST(Type, Val) ((Type) (Val))
1444 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
1445 # endif
1446 # endif
1447 # ifndef YY_NULLPTR
1448 # if defined __cplusplus
1449 # if 201103L <= __cplusplus
1450 # define YY_NULLPTR nullptr
1451 # else
1452 # define YY_NULLPTR 0
1453 # endif
1454 # else
1455 # define YY_NULLPTR ((void*)0)
1456 # endif
1457 # endif
1458 
1459 /* Enabling verbose error messages. */
1460 #ifdef YYERROR_VERBOSE
1461 # undef YYERROR_VERBOSE
1462 # define YYERROR_VERBOSE 1
1463 #else
1464 # define YYERROR_VERBOSE 1
1465 #endif
1466 
1467 
1468 /* Debug traces. */
1469 #ifndef YYDEBUG
1470 # define YYDEBUG 0
1471 #endif
1472 #if YYDEBUG
1473 extern int yydebug;
1474 #endif
1475 
1476 /* Token type. */
1477 #ifndef YYTOKENTYPE
1478 # define YYTOKENTYPE
1480  {
1485  keyword_if = 262,
1503  keyword_in = 280,
1504  keyword_do = 281,
1516  keyword_or = 293,
1530  tFID = 307,
1531  tGVAR = 308,
1532  tIVAR = 309,
1533  tCONSTANT = 310,
1534  tCVAR = 311,
1535  tLABEL_TAG = 312,
1536  tINTEGER = 313,
1537  tFLOAT = 314,
1538  tCHAR = 315,
1539  tXSTRING = 316,
1540  tREGEXP = 317,
1541  tSTRING = 318,
1544  tNTH_REF = 321,
1545  tBACK_REF = 322,
1547  tNUMPARAM = 324,
1548  tUPLUS = 325,
1549  tUMINUS = 326,
1550  tCMP = 327,
1551  tEQ = 328,
1552  tEQQ = 329,
1553  tNEQ = 330,
1554  tGEQ = 331,
1555  tLEQ = 332,
1556  tANDOP = 333,
1557  tOROP = 334,
1558  tMATCH = 335,
1559  tNMATCH = 336,
1560  tDOT2 = 337,
1561  tDOT3 = 338,
1562  tBDOT2 = 339,
1563  tBDOT3 = 340,
1564  tAREF = 341,
1565  tASET = 342,
1566  tLSHFT = 343,
1567  tRSHFT = 344,
1568  tCOLON2 = 345,
1569  tCOLON3 = 346,
1570  tOP_ASGN = 347,
1571  tASSOC = 348,
1572  tLPAREN = 349,
1574  tRPAREN = 351,
1575  tLBRACK = 352,
1576  tLBRACE = 353,
1578  tSTAR = 355,
1579  tPOW = 356,
1580  tDSTAR = 357,
1581  tAMPER = 358,
1582  tLAMBDA = 359,
1583  tANDDOT = 360,
1584  tSYMBEG = 361,
1589  tWORDS_BEG = 366,
1591  tLAMBEG = 368,
1598  tLOWEST = 375,
1600  tLAST_TOKEN = 377
1601  };
1602 #endif
1603 
1604 /* Value type. */
1605 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
1606 union YYSTYPE
1607 {
1608 #line 1379 "mrbgems/mruby-compiler/core/parse.y"
1609 
1612  int num;
1614  const struct vtable *vars;
1615 
1616 #line 1617 "mrbgems/mruby-compiler/core/y.tab.c"
1617 
1618 };
1619 typedef union YYSTYPE YYSTYPE;
1620 # define YYSTYPE_IS_TRIVIAL 1
1621 # define YYSTYPE_IS_DECLARED 1
1622 #endif
1623 
1624 
1625 
1626 int yyparse (parser_state *p);
1627 
1628 
1629 
1630 
1631 
1632 #ifdef short
1633 # undef short
1634 #endif
1635 
1636 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
1637  <limits.h> and (if available) <stdint.h> are included
1638  so that the code can choose integer types of a good width. */
1639 
1640 #ifndef __PTRDIFF_MAX__
1641 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
1642 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1643 # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
1644 # define YY_STDINT_H
1645 # endif
1646 #endif
1647 
1648 /* Narrow types that promote to a signed type and that can represent a
1649  signed or unsigned integer of at least N bits. In tables they can
1650  save space and decrease cache pressure. Promoting to a signed type
1651  helps avoid bugs in integer arithmetic. */
1652 
1653 #ifdef __INT_LEAST8_MAX__
1654 typedef __INT_LEAST8_TYPE__ yytype_int8;
1655 #elif defined YY_STDINT_H
1656 typedef int_least8_t yytype_int8;
1657 #else
1658 typedef signed char yytype_int8;
1659 #endif
1660 
1661 #ifdef __INT_LEAST16_MAX__
1662 typedef __INT_LEAST16_TYPE__ yytype_int16;
1663 #elif defined YY_STDINT_H
1664 typedef int_least16_t yytype_int16;
1665 #else
1666 typedef short yytype_int16;
1667 #endif
1668 
1669 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
1670 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
1671 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
1672  && UINT_LEAST8_MAX <= INT_MAX)
1673 typedef uint_least8_t yytype_uint8;
1674 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
1675 typedef unsigned char yytype_uint8;
1676 #else
1677 typedef short yytype_uint8;
1678 #endif
1679 
1680 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
1681 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
1682 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
1683  && UINT_LEAST16_MAX <= INT_MAX)
1685 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
1686 typedef unsigned short yytype_uint16;
1687 #else
1688 typedef int yytype_uint16;
1689 #endif
1690 
1691 #ifndef YYPTRDIFF_T
1692 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
1693 # define YYPTRDIFF_T __PTRDIFF_TYPE__
1694 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
1695 # elif defined PTRDIFF_MAX
1696 # ifndef ptrdiff_t
1697 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1698 # endif
1699 # define YYPTRDIFF_T ptrdiff_t
1700 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
1701 # else
1702 # define YYPTRDIFF_T long
1703 # define YYPTRDIFF_MAXIMUM LONG_MAX
1704 # endif
1705 #endif
1706 
1707 #ifndef YYSIZE_T
1708 # ifdef __SIZE_TYPE__
1709 # define YYSIZE_T __SIZE_TYPE__
1710 # elif defined size_t
1711 # define YYSIZE_T size_t
1712 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1713 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1714 # define YYSIZE_T size_t
1715 # else
1716 # define YYSIZE_T unsigned
1717 # endif
1718 #endif
1719 
1720 #define YYSIZE_MAXIMUM \
1721  YY_CAST (YYPTRDIFF_T, \
1722  (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
1723  ? YYPTRDIFF_MAXIMUM \
1724  : YY_CAST (YYSIZE_T, -1)))
1725 
1726 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
1727 
1728 /* Stored state numbers (used for stacks). */
1730 
1731 /* State numbers in computations. */
1732 typedef int yy_state_fast_t;
1733 
1734 #ifndef YY_
1735 # if defined YYENABLE_NLS && YYENABLE_NLS
1736 # if ENABLE_NLS
1737 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1738 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
1739 # endif
1740 # endif
1741 # ifndef YY_
1742 # define YY_(Msgid) Msgid
1743 # endif
1744 #endif
1745 
1746 #ifndef YY_ATTRIBUTE_PURE
1747 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
1748 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
1749 # else
1750 # define YY_ATTRIBUTE_PURE
1751 # endif
1752 #endif
1753 
1754 #ifndef YY_ATTRIBUTE_UNUSED
1755 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
1756 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
1757 # else
1758 # define YY_ATTRIBUTE_UNUSED
1759 # endif
1760 #endif
1761 
1762 /* Suppress unused-variable warnings by "using" E. */
1763 #if ! defined lint || defined __GNUC__
1764 # define YYUSE(E) ((void) (E))
1765 #else
1766 # define YYUSE(E) /* empty */
1767 #endif
1768 
1769 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
1770 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
1771 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1772  _Pragma ("GCC diagnostic push") \
1773  _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
1774  _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
1775 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
1776  _Pragma ("GCC diagnostic pop")
1777 #else
1778 # define YY_INITIAL_VALUE(Value) Value
1779 #endif
1780 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1781 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1782 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
1783 #endif
1784 #ifndef YY_INITIAL_VALUE
1785 # define YY_INITIAL_VALUE(Value) /* Nothing. */
1786 #endif
1787 
1788 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
1789 # define YY_IGNORE_USELESS_CAST_BEGIN \
1790  _Pragma ("GCC diagnostic push") \
1791  _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
1792 # define YY_IGNORE_USELESS_CAST_END \
1793  _Pragma ("GCC diagnostic pop")
1794 #endif
1795 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
1796 # define YY_IGNORE_USELESS_CAST_BEGIN
1797 # define YY_IGNORE_USELESS_CAST_END
1798 #endif
1799 
1800 
1801 #define YY_ASSERT(E) ((void) (0 && (E)))
1802 
1803 #if ! defined yyoverflow || YYERROR_VERBOSE
1804 
1805 /* The parser invokes alloca or malloc; define the necessary symbols. */
1806 
1807 # ifdef YYSTACK_USE_ALLOCA
1808 # if YYSTACK_USE_ALLOCA
1809 # ifdef __GNUC__
1810 # define YYSTACK_ALLOC __builtin_alloca
1811 # elif defined __BUILTIN_VA_ARG_INCR
1812 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1813 # elif defined _AIX
1814 # define YYSTACK_ALLOC __alloca
1815 # elif defined _MSC_VER
1816 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1817 # define alloca _alloca
1818 # else
1819 # define YYSTACK_ALLOC alloca
1820 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1821 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1822  /* Use EXIT_SUCCESS as a witness for stdlib.h. */
1823 # ifndef EXIT_SUCCESS
1824 # define EXIT_SUCCESS 0
1825 # endif
1826 # endif
1827 # endif
1828 # endif
1829 # endif
1830 
1831 # ifdef YYSTACK_ALLOC
1832  /* Pacify GCC's 'empty if-body' warning. */
1833 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1834 # ifndef YYSTACK_ALLOC_MAXIMUM
1835  /* The OS might guarantee only one guard page at the bottom of the stack,
1836  and a page size can be as small as 4096 bytes. So we cannot safely
1837  invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
1838  to allow for a few compiler-allocated temporary stack slots. */
1839 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1840 # endif
1841 # else
1842 # define YYSTACK_ALLOC YYMALLOC
1843 # define YYSTACK_FREE YYFREE
1844 # ifndef YYSTACK_ALLOC_MAXIMUM
1845 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1846 # endif
1847 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1848  && ! ((defined YYMALLOC || defined malloc) \
1849  && (defined YYFREE || defined free)))
1850 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1851 # ifndef EXIT_SUCCESS
1852 # define EXIT_SUCCESS 0
1853 # endif
1854 # endif
1855 # ifndef YYMALLOC
1856 # define YYMALLOC malloc
1857 # if ! defined malloc && ! defined EXIT_SUCCESS
1858 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1859 # endif
1860 # endif
1861 # ifndef YYFREE
1862 # define YYFREE free
1863 # if ! defined free && ! defined EXIT_SUCCESS
1864 void free (void *); /* INFRINGES ON USER NAME SPACE */
1865 # endif
1866 # endif
1867 # endif
1868 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
1869 
1870 
1871 #if (! defined yyoverflow \
1872  && (! defined __cplusplus \
1873  || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1874 
1875 /* A type that is properly aligned for any stack member. */
1876 union yyalloc
1877 {
1880 };
1881 
1882 /* The size of the maximum gap between one aligned stack and the next. */
1883 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1884 
1885 /* The size of an array large to enough to hold all stacks, each with
1886  N elements. */
1887 # define YYSTACK_BYTES(N) \
1888  ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
1889  + YYSTACK_GAP_MAXIMUM)
1890 
1891 # define YYCOPY_NEEDED 1
1892 
1893 /* Relocate STACK from its old location to the new one. The
1894  local variables YYSIZE and YYSTACKSIZE give the old and new number of
1895  elements in the stack, and YYPTR gives the new location of the
1896  stack. Advance YYPTR to a properly aligned location for the next
1897  stack. */
1898 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1899  do \
1900  { \
1901  YYPTRDIFF_T yynewbytes; \
1902  YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1903  Stack = &yyptr->Stack_alloc; \
1904  yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1905  yyptr += yynewbytes / YYSIZEOF (*yyptr); \
1906  } \
1907  while (0)
1908 
1909 #endif
1910 
1911 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1912 /* Copy COUNT objects from SRC to DST. The source and destination do
1913  not overlap. */
1914 # ifndef YYCOPY
1915 # if defined __GNUC__ && 1 < __GNUC__
1916 # define YYCOPY(Dst, Src, Count) \
1917  __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1918 # else
1919 # define YYCOPY(Dst, Src, Count) \
1920  do \
1921  { \
1922  YYPTRDIFF_T yyi; \
1923  for (yyi = 0; yyi < (Count); yyi++) \
1924  (Dst)[yyi] = (Src)[yyi]; \
1925  } \
1926  while (0)
1927 # endif
1928 # endif
1929 #endif /* !YYCOPY_NEEDED */
1930 
1931 /* YYFINAL -- State number of the termination state. */
1932 #define YYFINAL 3
1933 /* YYLAST -- Last index in YYTABLE. */
1934 #define YYLAST 12618
1935 
1936 /* YYNTOKENS -- Number of terminals. */
1937 #define YYNTOKENS 149
1938 /* YYNNTS -- Number of nonterminals. */
1939 #define YYNNTS 176
1940 /* YYNRULES -- Number of rules. */
1941 #define YYNRULES 605
1942 /* YYNSTATES -- Number of states. */
1943 #define YYNSTATES 1061
1944 
1945 #define YYUNDEFTOK 2
1946 #define YYMAXUTOK 377
1947 
1948 
1949 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1950  as returned by yylex, with out-of-bounds checking. */
1951 #define YYTRANSLATE(YYX) \
1952  (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1953 
1954 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1955  as returned by yylex. */
1956 static const yytype_uint8 yytranslate[] =
1957 {
1958  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1959  148, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1960  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1961  2, 2, 2, 135, 2, 2, 2, 133, 128, 2,
1962  144, 145, 131, 129, 142, 130, 147, 132, 2, 2,
1963  2, 2, 2, 2, 2, 2, 2, 2, 123, 146,
1964  125, 121, 124, 122, 2, 2, 2, 2, 2, 2,
1965  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1966  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1967  2, 140, 2, 141, 127, 2, 143, 2, 2, 2,
1968  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1969  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1970  2, 2, 2, 138, 126, 139, 136, 2, 2, 2,
1971  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1972  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1973  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1974  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1975  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1976  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1977  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1978  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1979  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1980  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1981  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1982  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1983  2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1984  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1985  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1986  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1987  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1988  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1989  55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1990  65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1991  75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1992  85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1993  95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1994  105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1995  115, 116, 117, 118, 119, 120, 134, 137
1996 };
1997 
1998 #if YYDEBUG
1999  /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
2000 static const yytype_int16 yyrline[] =
2001 {
2002  0, 1549, 1549, 1549, 1560, 1566, 1570, 1575, 1579, 1585,
2003  1587, 1586, 1600, 1627, 1633, 1637, 1642, 1646, 1652, 1652,
2004  1656, 1660, 1664, 1668, 1672, 1676, 1680, 1685, 1686, 1690,
2005  1694, 1698, 1702, 1709, 1712, 1716, 1720, 1724, 1728, 1732,
2006  1737, 1741, 1748, 1749, 1753, 1757, 1758, 1762, 1766, 1770,
2007  1774, 1778, 1788, 1787, 1802, 1811, 1812, 1815, 1816, 1823,
2008  1822, 1837, 1841, 1846, 1850, 1855, 1859, 1864, 1868, 1872,
2009  1876, 1880, 1886, 1890, 1896, 1897, 1903, 1907, 1911, 1915,
2010  1919, 1923, 1927, 1931, 1935, 1939, 1945, 1946, 1952, 1956,
2011  1962, 1966, 1972, 1976, 1980, 1984, 1988, 1992, 1998, 2004,
2012  2011, 2015, 2019, 2023, 2027, 2031, 2037, 2043, 2048, 2054,
2013  2058, 2061, 2065, 2069, 2076, 2077, 2078, 2079, 2084, 2091,
2014  2092, 2095, 2099, 2099, 2105, 2106, 2107, 2108, 2109, 2110,
2015  2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120,
2016  2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130,
2017  2131, 2132, 2133, 2134, 2137, 2137, 2137, 2138, 2138, 2139,
2018  2139, 2139, 2140, 2140, 2140, 2140, 2141, 2141, 2141, 2142,
2019  2142, 2142, 2143, 2143, 2143, 2143, 2144, 2144, 2144, 2144,
2020  2145, 2145, 2145, 2145, 2146, 2146, 2146, 2146, 2147, 2147,
2021  2147, 2147, 2148, 2148, 2151, 2155, 2159, 2163, 2167, 2171,
2022  2175, 2180, 2185, 2190, 2194, 2198, 2202, 2206, 2210, 2214,
2023  2218, 2222, 2226, 2230, 2234, 2238, 2242, 2246, 2250, 2254,
2024  2258, 2262, 2266, 2270, 2274, 2278, 2282, 2286, 2290, 2294,
2025  2298, 2302, 2306, 2310, 2314, 2318, 2322, 2326, 2330, 2334,
2026  2338, 2346, 2355, 2364, 2374, 2380, 2381, 2386, 2390, 2397,
2027  2401, 2409, 2413, 2429, 2455, 2456, 2459, 2460, 2461, 2466,
2028  2471, 2478, 2484, 2489, 2494, 2499, 2506, 2506, 2517, 2523,
2029  2527, 2533, 2534, 2537, 2543, 2549, 2554, 2561, 2566, 2571,
2030  2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2589, 2594,
2031  2593, 2605, 2609, 2604, 2614, 2614, 2618, 2622, 2626, 2630,
2032  2635, 2640, 2644, 2648, 2652, 2656, 2660, 2661, 2667, 2673,
2033  2666, 2685, 2693, 2701, 2701, 2701, 2708, 2708, 2708, 2715,
2034  2721, 2726, 2728, 2725, 2737, 2735, 2753, 2758, 2751, 2775,
2035  2773, 2789, 2799, 2810, 2814, 2818, 2822, 2828, 2835, 2836,
2036  2837, 2840, 2841, 2844, 2845, 2853, 2854, 2860, 2864, 2867,
2037  2871, 2875, 2879, 2884, 2888, 2892, 2896, 2902, 2901, 2911,
2038  2915, 2919, 2923, 2929, 2934, 2939, 2943, 2947, 2951, 2955,
2039  2959, 2963, 2967, 2971, 2975, 2979, 2983, 2987, 2991, 2995,
2040  3001, 3006, 3013, 3013, 3017, 3022, 3029, 3033, 3039, 3040,
2041  3043, 3048, 3051, 3055, 3061, 3065, 3072, 3071, 3086, 3096,
2042  3100, 3105, 3112, 3116, 3120, 3124, 3128, 3132, 3136, 3140,
2043  3144, 3151, 3150, 3165, 3164, 3180, 3188, 3197, 3200, 3207,
2044  3210, 3214, 3215, 3218, 3222, 3225, 3229, 3232, 3233, 3234,
2045  3235, 3238, 3239, 3245, 3246, 3247, 3251, 3257, 3258, 3264,
2046  3269, 3268, 3279, 3283, 3289, 3293, 3299, 3303, 3309, 3312,
2047  3313, 3316, 3322, 3328, 3329, 3332, 3339, 3338, 3352, 3356,
2048  3363, 3368, 3375, 3381, 3382, 3383, 3384, 3385, 3389, 3395,
2049  3399, 3405, 3406, 3407, 3411, 3417, 3421, 3425, 3429, 3433,
2050  3439, 3443, 3449, 3453, 3457, 3461, 3465, 3469, 3477, 3484,
2051  3495, 3496, 3500, 3504, 3503, 3519, 3525, 3543, 3563, 3564,
2052  3570, 3576, 3582, 3589, 3594, 3601, 3605, 3611, 3615, 3621,
2053  3622, 3625, 3629, 3635, 3639, 3643, 3647, 3653, 3658, 3663,
2054  3667, 3671, 3675, 3679, 3683, 3687, 3691, 3695, 3699, 3703,
2055  3707, 3711, 3715, 3720, 3726, 3731, 3736, 3741, 3746, 3753,
2056  3757, 3764, 3769, 3768, 3780, 3784, 3790, 3798, 3806, 3814,
2057  3818, 3824, 3828, 3834, 3835, 3838, 3843, 3850, 3851, 3854,
2058  3860, 3864, 3870, 3875, 3875, 3900, 3901, 3907, 3912, 3918,
2059  3919, 3922, 3928, 3933, 3943, 3950, 3951, 3952, 3955, 3956,
2060  3957, 3958, 3961, 3962, 3963, 3966, 3967, 3970, 3974, 3980,
2061  3981, 3987, 3988, 3991, 3992, 3995, 3998, 3999, 4000, 4003,
2062  4004, 4005, 4008, 4015, 4016, 4020
2063 };
2064 #endif
2065 
2066 #if YYDEBUG || YYERROR_VERBOSE || 1
2067 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2068  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
2069 static const char *const yytname[] =
2070 {
2071  "$end", "error", "$undefined", "keyword_class", "keyword_module",
2072  "keyword_def", "keyword_begin", "keyword_if", "keyword_unless",
2073  "keyword_while", "keyword_until", "keyword_for", "keyword_undef",
2074  "keyword_rescue", "keyword_ensure", "keyword_end", "keyword_then",
2075  "keyword_elsif", "keyword_else", "keyword_case", "keyword_when",
2076  "keyword_break", "keyword_next", "keyword_redo", "keyword_retry",
2077  "keyword_in", "keyword_do", "keyword_do_cond", "keyword_do_block",
2078  "keyword_do_LAMBDA", "keyword_return", "keyword_yield", "keyword_super",
2079  "keyword_self", "keyword_nil", "keyword_true", "keyword_false",
2080  "keyword_and", "keyword_or", "keyword_not", "modifier_if",
2081  "modifier_unless", "modifier_while", "modifier_until", "modifier_rescue",
2082  "keyword_alias", "keyword_BEGIN", "keyword_END", "keyword__LINE__",
2083  "keyword__FILE__", "keyword__ENCODING__", "\"local variable or method\"",
2084  "\"method\"", "\"global variable\"", "\"instance variable\"",
2085  "\"constant\"", "\"class variable\"", "\"label\"", "\"integer literal\"",
2086  "\"float literal\"", "\"character literal\"", "tXSTRING", "tREGEXP",
2087  "tSTRING", "tSTRING_PART", "tSTRING_MID", "tNTH_REF", "tBACK_REF",
2088  "tREGEXP_END", "\"numbered paraemeter\"", "\"unary plus\"",
2089  "\"unary minus\"", "\"<=>\"", "\"==\"", "\"===\"", "\"!=\"", "\">=\"",
2090  "\"<=\"", "\"&&\"", "\"||\"", "\"=~\"", "\"!~\"", "\"..\"", "\"...\"",
2091  "tBDOT2", "tBDOT3", "tAREF", "tASET", "\"<<\"", "\">>\"", "\"::\"",
2092  "tCOLON3", "tOP_ASGN", "\"=>\"", "tLPAREN", "\"(\"", "\")\"", "\"[\"",
2093  "tLBRACE", "\"{\"", "\"*\"", "tPOW", "\"**\"", "\"&\"", "\"->\"",
2094  "\"&.\"", "\"symbol\"", "\"string literal\"", "tXSTRING_BEG",
2095  "tSTRING_DVAR", "tREGEXP_BEG", "tWORDS_BEG", "tSYMBOLS_BEG", "tLAMBEG",
2096  "\"here document\"", "tHEREDOC_END", "tLITERAL_DELIM",
2097  "tHD_LITERAL_DELIM", "tHD_STRING_PART", "tHD_STRING_MID", "tLOWEST",
2098  "'='", "'?'", "':'", "'>'", "'<'", "'|'", "'^'", "'&'", "'+'", "'-'",
2099  "'*'", "'/'", "'%'", "tUMINUS_NUM", "'!'", "'~'", "tLAST_TOKEN", "'{'",
2100  "'}'", "'['", "']'", "','", "'`'", "'('", "')'", "';'", "'.'", "'\\n'",
2101  "$accept", "program", "$@1", "top_compstmt", "top_stmts", "top_stmt",
2102  "@2", "bodystmt", "compstmt", "stmts", "stmt", "$@3", "command_asgn",
2103  "command_rhs", "expr", "defn_head", "defs_head", "$@4", "expr_value",
2104  "command_call", "block_command", "cmd_brace_block", "$@5", "command",
2105  "mlhs", "mlhs_inner", "mlhs_basic", "mlhs_item", "mlhs_list",
2106  "mlhs_post", "mlhs_node", "lhs", "cname", "cpath", "fname", "fsym",
2107  "undef_list", "$@6", "op", "reswords", "arg", "aref_args", "arg_rhs",
2108  "paren_args", "opt_paren_args", "opt_call_args", "call_args",
2109  "command_args", "@7", "block_arg", "opt_block_arg", "comma", "args",
2110  "mrhs", "primary", "@8", "@9", "$@10", "$@11", "@12", "@13", "$@14",
2111  "$@15", "$@16", "$@17", "$@18", "$@19", "@20", "@21", "@22", "@23",
2112  "primary_value", "then", "do", "if_tail", "opt_else", "for_var",
2113  "f_margs", "$@24", "block_args_tail", "opt_block_args_tail",
2114  "block_param", "opt_block_param", "block_param_def", "$@25",
2115  "opt_bv_decl", "bv_decls", "bvar", "f_larglist", "lambda_body",
2116  "do_block", "$@26", "block_call", "method_call", "brace_block", "@27",
2117  "@28", "case_body", "cases", "opt_rescue", "exc_list", "exc_var",
2118  "opt_ensure", "literal", "string", "string_fragment", "string_rep",
2119  "string_interp", "@29", "xstring", "regexp", "heredoc", "heredoc_bodies",
2120  "heredoc_body", "heredoc_string_rep", "heredoc_string_interp", "@30",
2121  "words", "symbol", "basic_symbol", "sym", "symbols", "numeric",
2122  "variable", "var_lhs", "var_ref", "backref", "superclass", "$@31",
2123  "f_arglist_paren", "f_arglist", "f_label", "f_kw", "f_block_kw",
2124  "f_block_kwarg", "f_kwarg", "kwrest_mark", "f_kwrest", "args_tail",
2125  "opt_args_tail", "f_args", "f_bad_arg", "f_norm_arg", "f_arg_item",
2126  "@32", "f_arg", "f_opt_asgn", "f_opt", "f_block_opt", "f_block_optarg",
2127  "f_optarg", "restarg_mark", "f_rest_arg", "blkarg_mark", "f_block_arg",
2128  "opt_f_block_arg", "singleton", "$@33", "assoc_list", "assocs",
2129  "label_tag", "assoc", "operation", "operation2", "operation3",
2130  "dot_or_colon", "call_op", "call_op2", "opt_terms", "opt_nl", "rparen",
2131  "trailer", "term", "nl", "terms", "none", YY_NULLPTR
2132 };
2133 #endif
2134 
2135 # ifdef YYPRINT
2136 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
2137  (internal) symbol number NUM (which must be that of a token). */
2138 static const yytype_int16 yytoknum[] =
2139 {
2140  0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2141  265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2142  275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2143  285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2144  295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2145  305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2146  315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2147  325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
2148  335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2149  345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2150  355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2151  365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2152  375, 61, 63, 58, 62, 60, 124, 94, 38, 43,
2153  45, 42, 47, 37, 376, 33, 126, 377, 123, 125,
2154  91, 93, 44, 96, 40, 41, 59, 46, 10
2155 };
2156 # endif
2157 
2158 #define YYPACT_NINF (-838)
2159 
2160 #define yypact_value_is_default(Yyn) \
2161  ((Yyn) == YYPACT_NINF)
2162 
2163 #define YYTABLE_NINF (-606)
2164 
2165 #define yytable_value_is_error(Yyn) \
2166  ((Yyn) == YYTABLE_NINF)
2167 
2168  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2169  STATE-NUM. */
2170 static const yytype_int16 yypact[] =
2171 {
2172  -838, 156, 2722, -838, 7591, 9715, 10057, 5899, -838, 9361,
2173  9361, -838, -838, 9829, 7081, 5634, 7827, 7827, -838, -838,
2174  7827, 3379, 2971, -838, -838, -838, -838, 26, 7081, -838,
2175  -19, -838, -838, -838, 6041, 2835, -838, -838, 6183, -838,
2176  -838, -838, -838, -838, -838, -838, 190, 9479, 9479, 9479,
2177  9479, 117, 4893, 1476, 8299, 8653, 7363, -838, 6799, 1151,
2178  90, 933, 1163, 1181, -838, 164, 9597, 9479, -838, 1086,
2179  -838, 1015, -838, 381, 1948, 1948, -838, -838, 154, 66,
2180  -838, 72, 9943, -838, 116, 12219, 326, 510, 112, 107,
2181  -838, 121, -838, -838, -838, -838, -838, -838, -838, -838,
2182  -838, 47, 206, -838, 205, 119, -838, -838, -838, -838,
2183  -838, 162, 162, 189, 106, 684, -838, 9361, 355, 5012,
2184  503, 1948, 1948, -838, 212, -838, 559, -838, -838, 119,
2185  -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
2186  -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
2187  -838, -838, -838, -838, -838, -838, -838, -838, 31, 100,
2188  145, 233, -838, -838, -838, -838, -838, -838, 237, 240,
2189  241, 242, -838, 245, -838, -838, -838, -838, -838, -838,
2190  -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
2191  -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
2192  -838, -838, -838, -838, -838, -838, -838, -838, -838, 248,
2193  4071, 296, 381, 73, 275, 12343, 569, 201, 331, 351,
2194  73, 9361, 9361, 656, 374, -838, -838, 751, 415, 83,
2195  124, -838, -838, -838, -838, -838, -838, -838, -838, -838,
2196  6940, -838, -838, 300, -838, -838, -838, -838, -838, -838,
2197  1086, -838, 309, -838, 429, -838, -838, 1086, 3107, 9479,
2198  9479, 9479, 9479, -838, 12281, -838, -838, 325, 441, 325,
2199  -838, -838, -838, 7945, -838, -838, -838, 7827, -838, -838,
2200  -838, 5634, 9361, -838, -838, 371, 5131, -838, 780, 433,
2201  12405, 12405, 408, 7709, 4893, 392, 1086, 1015, 1086, 422,
2202  -838, 7709, 1086, 410, 1534, 1534, -838, 12281, 428, 1534,
2203  -838, 499, 10171, 437, 805, 843, 846, 2048, -838, -838,
2204  -838, -838, 1206, -838, -838, -838, -838, -838, -838, 629,
2205  1244, -838, -838, 223, -838, 1079, -838, 1299, -838, 1320,
2206  483, 489, -838, -838, -838, -838, 5396, 9361, 9361, 9361,
2207  9361, 7709, 9361, 9361, 78, -838, -838, -838, -838, -838,
2208  -838, -838, -838, -838, -838, -838, -838, 2160, 465, 4071,
2209  9479, -838, 456, 544, 461, -838, 1086, -838, -838, -838,
2210  470, 9479, -838, 480, 575, 494, 609, -838, 542, 4071,
2211  -838, -838, 8771, -838, 4893, 7477, 520, 8771, 9479, 9479,
2212  9479, 9479, 9479, 9479, 9479, 9479, 9479, 9479, 9479, 9479,
2213  9479, 9479, 619, 9479, 9479, 9479, 9479, 9479, 9479, 9479,
2214  9479, 9479, 9479, 9479, 9479, 10449, -838, 7827, -838, 10535,
2215  -838, -838, 11739, -838, -838, -838, -838, 9597, 9597, -838,
2216  567, -838, 381, -838, 882, -838, -838, -838, -838, -838,
2217  -838, 10621, 7827, 10707, 4071, 9361, -838, -838, -838, 669,
2218  676, 384, -838, 4217, 675, 9479, 10793, 7827, 10879, 9479,
2219  9479, 4509, 607, 607, 128, 10965, 7827, 11051, -838, 637,
2220  -838, 5131, 429, -838, -838, 8889, 704, -838, 629, 9479,
2221  12343, 12343, 12343, 9479, 200, -838, 8063, -838, 9479, -838,
2222  8417, 5753, 579, 1086, 325, 325, -838, -838, 887, 584,
2223  -838, -838, 7081, 4628, 596, 10793, 10879, 9479, 1015, 1086,
2224  -838, -838, 5515, 581, 1015, -838, -838, 8535, -838, 1086,
2225  8653, -838, -838, -838, 882, 72, 10171, -838, 10171, 11137,
2226  7827, 11223, 1603, -838, -838, -838, 1327, 5131, 629, -838,
2227  -838, -838, -838, -838, -838, -838, 9479, 9479, -838, -838,
2228  -838, -838, -838, -838, -838, -838, -838, -838, 1196, 1086,
2229  1086, 597, 9479, 728, 12343, 541, -838, -838, -838, 197,
2230  -838, -838, 1603, -838, 12343, 1603, -838, -838, 1780, -838,
2231  -838, 9479, 736, 226, 9479, -838, 11935, 325, -838, 1086,
2232  10171, 617, -838, -838, -838, 716, 643, 1675, -838, -838,
2233  998, 402, 2403, 2403, 2403, 2403, 1997, 1997, 12485, 12423,
2234  2403, 2403, 12405, 12405, 1386, 1386, -838, 433, 11873, 1997,
2235  1997, 1322, 1322, 1401, 570, 570, 433, 433, 433, 3515,
2236  6539, 3787, 6657, -838, 162, -838, 628, 325, 481, -838,
2237  485, -838, -838, 3243, -838, -838, 1330, 226, 226, -838,
2238  2516, -838, -838, -838, -838, -838, 1086, 9361, 4071, 739,
2239  469, -838, 162, 630, 162, 755, 887, 7222, -838, 9007,
2240  760, -838, 522, -838, 6301, 6420, 632, 421, 424, 760,
2241  -838, -838, -838, -838, 19, 99, 634, 134, 135, 9361,
2242  7081, 641, 767, 12343, 94, -838, 629, 12343, 12343, 629,
2243  9479, 12281, -838, 325, 12343, -838, -838, -838, -838, 8181,
2244  8417, -838, -838, -838, 651, -838, -838, 207, 1015, 1086,
2245  1534, 520, -838, 739, 469, 652, 788, 800, 649, 88,
2246  -838, 663, -838, 433, 433, -838, 1066, 1086, 668, -838,
2247  -838, 2202, 2579, -838, 748, -838, 461, -838, -838, -838,
2248  677, 692, 697, -838, 703, 748, 697, 11811, -838, -838,
2249  1603, 4071, -838, -838, 12006, 9125, -838, -838, 10171, 7709,
2250  9597, 9479, 11309, 7827, 11395, 138, 9597, 9597, -838, 567,
2251  486, 8063, 9597, 9597, -838, 567, 107, 154, 4071, 5131,
2252  226, -838, 1086, 803, -838, -838, -838, -838, 11935, -838,
2253  754, -838, 4774, 835, -838, 9361, 836, -838, 9479, 9479,
2254  472, 9479, 9479, 842, 5277, 5277, 137, 607, -838, -838,
2255  -838, 9243, 4363, 629, 12343, -838, 5753, 325, -838, -838,
2256  -838, 273, 717, 715, 4071, 5131, -838, -838, -838, 721,
2257  -838, 1410, 1086, 9479, -838, 1603, -838, 1780, -838, 1780,
2258  -838, 1780, -838, -838, 9479, -838, 649, 649, 10285, -838,
2259  723, 461, 725, 10285, -838, 729, 730, -838, 858, 9479,
2260  12077, -838, -838, 12343, 3651, 3923, 734, 519, 537, 9479,
2261  9479, -838, -838, -838, -838, -838, 9597, -838, -838, -838,
2262  -838, -838, -838, -838, 867, 750, 5131, 4071, -838, -838,
2263  10399, 73, -838, -838, 5277, -838, -838, 73, -838, 9479,
2264  -838, 872, 879, -838, 12343, 416, -838, 8417, -838, 1656,
2265  884, 761, 1429, 1429, 1186, -838, 12343, 697, 764, 697,
2266  697, 12343, 776, 777, 852, 1009, 541, -838, -838, 1724,
2267  -838, 1009, 1603, -838, 1780, -838, -838, 12148, 547, 12343,
2268  12343, -838, -838, -838, -838, 772, 898, 862, -838, 1042,
2269  843, 846, 4071, -838, 4217, -838, -838, 5277, -838, -838,
2270  -838, -838, 267, -838, -838, -838, -838, 779, 779, 1429,
2271  787, -838, 1780, -838, -838, -838, -838, -838, -838, 11481,
2272  -838, 461, 541, -838, -838, 789, 792, 795, -838, 797,
2273  795, -838, -838, 882, 11567, 7827, 11653, 676, 522, 926,
2274  1656, -838, 1429, 779, 1429, 697, 798, 799, -838, 1603,
2275  -838, 1780, -838, 1780, -838, 1780, -838, -838, 739, 469,
2276  808, 85, 453, -838, -838, -838, -838, 779, -838, 795,
2277  804, 795, 795, 273, -838, 1780, -838, -838, -838, 795,
2278  -838
2279 };
2280 
2281  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
2282  Performed when YYTABLE does not specify something else to do. Zero
2283  means the default is an error. */
2284 static const yytype_int16 yydefact[] =
2285 {
2286  2, 0, 0, 1, 0, 0, 0, 0, 289, 0,
2287  0, 313, 316, 0, 0, 591, 333, 334, 335, 336,
2288  301, 266, 266, 484, 483, 485, 486, 593, 0, 10,
2289  0, 488, 487, 489, 475, 577, 477, 476, 479, 478,
2290  471, 472, 433, 434, 490, 491, 287, 0, 0, 0,
2291  0, 0, 0, 291, 605, 605, 84, 308, 0, 0,
2292  0, 0, 0, 0, 448, 0, 0, 0, 3, 591,
2293  6, 9, 27, 33, 533, 533, 45, 56, 55, 0,
2294  72, 0, 76, 86, 0, 50, 244, 0, 57, 306,
2295  280, 281, 431, 282, 283, 284, 429, 428, 460, 430,
2296  427, 482, 0, 285, 286, 266, 5, 8, 333, 334,
2297  301, 605, 409, 0, 109, 110, 287, 0, 0, 0,
2298  0, 533, 533, 112, 492, 337, 0, 482, 286, 0,
2299  329, 164, 174, 165, 161, 190, 191, 192, 193, 172,
2300  187, 180, 170, 169, 185, 168, 167, 163, 188, 162,
2301  175, 179, 181, 173, 166, 182, 189, 184, 183, 176,
2302  186, 171, 160, 178, 177, 159, 157, 158, 154, 155,
2303  156, 114, 116, 115, 149, 150, 127, 128, 129, 136,
2304  133, 135, 130, 131, 151, 152, 137, 138, 142, 145,
2305  146, 132, 134, 124, 125, 126, 139, 140, 141, 143,
2306  144, 147, 148, 153, 563, 51, 117, 118, 562, 0,
2307  0, 0, 54, 0, 0, 50, 0, 482, 0, 286,
2308  0, 0, 0, 108, 0, 348, 347, 0, 0, 482,
2309  286, 183, 176, 186, 171, 154, 155, 156, 114, 115,
2310  0, 119, 121, 20, 120, 451, 456, 455, 599, 602,
2311  591, 601, 0, 453, 0, 603, 600, 592, 575, 0,
2312  0, 0, 0, 261, 273, 70, 265, 605, 431, 605,
2313  567, 71, 69, 605, 255, 302, 68, 0, 254, 408,
2314  67, 591, 0, 594, 18, 0, 0, 217, 0, 218,
2315  205, 208, 298, 0, 0, 0, 591, 15, 591, 74,
2316  14, 0, 591, 0, 596, 596, 245, 0, 0, 596,
2317  565, 0, 0, 82, 0, 92, 99, 533, 465, 464,
2318  466, 467, 0, 463, 462, 435, 440, 439, 442, 0,
2319  0, 437, 444, 0, 446, 0, 458, 0, 469, 0,
2320  473, 474, 49, 232, 233, 4, 592, 0, 0, 0,
2321  0, 0, 0, 0, 540, 536, 535, 534, 537, 538,
2322  542, 554, 509, 510, 558, 557, 553, 533, 498, 0,
2323  502, 507, 605, 512, 605, 532, 0, 539, 541, 544,
2324  518, 0, 551, 518, 556, 518, 0, 516, 498, 0,
2325  396, 398, 0, 88, 0, 80, 77, 0, 0, 0,
2326  0, 0, 0, 0, 0, 0, 0, 0, 204, 207,
2327  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2328  0, 0, 0, 0, 0, 0, 588, 605, 587, 0,
2329  590, 589, 0, 413, 411, 307, 432, 0, 0, 402,
2330  61, 305, 326, 109, 110, 111, 473, 474, 498, 493,
2331  324, 0, 605, 0, 0, 0, 586, 585, 52, 0,
2332  605, 298, 339, 0, 338, 0, 0, 605, 0, 0,
2333  0, 0, 0, 0, 298, 0, 605, 0, 321, 0,
2334  122, 0, 0, 452, 454, 0, 0, 604, 569, 0,
2335  274, 574, 268, 0, 271, 262, 0, 270, 0, 263,
2336  0, 591, 0, 591, 605, 605, 256, 267, 591, 0,
2337  304, 48, 0, 0, 0, 0, 0, 0, 17, 591,
2338  296, 13, 592, 73, 292, 295, 299, 598, 246, 597,
2339  598, 248, 300, 566, 98, 90, 0, 85, 0, 0,
2340  605, 0, 533, 309, 393, 468, 0, 0, 443, 449,
2341  436, 438, 445, 447, 459, 470, 0, 0, 7, 21,
2342  22, 23, 24, 25, 46, 47, 500, 546, 0, 591,
2343  591, 518, 0, 0, 501, 0, 514, 561, 511, 0,
2344  515, 499, 0, 525, 547, 0, 528, 555, 0, 530,
2345  559, 0, 0, 605, 0, 28, 30, 0, 31, 591,
2346  0, 78, 89, 44, 34, 42, 0, 249, 194, 29,
2347  0, 286, 222, 227, 228, 229, 224, 226, 236, 237,
2348  230, 231, 203, 206, 234, 235, 32, 214, 593, 223,
2349  225, 219, 220, 221, 209, 210, 211, 212, 213, 578,
2350  583, 579, 584, 407, 266, 405, 0, 605, 578, 580,
2351  579, 581, 406, 266, 578, 579, 266, 605, 605, 35,
2352  249, 195, 41, 202, 59, 62, 0, 0, 0, 109,
2353  110, 113, 0, 0, 605, 0, 591, 0, 290, 605,
2354  605, 419, 605, 340, 582, 297, 0, 578, 579, 605,
2355  342, 314, 341, 317, 582, 297, 0, 578, 579, 0,
2356  0, 0, 0, 273, 0, 320, 570, 572, 571, 0,
2357  0, 275, 269, 605, 573, 568, 253, 251, 257, 258,
2358  260, 303, 595, 19, 0, 26, 201, 75, 16, 591,
2359  596, 91, 83, 95, 97, 0, 94, 96, 593, 0,
2360  461, 0, 450, 215, 216, 540, 356, 591, 349, 497,
2361  495, 0, 240, 331, 0, 508, 605, 560, 517, 545,
2362  518, 518, 518, 552, 518, 540, 518, 242, 332, 384,
2363  382, 0, 381, 380, 279, 0, 87, 81, 0, 0,
2364  0, 0, 0, 605, 0, 0, 0, 0, 404, 65,
2365  410, 258, 0, 0, 403, 63, 399, 58, 0, 0,
2366  605, 327, 0, 0, 410, 330, 564, 53, 420, 421,
2367  605, 422, 0, 605, 345, 0, 0, 343, 0, 0,
2368  410, 0, 0, 0, 0, 0, 410, 0, 123, 457,
2369  319, 0, 0, 272, 276, 264, 591, 605, 11, 293,
2370  247, 93, 0, 386, 0, 0, 310, 441, 357, 354,
2371  543, 0, 591, 0, 513, 0, 521, 0, 523, 0,
2372  529, 0, 526, 531, 0, 379, 593, 593, 504, 505,
2373  605, 605, 364, 0, 549, 364, 364, 362, 0, 0,
2374  277, 79, 43, 250, 578, 579, 0, 578, 579, 0,
2375  0, 40, 199, 39, 200, 66, 0, 37, 197, 38,
2376  198, 64, 400, 401, 0, 0, 0, 0, 494, 325,
2377  0, 0, 424, 346, 0, 12, 426, 0, 311, 0,
2378  312, 0, 0, 322, 275, 605, 252, 259, 392, 0,
2379  0, 0, 0, 0, 352, 496, 241, 518, 518, 518,
2380  518, 243, 0, 0, 0, 503, 0, 360, 361, 364,
2381  372, 548, 0, 375, 0, 377, 397, 278, 410, 239,
2382  238, 36, 196, 414, 412, 0, 0, 0, 423, 0,
2383  100, 107, 0, 425, 0, 315, 318, 0, 416, 417,
2384  415, 390, 593, 388, 391, 395, 394, 358, 355, 0,
2385  350, 522, 0, 519, 524, 527, 385, 383, 298, 0,
2386  506, 605, 0, 363, 370, 364, 364, 364, 550, 364,
2387  364, 60, 328, 106, 0, 605, 0, 605, 605, 0,
2388  0, 387, 0, 353, 0, 518, 582, 297, 359, 0,
2389  367, 0, 369, 0, 376, 0, 373, 378, 103, 105,
2390  0, 578, 579, 418, 344, 323, 389, 351, 520, 364,
2391  364, 364, 364, 101, 368, 0, 365, 371, 374, 364,
2392  366
2393 };
2394 
2395  /* YYPGOTO[NTERM-NUM]. */
2396 static const yytype_int16 yypgoto[] =
2397 {
2398  -838, -838, -838, 440, -838, 53, -838, -318, 202, -838,
2399  75, -838, -211, -338, 757, 82, 152, -838, -6, -30,
2400  -838, -616, -838, 30, 941, -214, -3, -37, -221, -466,
2401  -29, 1575, -53, 950, 9, -21, -838, -838, 15, -838,
2402  1144, -838, 347, 64, -252, -369, 96, 89, -838, -374,
2403  -227, -119, 98, -371, 192, -838, -838, -838, -838, -838,
2404  -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
2405  -838, 8, -190, -458, -61, -611, -838, -838, -838, 199,
2406  282, -838, -561, -838, -838, -219, -838, -60, -838, -838,
2407  174, -838, -838, -838, -83, -838, -838, -474, -838, -58,
2408  -838, -838, -838, -838, -838, -15, 43, -193, -838, -838,
2409  -838, -838, -413, -268, -838, 722, -838, -838, -838, 40,
2410  -838, -838, -838, 1599, 1788, 966, 1376, -838, -838, 578,
2411  259, 42, 401, 35, -838, -838, -838, 284, 7, -242,
2412  -247, -837, -662, -218, -838, 270, -639, -551, -805, 28,
2413  -541, -838, -519, -838, 271, -363, -838, -838, -838, 39,
2414  735, -468, 615, 647, -838, -838, -50, -838, 33, -7,
2415  582, -274, -90, -24, -36, -2
2416 };
2417 
2418  /* YYDEFGOTO[NTERM-NUM]. */
2419 static const yytype_int16 yydefgoto[] =
2420 {
2421  -1, 1, 2, 68, 69, 70, 285, 459, 460, 296,
2422  297, 512, 72, 604, 73, 74, 75, 677, 213, 76,
2423  77, 665, 800, 78, 79, 298, 80, 81, 82, 537,
2424  83, 214, 123, 124, 241, 242, 243, 700, 642, 207,
2425  85, 303, 608, 643, 275, 502, 503, 276, 277, 266,
2426  495, 530, 647, 598, 86, 210, 301, 729, 302, 317,
2427  739, 221, 824, 222, 825, 699, 977, 668, 666, 907,
2428  454, 288, 463, 691, 816, 817, 228, 747, 932, 1003,
2429  950, 866, 771, 772, 867, 842, 982, 983, 543, 846,
2430  391, 593, 88, 89, 441, 658, 657, 486, 980, 680,
2431  810, 911, 915, 90, 91, 92, 330, 331, 547, 93,
2432  94, 95, 548, 251, 252, 253, 481, 96, 97, 98,
2433  324, 99, 100, 217, 218, 103, 219, 450, 667, 448,
2434  369, 370, 371, 869, 870, 372, 373, 374, 758, 583,
2435  376, 377, 378, 379, 568, 380, 381, 382, 874, 875,
2436  383, 384, 385, 386, 387, 576, 209, 455, 308, 505,
2437  489, 270, 129, 672, 645, 458, 453, 432, 509, 843,
2438  510, 528, 255, 256, 257, 300
2439 };
2440 
2441  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
2442  positive, shift that token. If negative, reduce the rule whose
2443  number is the opposite. If YYTABLE_NINF, syntax error. */
2444 static const yytype_int16 yytable[] =
2445 {
2446  106, 268, 268, 283, 220, 268, 435, 284, 702, 250,
2447  87, 580, 87, 126, 126, 693, 205, 216, 216, 278,
2448  282, 227, 206, 216, 216, 216, 609, 313, 216, 206,
2449  471, 531, 715, 346, 763, 533, 342, 429, 431, 268,
2450  268, 760, 499, 206, -103, 396, 263, 263, 254, 299,
2451  263, 573, 306, 310, 244, 269, 269, 107, 646, 269,
2452  87, 549, 715, 761, 314, 445, 764, 323, 244, 813,
2453  544, 592, 732, 206, 216, 706, 436, 71, 823, 71,
2454  519, 375, 375, 673, 849, 274, 279, 121, 121, 462,
2455  314, 536, 984, 305, 309, 121, 798, 799, 686, 659,
2456  662, -102, 345, 333, 335, 337, 339, 696, -100, 278,
2457  462, 280, 265, 271, 267, 267, 272, 844, 267, 286,
2458  570, -484, 712, 464, -105, 216, 712, 87, 375, 375,
2459  464, 873, -575, 433, 777, 566, 675, 551, 121, -480,
2460  551, 586, 551, 589, 551, 433, 551, 1008, 496, -107,
2461  500, 332, 304, -106, 326, 327, 3, 122, 122, -102,
2462  -104, -95, -101, -578, 121, 122, 468, 487, -100, 439,
2463  281, 735, 292, 895, 249, 274, 279, 477, -484, 901,
2464  599, 42, 390, 984, 43, 527, 603, 392, 245, -92,
2465  -483, 246, 247, 439, 440, 889, -475, 125, 125, 567,
2466  -102, 845, 430, -102, -102, 125, 328, 329, 122, 245,
2467  760, -475, 246, 247, 393, 472, 473, 426, 87, 248,
2468  549, 249, 340, 341, 1008, -92, 603, 603, 59, 216,
2469  216, -102, 761, -102, 122, -485, 494, 397, 516, 906,
2470  248, -97, 249, -579, -575, 434, -475, -483, 125, 323,
2471  -575, 876, 715, -475, 295, 206, 487, 434, 268, 428,
2472  522, 890, 268, 273, 541, 497, -99, 497, 529, 529,
2473  -98, 506, 990, 529, 125, 535, -94, -96, 499, -93,
2474  742, 216, -481, 482, 552, 216, 581, 326, 327, 216,
2475  216, 299, -485, -480, 87, 738, 833, 438, 437, -410,
2476  364, 87, 87, 263, 763, 769, 273, 263, 809, 87,
2477  873, -108, 881, 873, 978, -593, 269, 536, -593, -593,
2478  314, 295, -100, -486, 375, 365, -107, -488, -73, 521,
2479  -487, -489, -475, 281, 389, -479, 938, 449, 456, 328,
2480  329, 559, 560, 561, 562, 712, 712, -99, 249, -87,
2481  803, 461, 770, 551, 87, 216, 216, 216, 216, 87,
2482  216, 216, 595, -410, 759, 546, 601, 605, 518, 923,
2483  577, 504, 577, 507, 375, 267, 524, 87, -410, 536,
2484  -486, 389, 692, 692, -488, 719, 720, -487, -489, -475,
2485  873, 299, -479, 854, 121, 457, 465, 87, 671, 558,
2486  216, 794, 87, 314, 796, 610, 443, 605, 605, 1020,
2487  444, -410, 268, -410, 886, 249, -337, 712, 352, 353,
2488  -410, 71, 794, 469, 483, 506, 563, 246, 247, 474,
2489  1006, -337, 487, 1009, 812, 216, 485, 268, 742, 487,
2490  478, 549, 480, 470, 651, 610, 610, 651, 891, 485,
2491  506, 979, 268, 878, 897, 899, 840, 263, 681, 715,
2492  216, 268, 87, 216, 122, 506, -337, 494, 651, -104,
2493  283, 87, -107, -337, 506, 216, 517, 121, 775, 87,
2494  904, 268, 263, 651, 216, 268, 835, 709, 514, 87,
2495  597, 723, 651, 652, 438, 597, 295, 263, 488, 731,
2496  517, 535, 497, 497, 125, -106, 263, 947, 948, 513,
2497  1050, 106, 268, 821, 832, 268, 822, 652, 856, 858,
2498  860, 87, 862, -107, 863, 268, 930, 206, 791, -106,
2499  87, 651, 652, 759, 413, 713, 718, 520, 506, 815,
2500  812, 652, -102, -72, 314, -104, 314, 122, 216, 375,
2501  -98, 526, 244, 712, 534, 87, 651, 536, 961, -297,
2502  784, 446, 447, 535, 919, 742, 730, 532, -104, 603,
2503  263, -104, -104, 792, -297, 603, 801, 793, 896, 538,
2504  652, 603, 603, 704, 556, 831, 572, 125, 71, 966,
2505  557, 773, 754, -101, 500, 578, 295, 728, 575, -104,
2506  425, -104, -102, 579, 283, 652, -104, -101, 314, -297,
2507  835, 792, 582, -579, 464, 426, -297, 105, 121, 105,
2508  121, 785, 585, -94, 105, 105, 587, -96, -93, 793,
2509  105, 105, 105, 759, 690, 105, 588, 571, 1028, 896,
2510  -102, 759, 362, 363, 364, 497, 1040, 942, 943, 451,
2511  427, 278, 368, 388, 278, 773, 773, 428, -104, 466,
2512  590, 802, 602, 591, 426, 682, 664, 105, -101, 365,
2513  626, 413, 278, 689, 426, 216, 87, 811, 814, 828,
2514  814, 105, 121, 701, 678, 603, 807, 814, 122, 679,
2515  122, 683, 206, 827, 529, 991, 993, 994, 995, 452,
2516  545, 422, 423, 424, 268, 268, 428, 216, 788, 467,
2517  -576, 497, 908, 902, 283, 206, 428, 274, 927, 705,
2518  274, 972, 245, -87, 717, 246, 247, 974, 125, 722,
2519  125, 759, 105, 789, 105, 725, 788, 692, 274, 751,
2520  244, 535, 795, 753, 245, 797, -287, 246, 247, 741,
2521  605, 768, 122, 248, 577, 249, 605, 893, 837, 778,
2522  779, -287, 605, 605, 780, -582, 212, 212, 268, 790,
2523  805, 804, 212, 820, -479, 826, 268, 597, 812, 87,
2524  829, 506, 830, 1048, 661, 663, 314, 87, 610, -479,
2525  838, 216, 125, 841, 610, 216, -287, 249, 773, 651,
2526  610, 610, 847, -287, 759, 566, 87, 87, 912, 917,
2527  851, 916, 868, 263, -578, 759, 661, 663, 909, 855,
2528  87, 464, -576, 216, -479, 105, -579, 464, -576, -582,
2529  837, -479, 87, 87, 857, 497, 105, 105, 748, 859,
2530  87, 475, 283, 283, -582, 861, 757, 910, 652, 914,
2531  757, 918, 87, 87, 882, 762, 426, 920, 766, 756,
2532  121, 929, 928, 933, 726, 946, 605, 949, 577, 577,
2533  515, 952, 954, 956, 442, 958, 945, -582, -578, -582,
2534  523, 951, 963, -578, 525, 426, -582, 975, 105, 964,
2535  -579, 476, 105, -578, 976, 539, 105, 105, 428, 985,
2536  986, 105, 996, 997, 610, -579, 992, 998, 105, 105,
2537  426, 1011, 268, 1012, 87, 87, 105, 1013, 969, 1016,
2538  467, 1022, 87, 814, 352, 353, -578, 428, -578, 1024,
2539  122, 1029, -578, -482, 1031, -578, -286, 1033, -579, 1035,
2540  -579, 1045, -578, -579, -579, 540, 1055, -579, -482, 1053,
2541  121, -286, 428, 724, 225, 121, 130, 1044, 283, 1043,
2542  1046, 105, 105, 105, 105, 105, 105, 105, 105, 865,
2543  125, 903, -298, 208, 484, 1021, 755, 1005, 212, 212,
2544  87, 1000, 87, -482, 105, 87, -286, -298, 868, 0,
2545  -482, 868, 121, -286, 868, 334, 868, 326, 327, 577,
2546  268, 905, 245, 498, 105, 246, 247, 105, 0, 105,
2547  0, 0, 105, 506, 913, 681, 814, 0, 0, 0,
2548  122, 0, -298, 216, 0, 122, 921, 922, 0, -298,
2549  0, 651, 0, 248, 925, 249, 0, 0, 508, 511,
2550  872, 877, 105, 0, 868, 263, 0, 931, 0, 328,
2551  329, 0, 105, 105, 871, 347, 348, 349, 350, 351,
2552  125, 0, 122, 0, 0, 125, 0, 105, 0, 105,
2553  105, 868, 644, 868, 0, 868, 653, 868, 105, 656,
2554  652, 0, 105, 716, 0, 0, 105, 0, 782, 0,
2555  721, 105, 0, 0, 0, 0, 105, 868, 0, 999,
2556  674, 727, 125, 426, 212, 212, 212, 212, 965, 564,
2557  565, 0, 0, 644, 426, 653, 973, 745, 0, 355,
2558  356, 357, 358, 0, 674, 937, 0, 939, 105, 0,
2559  0, 940, 1014, 892, 894, 359, 0, 105, 783, 898,
2560  900, 553, 0, 326, 327, 428, 0, 426, 0, 452,
2561  0, 749, 750, 215, 215, 105, 428, 953, 955, 215,
2562  264, 264, 105, 674, 264, 892, 894, 0, 898, 900,
2563  0, 0, 0, 0, 1017, 0, 1018, 0, 0, 1019,
2564  0, 776, 1015, 0, 0, 0, 0, 0, 674, 428,
2565  0, 287, 289, 290, 291, 328, 329, 0, 264, 307,
2566  0, 245, 987, 988, 246, 247, 0, 0, 848, 0,
2567  343, 344, 676, 0, 325, 326, 327, 757, 0, 0,
2568  877, 0, 1007, 877, 1010, 877, 336, 326, 327, 0,
2569  1001, 1004, 248, 871, 249, 0, 871, 745, 871, 355,
2570  356, 357, 358, 962, 338, 326, 327, 745, 0, 355,
2571  356, 357, 358, 0, 0, 359, 0, 0, 806, 1023,
2572  0, 215, 1025, 0, 0, 359, 962, 328, 329, 545,
2573  326, 327, 0, 877, 0, 0, 0, 0, 0, 328,
2574  329, 0, 105, 105, 0, 0, 871, 1030, 1032, 1034,
2575  360, 1036, 1037, 0, 1047, 0, 746, 328, 329, 1049,
2576  877, 1051, 877, 0, 877, 1052, 877, 550, 326, 327,
2577  0, 839, 0, 871, 105, 871, 0, 871, 0, 871,
2578  0, 0, 328, 329, 0, 1059, 877, 0, 989, 850,
2579  -605, 1054, 1056, 1057, 1058, 0, 0, 0, 0, 871,
2580  0, 1060, 0, -605, -605, -605, -605, -605, -605, 0,
2581  -605, 0, 0, 0, 0, 0, -605, -605, 0, 0,
2582  328, 329, 554, 326, 327, 215, 215, -605, -605, 0,
2583  -605, -605, -605, -605, -605, 0, 0, 0, 104, 0,
2584  104, 128, 128, 555, 326, 327, 105, 0, 0, 230,
2585  740, 326, 327, 0, 105, 105, 0, 0, 105, 0,
2586  0, 105, 105, 490, 491, 492, 343, 105, 105, 0,
2587  410, 411, 0, 105, 105, 328, 329, 264, 926, 0,
2588  -605, 264, 0, 413, 212, 215, 215, 105, 104, 644,
2589  105, 653, 316, 0, 935, -605, 328, 329, 0, 105,
2590  105, 0, 0, 328, 329, -605, 0, 105, -605, -605,
2591  419, 420, 421, 422, 423, 424, 212, 0, 316, 105,
2592  105, 745, 0, 355, 356, 357, 358, 0, -605, -605,
2593  0, 0, 0, 0, 273, -605, -605, -605, -605, 359,
2594  745, 0, 355, 356, 357, 358, 0, 413, 0, 410,
2595  411, 215, 215, 215, 215, 104, 215, 215, 359, 0,
2596  0, 0, 413, 0, 360, 0, 0, 0, 0, 0,
2597  934, 105, 0, 0, 574, 420, 421, 422, 423, 424,
2598  0, 105, 105, 360, 0, 584, 0, 0, 0, 105,
2599  420, 421, 422, 423, 424, 0, 596, 0, 0, 0,
2600  0, 607, 612, 613, 614, 615, 616, 617, 618, 619,
2601  620, 621, 622, 623, 624, 625, 0, 627, 628, 629,
2602  630, 631, 632, 633, 634, 635, 636, 637, 638, 0,
2603  0, 264, 212, 0, 0, 0, 0, 84, 0, 84,
2604  0, 660, 660, 0, 0, 0, 104, 105, 226, 105,
2605  0, -294, 105, 0, -294, -294, 264, 0, 0, 215,
2606  0, 101, 0, 101, 127, 127, 127, 0, 0, 660,
2607  0, 264, 229, 660, 660, 0, 0, 0, 0, 0,
2608  264, -294, -294, 0, -294, 0, 0, 84, 0, 703,
2609  105, 0, 0, 707, 0, 0, 0, 708, 0, 0,
2610  711, 0, 714, 0, 307, 291, 0, 0, 0, 245,
2611  0, 101, 246, 247, 354, 315, 355, 356, 357, 358,
2612  0, 660, 104, 674, 0, 0, 0, 0, 0, 104,
2613  104, 711, 359, 0, 307, 0, 494, 104, 0, 0,
2614  248, 315, 249, 0, 264, 0, 0, 0, 316, 0,
2615  0, 0, 0, 0, 84, 0, 0, 360, 0, 0,
2616  743, 744, 0, 361, 362, 363, 364, 981, 0, 355,
2617  356, 357, 358, 0, 0, 0, 752, 0, 101, 781,
2618  0, 0, 104, 0, 0, 359, 0, 104, 0, 0,
2619  0, 365, 0, 0, 366, 767, 0, 0, 774, 0,
2620  0, 0, 0, 0, 0, 104, 0, 398, 399, 400,
2621  401, 402, 403, 404, 405, 406, 407, 408, 409, 0,
2622  0, 0, 0, 410, 411, 104, 0, 0, 0, 0,
2623  104, 316, 0, 611, 0, 354, 413, 355, 356, 357,
2624  358, 0, 0, 0, 0, 84, 0, 0, 0, 0,
2625  102, 0, 102, 359, 0, 0, 0, 414, 0, 415,
2626  416, 417, 418, 419, 420, 421, 422, 423, 424, 101,
2627  0, 215, 0, 611, 611, 0, 0, -273, 360, 0,
2628  0, 0, 0, 808, 361, 362, 363, 364, 0, 0,
2629  104, 765, 0, 355, 356, 357, 358, 0, 0, 104,
2630  102, 0, 0, 215, 0, 0, 0, 104, 0, 359,
2631  0, 0, 365, 0, 834, 366, 0, 104, 0, 0,
2632  0, 84, 0, 711, 307, 0, 1002, 0, 84, 84,
2633  0, 0, 0, 0, 360, 0, 84, 0, 0, 0,
2634  0, 362, 363, 364, 0, 101, 0, 0, 0, 104,
2635  0, 0, 101, 101, 0, 0, 0, 0, 104, 0,
2636  101, 0, 0, 0, 0, 0, 0, 102, 365, 0,
2637  0, 315, 316, 0, 316, 0, 0, 0, 0, 880,
2638  0, 84, 0, 104, 660, 883, 84, 264, 0, 0,
2639  660, 660, 0, 0, 0, 711, 660, 660, 0, 0,
2640  0, 0, 0, 0, 84, 101, 0, 0, 0, 0,
2641  101, 0, 0, 0, 0, 0, 0, 0, 0, 215,
2642  0, 0, 660, 660, 84, 660, 660, 0, 101, 84,
2643  0, 0, 606, 0, 0, 924, 316, 0, 0, 0,
2644  291, 0, 0, 0, 0, 0, 0, 0, 101, 0,
2645  0, 0, 0, 101, 315, 0, 0, 936, 102, 354,
2646  0, 355, 356, 357, 358, 0, 0, 0, 941, 0,
2647  0, 0, 606, 606, 0, 0, 0, 359, 0, 0,
2648  0, 0, 0, 957, 0, 0, 0, 0, 0, 84,
2649  0, 0, 0, 959, 960, 0, 0, 0, 84, 0,
2650  660, 0, 360, 0, 104, 0, 84, 0, 361, 362,
2651  363, 364, 0, 101, 0, 0, 84, 0, 0, 0,
2652  0, 0, 101, 660, 0, 0, 0, 0, 0, 0,
2653  101, 307, 0, 0, 102, 0, 365, 0, 0, 366,
2654  101, 102, 102, 0, 0, 410, 411, 0, 84, 102,
2655  0, 0, 367, 0, 0, 0, 0, 84, 413, 354,
2656  0, 355, 356, 357, 358, 0, 0, 0, 0, 0,
2657  0, 0, 101, 0, 0, 0, 0, 359, 0, 0,
2658  0, 101, 84, 417, 418, 419, 420, 421, 422, 423,
2659  424, 0, 0, 0, 102, 315, 0, 315, 0, 102,
2660  0, 0, 360, 0, 0, 0, 101, 104, 361, 362,
2661  363, 364, 0, 0, 316, 104, 611, 102, 0, 264,
2662  0, 0, 611, 0, 0, 0, 0, 0, 611, 611,
2663  0, 0, 0, 0, 104, 104, 365, 102, 0, 366,
2664  0, 0, 102, 0, 0, 102, 0, 0, 104, 0,
2665  0, 0, 542, 0, 0, 0, 0, 0, 0, 315,
2666  104, 104, 0, 0, 0, 0, 0, 0, 104, 0,
2667  0, 354, 0, 355, 356, 357, 358, 0, 0, 0,
2668  104, 104, 0, 0, 0, 102, 102, 0, 0, 359,
2669  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2670  0, 0, 102, 84, 128, 569, 0, 0, 0, 128,
2671  0, 102, 0, 354, 360, 355, 356, 357, 358, 102,
2672  361, 362, 363, 364, 0, 0, 0, 101, 0, 102,
2673  0, 359, 611, 0, 0, 0, 0, 0, 0, 0,
2674  0, 0, 104, 104, 0, 0, 971, 852, 365, 0,
2675  104, 366, 0, 0, 0, 0, 360, 0, 0, 0,
2676  0, 102, 361, 362, 363, 364, 0, 0, 0, 0,
2677  102, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2678  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2679  365, 0, 0, 366, 0, 102, 0, 0, 0, 0,
2680  0, 0, 0, 0, 0, 0, 84, 0, 104, 0,
2681  104, 0, 0, 104, 84, 606, 0, 0, 0, 0,
2682  0, 606, 0, 0, 0, 0, 0, 606, 606, 0,
2683  101, 0, 0, 84, 84, 0, 0, 315, 101, 0,
2684  0, 0, 0, 0, 0, 0, 0, 84, 0, 0,
2685  0, 0, 0, 0, 0, 0, 0, 101, 101, 84,
2686  84, 0, 0, 0, 0, 0, 0, 84, 0, 0,
2687  0, 101, 0, 0, 0, 0, 0, 0, 0, 84,
2688  84, 0, 0, 101, 101, 0, 0, 0, 0, 0,
2689  0, 101, 0, 0, 0, 0, 0, 0, 0, 0,
2690  0, 0, 0, 101, 101, 0, 0, 0, 0, 0,
2691  0, 0, 0, 0, 0, 0, 102, 0, 0, 0,
2692  0, 0, 0, 0, 0, 0, 0, 127, 0, 0,
2693  0, 606, 127, 0, 0, -606, -606, -606, -606, 402,
2694  403, 84, 84, -606, -606, 968, 0, 0, 0, 84,
2695  0, 410, 411, 0, 0, 0, 0, 0, 0, 0,
2696  0, 0, 0, 0, 413, 101, 101, 0, 0, 970,
2697  0, 0, 0, 101, 0, 0, 0, 0, 0, 0,
2698  0, 0, 0, 0, 0, 0, 0, 415, 416, 417,
2699  418, 419, 420, 421, 422, 423, 424, 0, 0, 0,
2700  0, 0, 0, 0, 0, 0, 0, 84, 0, 84,
2701  0, 0, 84, 0, 0, 0, 0, 0, 0, 102,
2702  781, 0, 0, 0, 0, 0, 0, 102, 102, 0,
2703  0, 101, 0, 101, 102, 0, 101, 0, 0, 0,
2704  102, 102, 0, 0, 0, 0, 102, 102, 398, 399,
2705  400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
2706  102, 0, 0, 0, 410, 411, 0, 0, 0, 0,
2707  0, 0, 102, 102, 0, 0, 0, 413, 0, 0,
2708  102, 0, 0, 853, 0, 0, 0, 0, 0, 0,
2709  0, 0, 102, 102, 0, 0, 0, 0, 414, 0,
2710  415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
2711  0, 398, 399, 400, 401, 402, 403, 404, 405, 406,
2712  407, 408, 409, 0, 0, 0, 0, 410, 411, 0,
2713  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2714  413, 0, 0, 0, 102, 0, 0, 0, 0, 0,
2715  0, 0, 0, 0, 102, 102, 0, 0, 0, 0,
2716  0, 414, 102, 415, 416, 417, 418, 419, 420, 421,
2717  422, 423, 424, 0, 0, 0, 0, 0, 0, 0,
2718  0, 0, -605, 4, 0, 5, 6, 7, 8, 9,
2719  10, 11, 12, 13, 14, 0, 0, 0, 0, 0,
2720  0, 15, 0, 16, 17, 18, 19, 0, 0, 0,
2721  0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2722  102, 27, 102, 0, 0, 102, 0, 28, 29, 30,
2723  31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
2724  40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
2725  0, 46, 47, 48, 0, 0, 0, 0, 0, 0,
2726  0, 0, 0, 0, 0, 0, 49, 50, 0, 0,
2727  0, 0, 0, 51, 0, 0, 52, 53, 0, 54,
2728  55, 0, 56, 0, 0, 0, 57, 0, 58, 59,
2729  60, 0, 61, 62, 63, -288, 64, -605, 0, 0,
2730  -605, -605, 0, 0, 0, 0, 0, 0, -288, -288,
2731  -288, -288, -288, -288, 0, -288, 65, 66, 67, 0,
2732  0, 0, -288, -288, -288, 0, 0, 0, -605, 0,
2733  -605, 0, -288, -288, 0, -288, -288, -288, -288, -288,
2734  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2735  0, 0, -288, 0, 0, 0, 0, 0, 0, 0,
2736  0, 0, 0, 0, 0, 0, 0, -288, -288, -288,
2737  -288, -288, -288, -288, -288, -288, -288, -288, -288, 0,
2738  0, 0, 0, -288, -288, -288, 0, 0, -288, 0,
2739  0, 0, 0, 0, -288, 0, -288, 0, 0, 0,
2740  -288, 0, 0, 0, 0, 0, 0, 0, -288, 0,
2741  -288, 0, 0, -288, -288, 0, 0, -288, -288, -288,
2742  -288, -288, -288, -288, -288, -288, -288, -288, -288, 0,
2743  0, -409, 0, 0, -288, -288, -288, -288, 0, 0,
2744  -288, -288, -288, -288, -409, -409, -409, -409, -409, -409,
2745  0, -409, 0, 0, 0, 0, 0, -409, -409, -409,
2746  0, 0, 0, 0, 0, 0, 0, 0, -409, -409,
2747  0, -409, -409, -409, -409, -409, 0, 0, 0, 0,
2748  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2749  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2750  0, 0, 0, -409, -409, -409, -409, -409, -409, -409,
2751  -409, -409, -409, -409, -409, 0, 0, 0, 0, -409,
2752  -409, -409, 0, 0, -409, 0, 0, 0, 0, 0,
2753  -409, 0, -409, 0, 0, 0, -409, 0, 0, 0,
2754  0, 0, 0, 0, 0, 0, -409, 0, 0, -409,
2755  -409, 0, 0, -409, 0, -409, -409, -409, -409, -409,
2756  -409, -409, -409, -409, -409, 0, 0, -475, 0, -409,
2757  -409, -409, -409, -409, 0, 273, -409, -409, -409, -409,
2758  -475, -475, -475, -475, -475, -475, 0, -475, 0, 0,
2759  0, 0, 0, 0, -475, -475, 0, 0, 0, 0,
2760  0, 0, 0, 0, -475, -475, 0, -475, -475, -475,
2761  -475, -475, 0, 0, 0, 0, 0, 0, 0, 0,
2762  0, 0, 0, 0, 488, 0, 0, 0, 0, 0,
2763  0, 0, 0, 0, 0, 0, 0, 0, 0, -475,
2764  -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
2765  -475, 0, 0, 0, 0, -475, -475, -475, 0, -475,
2766  -475, 0, 0, 0, 0, 0, -475, 0, -475, 0,
2767  0, 0, -475, 0, 0, 0, 0, 0, 0, 0,
2768  0, 0, -475, 0, 0, -475, -475, 0, -475, -475,
2769  0, -475, -475, -475, -475, -475, -475, -475, -475, -475,
2770  -475, 0, 0, -605, 0, 0, -475, -475, -475, -475,
2771  0, 0, -475, -475, -475, -475, -605, -605, -605, -605,
2772  -605, -605, 0, -605, 0, 0, 0, 0, 0, -605,
2773  -605, -605, 0, 0, 0, 0, 0, 0, 0, 0,
2774  -605, -605, 0, -605, -605, -605, -605, -605, 0, 0,
2775  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777  0, 0, 0, 0, 0, -605, -605, -605, -605, -605,
2778  -605, -605, -605, -605, -605, -605, -605, 0, 0, 0,
2779  0, -605, -605, -605, 0, 0, -605, 0, 0, 0,
2780  0, 0, -605, 0, -605, 0, 0, 0, -605, 0,
2781  0, 0, 0, 0, 0, 0, 0, 0, -605, 0,
2782  0, -605, -605, 0, 0, -605, 0, -605, -605, -605,
2783  -605, -605, -605, -605, -605, -605, -605, 0, 0, -605,
2784  0, -605, -605, -605, -605, -605, 0, 273, -605, -605,
2785  -605, -605, -605, -605, -605, -605, -605, -605, 0, -605,
2786  0, 0, 0, 0, 0, 0, -605, -605, 0, 0,
2787  0, 0, 0, 0, 0, 0, -605, -605, 0, -605,
2788  -605, -605, -605, -605, 0, 0, 0, 0, 0, 0,
2789  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2790  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791  0, -605, -605, -605, -605, -605, -605, -605, -605, -605,
2792  -605, -605, -605, 0, 0, 0, 0, -605, -605, -605,
2793  0, 0, -605, 0, 0, 0, 0, 0, -605, 0,
2794  -605, 0, 0, 0, -605, 0, 0, 0, 0, 0,
2795  0, 0, 0, 0, -605, 0, 0, -605, -605, 0,
2796  0, -605, 0, -605, -605, -605, -605, -605, -605, -605,
2797  -605, -605, -605, 0, 0, -582, 0, 0, -605, -605,
2798  -605, -605, 0, 273, -605, -605, -605, -605, -582, -582,
2799  -582, 0, -582, -582, 0, -582, 0, 0, 0, 0,
2800  0, -582, 0, 0, 0, 0, 0, 0, 0, 0,
2801  0, 0, -582, -582, 0, -582, -582, -582, -582, -582,
2802  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2804  0, 0, 0, 0, 0, 0, 0, -582, -582, -582,
2805  -582, -582, -582, -582, -582, -582, -582, -582, -582, 0,
2806  0, 0, 0, -582, -582, -582, 0, 786, -582, 0,
2807  0, 0, 0, 0, 0, 0, -582, 0, 0, 0,
2808  -582, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2809  -582, 0, 0, -582, -582, 0, -103, -582, 0, -582,
2810  -582, -582, -582, -582, -582, -582, -582, -582, -582, 0,
2811  0, -582, 0, -582, -582, -582, 0, -95, 0, 0,
2812  -582, -582, -582, -582, -582, -582, -582, 0, -582, -582,
2813  0, -582, 0, 0, 0, 0, 0, -582, 0, 0,
2814  0, 0, 0, 0, 0, 0, 0, 0, -582, -582,
2815  0, -582, -582, -582, -582, -582, 0, 0, 0, 0,
2816  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2817  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2818  0, 0, 0, -582, -582, -582, -582, -582, -582, -582,
2819  -582, -582, -582, -582, -582, 0, 0, 0, 0, -582,
2820  -582, -582, 0, 786, -582, 0, 0, 0, 0, 0,
2821  0, 0, -582, 0, 0, 0, -582, 0, 0, 0,
2822  0, 0, 0, 0, 0, 0, -582, 0, 0, -582,
2823  -582, 0, -103, -582, 0, -582, -582, -582, -582, -582,
2824  -582, -582, -582, -582, -582, 0, 0, -297, 0, -582,
2825  -582, -582, 0, -582, 0, 0, -582, -582, -582, -582,
2826  -297, -297, -297, 0, -297, -297, 0, -297, 0, 0,
2827  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2828  0, 0, 0, 0, -297, -297, 0, -297, -297, -297,
2829  -297, -297, 0, 0, 0, 0, 0, 0, 0, 0,
2830  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2831  0, 0, 0, 0, 0, 0, 0, 0, 0, -297,
2832  -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
2833  -297, 0, 0, 0, 0, -297, -297, -297, 0, 787,
2834  -297, 0, 0, 0, 0, 0, 0, 0, -297, 0,
2835  0, 0, -297, 0, 0, 0, 0, 0, 0, 0,
2836  0, 0, -297, 0, 0, -297, -297, 0, -105, -297,
2837  0, -297, -297, -297, -297, -297, -297, -297, -297, -297,
2838  -297, 0, 0, -297, 0, 0, -297, -297, 0, -97,
2839  0, 0, -297, -297, -297, -297, -297, -297, -297, 0,
2840  -297, -297, 0, -297, 0, 0, 0, 0, 0, 0,
2841  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2842  -297, -297, 0, -297, -297, -297, -297, -297, 0, 0,
2843  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2844  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2845  0, 0, 0, 0, 0, -297, -297, -297, -297, -297,
2846  -297, -297, -297, -297, -297, -297, -297, 0, 0, 0,
2847  0, -297, -297, -297, 0, 787, -297, 0, 0, 0,
2848  0, 0, 0, 0, -297, 0, 0, 0, -297, 0,
2849  0, 0, 0, 0, 0, 0, 0, 0, -297, 0,
2850  0, -297, -297, 0, -105, -297, 0, -297, -297, -297,
2851  -297, -297, -297, -297, -297, -297, -297, 0, 0, 0,
2852  0, 0, -297, -297, 0, -297, 0, 0, -297, -297,
2853  -297, -297, 293, 0, 5, 6, 7, 8, 9, 10,
2854  11, 12, 13, 14, -605, -605, -605, 0, 0, -605,
2855  15, 0, 16, 17, 18, 19, 0, 0, 0, 0,
2856  0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2857  27, 0, 0, 0, 0, 0, 28, 0, 30, 31,
2858  32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
2859  41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
2860  46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
2861  0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
2862  0, 0, 51, 0, 0, 52, 53, 0, 54, 55,
2863  0, 56, 0, 0, 0, 57, 0, 58, 59, 60,
2864  0, 61, 62, 63, 0, 64, -605, 0, 0, -605,
2865  -605, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2866  0, 0, 0, 0, 0, 65, 66, 67, 0, 0,
2867  0, 0, 0, 0, 0, 0, 0, -605, 293, -605,
2868  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2869  0, 0, -605, 0, -605, -605, 15, 0, 16, 17,
2870  18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2871  23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2872  0, 0, 28, 0, 30, 31, 32, 33, 34, 35,
2873  36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
2874  43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
2875  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2876  0, 49, 50, 0, 0, 0, 0, 0, 51, 0,
2877  0, 52, 53, 0, 54, 55, 0, 56, 0, 0,
2878  0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
2879  0, 64, -605, 0, 0, -605, -605, 0, 0, 0,
2880  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2881  0, 65, 66, 67, 0, 0, 0, 0, 0, 0,
2882  0, 0, 0, -605, 293, -605, 5, 6, 7, 8,
2883  9, 10, 11, 12, 13, 14, 0, 0, -605, 0,
2884  0, -605, 15, -605, 16, 17, 18, 19, 0, 0,
2885  0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2886  0, 0, 27, 0, 0, 0, 0, 0, 28, 0,
2887  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2888  0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
2889  45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
2890  0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
2891  0, 0, 0, 0, 51, 0, 0, 52, 53, 0,
2892  54, 55, 0, 56, 0, 0, 0, 57, 0, 58,
2893  59, 60, 0, 61, 62, 63, 0, 64, -605, 0,
2894  0, -605, -605, 0, 0, 0, 0, 0, 0, 0,
2895  0, 0, 0, 0, 0, 0, 0, 65, 66, 67,
2896  0, 0, 0, 0, 0, 0, 0, 0, 0, -605,
2897  293, -605, 5, 6, 7, 8, 9, 10, 11, 12,
2898  13, 14, 0, 0, -605, 0, 0, -605, 15, 0,
2899  16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2900  21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2901  0, 0, 0, 0, 28, 0, 30, 31, 32, 33,
2902  34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
2903  0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
2904  48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2905  0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
2906  51, 0, 0, 52, 53, 0, 54, 55, 0, 56,
2907  0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
2908  62, 63, 0, 64, -605, 0, 0, -605, -605, 4,
2909  0, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2910  14, 0, 0, 65, 66, 67, 0, 15, 0, 16,
2911  17, 18, 19, 0, 0, -605, 0, -605, 20, 21,
2912  22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2913  0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
2914  35, 36, 37, 38, 39, 0, 40, 41, 42, 0,
2915  0, 43, 0, 0, 44, 45, 0, 46, 47, 48,
2916  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917  0, 0, 49, 50, 0, 0, 0, 0, 0, 51,
2918  0, 0, 52, 53, 0, 54, 55, 0, 56, 0,
2919  0, 0, 57, 0, 58, 59, 60, 0, 61, 62,
2920  63, 0, 64, -605, 0, 0, -605, -605, 0, 0,
2921  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2922  0, 0, 65, 66, 67, 0, 0, -605, 0, 0,
2923  0, 0, 0, 0, -605, 293, -605, 5, 6, 7,
2924  8, 9, 10, 11, 12, 13, 14, 0, -605, -605,
2925  0, 0, 0, 15, 0, 16, 17, 18, 19, 0,
2926  0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2927  26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2928  0, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2929  39, 0, 40, 41, 42, 0, 0, 43, 0, 0,
2930  44, 45, 0, 46, 47, 48, 0, 0, 0, 0,
2931  0, 0, 0, 0, 0, 0, 0, 0, 49, 50,
2932  0, 0, 0, 0, 0, 51, 0, 0, 52, 53,
2933  0, 54, 55, 0, 56, 0, 0, 0, 57, 0,
2934  58, 59, 60, 0, 61, 62, 63, 0, 64, -605,
2935  0, 0, -605, -605, 293, 0, 5, 6, 7, 8,
2936  9, 10, 11, 12, 13, 14, 0, 0, 65, 66,
2937  67, 0, 15, 0, 16, 17, 18, 19, 0, 0,
2938  -605, 0, -605, 20, 21, 22, 23, 24, 25, 26,
2939  0, 0, 27, 0, 0, 0, 0, 0, 28, 0,
2940  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2941  0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
2942  45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
2943  0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
2944  0, 0, 0, 0, 51, 0, 0, 294, 53, 0,
2945  54, 55, 0, 56, 0, 0, 0, 57, 0, 58,
2946  59, 60, 0, 61, 62, 63, 0, 64, -605, 0,
2947  0, -605, -605, 293, 0, 5, 6, 7, 8, 9,
2948  10, 11, 12, 13, 14, 0, 0, 65, 66, 67,
2949  0, 15, 0, 16, 17, 18, 19, 0, -605, -605,
2950  0, -605, 20, 21, 22, 23, 24, 25, 26, 0,
2951  0, 27, 0, 0, 0, 0, 0, 28, 0, 30,
2952  31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
2953  40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
2954  0, 46, 47, 48, 0, 0, 0, 0, 0, 0,
2955  0, 0, 0, 0, 0, 0, 49, 50, 0, 0,
2956  0, 0, 0, 51, 0, 0, 52, 53, 0, 54,
2957  55, 0, 56, 0, 0, 0, 57, 0, 58, 59,
2958  60, 0, 61, 62, 63, 0, 64, -605, 0, 0,
2959  -605, -605, 293, 0, 5, 6, 7, 8, 9, 10,
2960  11, 12, 13, 14, 0, 0, 65, 66, 67, 0,
2961  15, 0, 16, 17, 18, 19, 0, -605, -605, 0,
2962  -605, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2963  27, 0, 0, 0, 0, 0, 28, 0, 30, 31,
2964  32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
2965  41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
2966  46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
2967  0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
2968  0, 0, 51, 0, 0, 52, 53, 0, 54, 55,
2969  0, 56, 0, 0, 0, 57, 0, 58, 59, 60,
2970  0, 61, 62, 63, 0, 64, -605, 0, 0, -605,
2971  -605, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2972  0, 0, 0, 0, 0, 65, 66, 67, 0, 0,
2973  -605, 0, 0, 0, 0, 0, 0, -605, 293, -605,
2974  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2975  0, 0, -605, 0, 0, 0, 15, 0, 16, 17,
2976  18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2977  23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2978  0, 0, 28, 0, 30, 31, 32, 33, 34, 35,
2979  36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
2980  43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
2981  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982  0, 49, 50, 0, 0, 0, 0, 0, 51, 0,
2983  0, 52, 53, 0, 54, 55, 0, 56, 0, 0,
2984  0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
2985  0, 64, -605, 0, 0, -605, -605, 0, 0, 5,
2986  6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
2987  0, 65, 66, 67, 0, 15, 0, 16, 17, 18,
2988  19, 0, 0, -605, 0, -605, 20, 21, 22, 23,
2989  24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2990  0, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2991  37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
2992  0, 0, 44, 45, 0, 46, 47, 48, 0, 0,
2993  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2994  49, 50, 0, 0, 0, 0, 0, 51, 0, 0,
2995  52, 53, 0, 54, 55, 0, 56, 0, 0, 0,
2996  57, 0, 58, 59, 60, 0, 61, 62, 63, 0,
2997  64, 245, 0, 0, 246, 247, 0, 0, 5, 6,
2998  7, 8, 9, 10, 11, 12, 13, 14, 0, 0,
2999  65, 66, 67, 0, 15, 0, 16, 17, 18, 19,
3000  0, 0, 248, 0, 249, 20, 21, 22, 23, 24,
3001  25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
3002  28, 0, 30, 31, 32, 33, 34, 35, 36, 37,
3003  38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
3004  0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
3005  0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
3006  50, 0, 0, 0, 0, 0, 51, 0, 0, 52,
3007  53, 0, 54, 55, 0, 56, 0, 0, 0, 57,
3008  0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
3009  245, 0, 0, 246, 247, 0, 0, 5, 6, 7,
3010  8, 9, 10, 11, 12, 13, 0, 0, 0, 65,
3011  66, 67, 0, 15, 0, 16, 17, 18, 19, 0,
3012  0, 248, 0, 249, 20, 21, 22, 23, 24, 25,
3013  26, 0, 0, 27, 0, 0, 0, 0, 0, 0,
3014  0, 0, 31, 32, 33, 34, 35, 36, 37, 38,
3015  39, 0, 40, 41, 42, 0, 0, 43, 0, 0,
3016  44, 45, 0, 46, 47, 48, 0, 0, 0, 0,
3017  0, 0, 0, 0, 0, 0, 0, 0, 49, 50,
3018  0, 0, 0, 0, 0, 211, 0, 0, 119, 53,
3019  0, 54, 55, 0, 0, 0, 0, 0, 57, 0,
3020  58, 59, 60, 0, 61, 62, 63, 0, 64, 245,
3021  0, 0, 246, 247, 0, 0, 5, 6, 7, 8,
3022  9, 10, 11, 12, 13, 0, 0, 0, 65, 66,
3023  67, 0, 15, 0, 108, 109, 18, 19, 0, 0,
3024  248, 0, 249, 110, 111, 112, 23, 24, 25, 26,
3025  0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
3026  0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3027  0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
3028  45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
3029  0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
3030  0, 0, 0, 0, 211, 0, 0, 119, 53, 0,
3031  54, 55, 0, 0, 0, 0, 0, 57, 0, 58,
3032  59, 60, 0, 61, 62, 63, 0, 64, 245, 0,
3033  0, 246, 247, 0, 0, 0, 0, 0, 0, 0,
3034  0, 0, 0, 0, 0, 0, 0, 65, 262, 67,
3035  0, 0, 0, 0, 0, 0, 0, 0, 0, 248,
3036  0, 249, 131, 132, 133, 134, 135, 136, 137, 138,
3037  139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
3038  149, 150, 151, 152, 153, 154, 0, 0, 0, 155,
3039  156, 157, 158, 159, 160, 161, 162, 163, 164, 0,
3040  0, 0, 0, 0, 165, 166, 167, 168, 169, 170,
3041  171, 172, 36, 37, 173, 39, 0, 0, 0, 0,
3042  0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
3043  175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
3044  183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
3045  0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
3046  189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
3047  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3048  0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
3049  198, 199, 200, 0, 201, 202, 0, 0, 0, 0,
3050  0, 0, 203, 204, -575, -575, -575, -575, -575, -575,
3051  -575, -575, -575, 0, 0, 0, 0, 0, 0, 0,
3052  -575, 0, -575, -575, -575, -575, 0, -575, 0, 0,
3053  0, -575, -575, -575, -575, -575, -575, -575, 0, 0,
3054  -575, 0, 0, 0, 0, 0, 0, 0, 0, -575,
3055  -575, -575, -575, -575, -575, -575, -575, -575, 0, -575,
3056  -575, -575, 0, 0, -575, 0, 0, -575, -575, 0,
3057  -575, -575, -575, 0, 0, 0, 0, 0, 0, 0,
3058  0, 0, 0, 0, 0, -575, -575, 0, 0, 0,
3059  0, 0, -575, 0, 0, -575, -575, 0, -575, -575,
3060  0, -575, 0, -575, -575, -575, 0, -575, -575, -575,
3061  0, -575, -575, -575, 0, -575, 0, 0, 0, 0,
3062  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3063  0, 0, 0, 0, 0, -575, -575, -575, 0, -575,
3064  0, 0, 0, 0, 0, -575, -576, -576, -576, -576,
3065  -576, -576, -576, -576, -576, 0, 0, 0, 0, 0,
3066  0, 0, -576, 0, -576, -576, -576, -576, 0, -576,
3067  0, 0, 0, -576, -576, -576, -576, -576, -576, -576,
3068  0, 0, -576, 0, 0, 0, 0, 0, 0, 0,
3069  0, -576, -576, -576, -576, -576, -576, -576, -576, -576,
3070  0, -576, -576, -576, 0, 0, -576, 0, 0, -576,
3071  -576, 0, -576, -576, -576, 0, 0, 0, 0, 0,
3072  0, 0, 0, 0, 0, 0, 0, -576, -576, 0,
3073  0, 0, 0, 0, -576, 0, 0, -576, -576, 0,
3074  -576, -576, 0, -576, 0, -576, -576, -576, 0, -576,
3075  -576, -576, 0, -576, -576, -576, 0, -576, 0, 0,
3076  0, 0, 0, 0, -578, -578, -578, -578, -578, -578,
3077  -578, -578, -578, 0, 0, 0, 0, -576, -576, -576,
3078  -578, -576, -578, -578, -578, -578, 0, -576, 0, 0,
3079  0, -578, -578, -578, -578, -578, -578, -578, 0, 0,
3080  -578, 0, 0, 0, 0, 0, 0, 0, 0, -578,
3081  -578, -578, -578, -578, -578, -578, -578, -578, 0, -578,
3082  -578, -578, 0, 0, -578, 0, 0, -578, -578, 0,
3083  -578, -578, -578, 0, 0, 0, 0, 0, 0, 0,
3084  0, 0, 0, 0, 0, -578, -578, 0, 0, 0,
3085  0, 0, -578, 818, 0, -578, -578, 0, -578, -578,
3086  0, -578, 0, -578, -578, -578, 0, -578, -578, -578,
3087  0, -578, -578, -578, 0, -578, 0, 0, 0, 0,
3088  0, 0, -103, -579, -579, -579, -579, -579, -579, -579,
3089  -579, -579, 0, 0, 0, -578, -578, -578, 0, -579,
3090  0, -579, -579, -579, -579, -578, 0, 0, 0, 0,
3091  -579, -579, -579, -579, -579, -579, -579, 0, 0, -579,
3092  0, 0, 0, 0, 0, 0, 0, 0, -579, -579,
3093  -579, -579, -579, -579, -579, -579, -579, 0, -579, -579,
3094  -579, 0, 0, -579, 0, 0, -579, -579, 0, -579,
3095  -579, -579, 0, 0, 0, 0, 0, 0, 0, 0,
3096  0, 0, 0, 0, -579, -579, 0, 0, 0, 0,
3097  0, -579, 819, 0, -579, -579, 0, -579, -579, 0,
3098  -579, 0, -579, -579, -579, 0, -579, -579, -579, 0,
3099  -579, -579, -579, 0, -579, 0, 0, 0, 0, 0,
3100  0, -105, -580, -580, -580, -580, -580, -580, -580, -580,
3101  -580, 0, 0, 0, -579, -579, -579, 0, -580, 0,
3102  -580, -580, -580, -580, -579, 0, 0, 0, 0, -580,
3103  -580, -580, -580, -580, -580, -580, 0, 0, -580, 0,
3104  0, 0, 0, 0, 0, 0, 0, -580, -580, -580,
3105  -580, -580, -580, -580, -580, -580, 0, -580, -580, -580,
3106  0, 0, -580, 0, 0, -580, -580, 0, -580, -580,
3107  -580, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3108  0, 0, 0, -580, -580, 0, 0, 0, 0, 0,
3109  -580, 0, 0, -580, -580, 0, -580, -580, 0, -580,
3110  0, -580, -580, -580, 0, -580, -580, -580, 0, -580,
3111  -580, -580, 0, -580, 0, 0, 0, 0, 0, 0,
3112  -581, -581, -581, -581, -581, -581, -581, -581, -581, 0,
3113  0, 0, 0, -580, -580, -580, -581, 0, -581, -581,
3114  -581, -581, 0, -580, 0, 0, 0, -581, -581, -581,
3115  -581, -581, -581, -581, 0, 0, -581, 0, 0, 0,
3116  0, 0, 0, 0, 0, -581, -581, -581, -581, -581,
3117  -581, -581, -581, -581, 0, -581, -581, -581, 0, 0,
3118  -581, 0, 0, -581, -581, 0, -581, -581, -581, 0,
3119  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3120  0, -581, -581, 0, 0, 0, 0, 0, -581, 0,
3121  0, -581, -581, 0, -581, -581, 0, -581, 0, -581,
3122  -581, -581, 0, -581, -581, -581, 0, -581, -581, -581,
3123  0, -581, 0, 0, 0, 0, 0, 0, 0, 0,
3124  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3125  0, -581, -581, -581, 0, 0, 0, 0, 0, 0,
3126  0, -581, 131, 132, 133, 134, 135, 136, 137, 138,
3127  139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
3128  149, 150, 151, 152, 153, 154, 0, 0, 0, 155,
3129  156, 157, 231, 232, 233, 234, 162, 163, 164, 0,
3130  0, 0, 0, 0, 165, 166, 167, 235, 236, 237,
3131  238, 172, 318, 319, 239, 320, 0, 0, 0, 0,
3132  0, 0, 321, 0, 0, 0, 0, 0, 0, 174,
3133  175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
3134  183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
3135  0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
3136  189, 190, 0, 0, 0, 0, 322, 0, 0, 0,
3137  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3138  0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
3139  198, 199, 200, 0, 201, 202, 0, 0, 0, 0,
3140  0, 0, 203, 131, 132, 133, 134, 135, 136, 137,
3141  138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3142  148, 149, 150, 151, 152, 153, 154, 0, 0, 0,
3143  155, 156, 157, 231, 232, 233, 234, 162, 163, 164,
3144  0, 0, 0, 0, 0, 165, 166, 167, 235, 236,
3145  237, 238, 172, 318, 319, 239, 320, 0, 0, 0,
3146  0, 0, 0, 321, 0, 0, 0, 0, 0, 0,
3147  174, 175, 176, 177, 178, 179, 180, 181, 0, 0,
3148  182, 183, 0, 0, 0, 0, 184, 185, 186, 187,
3149  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3150  188, 189, 190, 0, 0, 0, 0, 479, 0, 0,
3151  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3152  0, 0, 0, 0, 191, 192, 193, 194, 195, 196,
3153  197, 198, 199, 200, 0, 201, 202, 0, 0, 0,
3154  0, 0, 0, 203, 131, 132, 133, 134, 135, 136,
3155  137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3156  147, 148, 149, 150, 151, 152, 153, 154, 0, 0,
3157  0, 155, 156, 157, 231, 232, 233, 234, 162, 163,
3158  164, 0, 0, 0, 0, 0, 165, 166, 167, 235,
3159  236, 237, 238, 172, 0, 0, 239, 0, 0, 0,
3160  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3161  0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
3162  0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
3163  187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3164  0, 188, 189, 190, 0, 0, 0, 240, 0, 0,
3165  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3166  0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
3167  196, 197, 198, 199, 200, 0, 201, 202, 0, 0,
3168  0, 0, 0, 0, 203, 131, 132, 133, 134, 135,
3169  136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3170  146, 147, 148, 149, 150, 151, 152, 153, 154, 0,
3171  0, 0, 155, 156, 157, 231, 232, 233, 234, 162,
3172  163, 164, 0, 0, 0, 0, 0, 165, 166, 167,
3173  235, 236, 237, 238, 172, 0, 0, 239, 0, 0,
3174  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3175  0, 0, 174, 175, 176, 177, 178, 179, 180, 181,
3176  0, 0, 182, 183, 0, 0, 0, 0, 184, 185,
3177  186, 187, 0, 0, 0, 0, 0, 0, 0, 0,
3178  0, 0, 188, 189, 190, 0, 0, 0, 0, 0,
3179  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3180  0, 0, 0, 0, 0, 0, 191, 192, 193, 194,
3181  195, 196, 197, 198, 199, 200, 0, 201, 202, 0,
3182  0, 0, 0, 0, 0, 203, 5, 6, 7, 8,
3183  9, 10, 11, 12, 13, 0, 0, 0, 0, 0,
3184  0, 0, 15, 0, 108, 109, 18, 19, 0, 0,
3185  0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
3186  0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
3187  0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3188  0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
3189  45, 0, 116, 0, 0, 0, 0, 0, 0, 0,
3190  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3191  0, 0, 0, 0, 311, 0, 0, 119, 53, 0,
3192  54, 55, 0, 0, 0, 0, 0, 57, 0, 58,
3193  59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
3194  5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
3195  0, 0, 0, 0, 0, 0, 15, 120, 108, 109,
3196  18, 19, 0, 0, 0, 312, 0, 110, 111, 112,
3197  23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
3198  0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
3199  36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
3200  43, 0, 0, 44, 45, 0, 116, 0, 0, 0,
3201  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3202  0, 0, 0, 0, 0, 0, 0, 0, 311, 0,
3203  0, 119, 53, 0, 54, 55, 0, 0, 0, 0,
3204  0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
3205  0, 64, 0, 0, 5, 6, 7, 8, 9, 10,
3206  11, 12, 13, 14, 0, 0, 0, 0, 0, 0,
3207  15, 120, 16, 17, 18, 19, 0, 0, 0, 600,
3208  0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
3209  27, 0, 0, 0, 0, 0, 28, 29, 30, 31,
3210  32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
3211  41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
3212  46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
3213  0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
3214  0, 0, 51, 0, 0, 52, 53, 0, 54, 55,
3215  0, 56, 0, 0, 0, 57, 0, 58, 59, 60,
3216  0, 61, 62, 63, 0, 64, 0, 0, 0, 0,
3217  0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
3218  13, 14, 0, 0, 0, 65, 66, 67, 15, 0,
3219  16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
3220  21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
3221  0, 0, 0, 0, 28, 0, 30, 31, 32, 33,
3222  34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
3223  0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
3224  48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3225  0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
3226  51, 0, 0, 52, 53, 0, 54, 55, 0, 56,
3227  0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
3228  62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
3229  5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
3230  0, 0, 0, 65, 66, 67, 15, 0, 16, 17,
3231  18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
3232  23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
3233  0, 0, 0, 0, 0, 31, 32, 33, 258, 35,
3234  36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
3235  43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
3236  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3237  0, 49, 50, 0, 0, 0, 0, 0, 211, 0,
3238  0, 119, 53, 0, 54, 55, 0, 259, 0, 260,
3239  261, 57, 0, 58, 59, 60, 0, 61, 62, 63,
3240  0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
3241  7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
3242  0, 65, 262, 67, 15, 0, 16, 17, 18, 19,
3243  0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
3244  25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
3245  0, 0, 0, 31, 32, 33, 258, 35, 36, 37,
3246  38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
3247  0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
3248  0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
3249  501, 0, 0, 0, 0, 0, 211, 0, 0, 119,
3250  53, 0, 54, 55, 0, 259, 0, 260, 261, 57,
3251  0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
3252  0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
3253  9, 10, 11, 12, 13, 0, 0, 0, 0, 65,
3254  262, 67, 15, 0, 108, 109, 18, 19, 0, 0,
3255  0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
3256  0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
3257  0, 31, 32, 33, 258, 35, 36, 37, 38, 39,
3258  0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
3259  45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
3260  0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
3261  0, 0, 0, 0, 211, 0, 0, 119, 53, 0,
3262  54, 55, 0, 710, 0, 260, 261, 57, 0, 58,
3263  59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
3264  0, 0, 0, 0, 5, 6, 7, 8, 9, 10,
3265  11, 12, 13, 0, 0, 0, 0, 65, 262, 67,
3266  15, 0, 108, 109, 18, 19, 0, 0, 0, 0,
3267  0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
3268  113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
3269  32, 33, 258, 35, 36, 37, 38, 39, 0, 40,
3270  41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
3271  46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
3272  0, 0, 0, 0, 0, 49, 836, 0, 0, 0,
3273  0, 0, 211, 0, 0, 119, 53, 0, 54, 55,
3274  0, 710, 0, 260, 261, 57, 0, 58, 59, 60,
3275  0, 61, 62, 63, 0, 64, 0, 0, 0, 0,
3276  0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
3277  13, 0, 0, 0, 0, 65, 262, 67, 15, 0,
3278  108, 109, 18, 19, 0, 0, 0, 0, 0, 110,
3279  111, 112, 23, 24, 25, 26, 0, 0, 113, 0,
3280  0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
3281  258, 35, 36, 37, 38, 39, 0, 40, 41, 42,
3282  0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
3283  48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3284  0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
3285  211, 0, 0, 119, 53, 0, 54, 55, 0, 259,
3286  0, 260, 0, 57, 0, 58, 59, 60, 0, 61,
3287  62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
3288  5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
3289  0, 0, 0, 65, 262, 67, 15, 0, 108, 109,
3290  18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
3291  23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
3292  0, 0, 0, 0, 0, 31, 32, 33, 258, 35,
3293  36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
3294  43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
3295  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3296  0, 49, 50, 0, 0, 0, 0, 0, 211, 0,
3297  0, 119, 53, 0, 54, 55, 0, 0, 0, 260,
3298  261, 57, 0, 58, 59, 60, 0, 61, 62, 63,
3299  0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
3300  7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
3301  0, 65, 262, 67, 15, 0, 108, 109, 18, 19,
3302  0, 0, 0, 0, 0, 110, 111, 112, 23, 24,
3303  25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
3304  0, 0, 0, 31, 32, 33, 258, 35, 36, 37,
3305  38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
3306  0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
3307  0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
3308  50, 0, 0, 0, 0, 0, 211, 0, 0, 119,
3309  53, 0, 54, 55, 0, 710, 0, 260, 0, 57,
3310  0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
3311  0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
3312  9, 10, 11, 12, 13, 0, 0, 0, 0, 65,
3313  262, 67, 15, 0, 108, 109, 18, 19, 0, 0,
3314  0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
3315  0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
3316  0, 31, 32, 33, 258, 35, 36, 37, 38, 39,
3317  0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
3318  45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
3319  0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
3320  0, 0, 0, 0, 211, 0, 0, 119, 53, 0,
3321  54, 55, 0, 0, 0, 260, 0, 57, 0, 58,
3322  59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
3323  0, 0, 0, 0, 5, 6, 7, 8, 9, 10,
3324  11, 12, 13, 0, 0, 0, 0, 65, 262, 67,
3325  15, 0, 16, 17, 18, 19, 0, 0, 0, 0,
3326  0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
3327  113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
3328  32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
3329  41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
3330  46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
3331  0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
3332  0, 0, 211, 0, 0, 119, 53, 0, 54, 55,
3333  0, 594, 0, 0, 0, 57, 0, 58, 59, 60,
3334  0, 61, 62, 63, 0, 64, 0, 0, 0, 0,
3335  0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
3336  13, 0, 0, 0, 0, 65, 262, 67, 15, 0,
3337  108, 109, 18, 19, 0, 0, 0, 0, 0, 110,
3338  111, 112, 23, 24, 25, 26, 0, 0, 113, 0,
3339  0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
3340  34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
3341  0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
3342  48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3343  0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
3344  211, 0, 0, 119, 53, 0, 54, 55, 0, 259,
3345  0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
3346  62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
3347  5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
3348  0, 0, 0, 65, 262, 67, 15, 0, 108, 109,
3349  18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
3350  23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
3351  0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
3352  36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
3353  43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
3354  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3355  0, 49, 50, 0, 0, 0, 0, 0, 211, 0,
3356  0, 119, 53, 0, 54, 55, 0, 594, 0, 0,
3357  0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
3358  0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
3359  7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
3360  0, 65, 262, 67, 15, 0, 108, 109, 18, 19,
3361  0, 0, 0, 0, 0, 110, 111, 112, 23, 24,
3362  25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
3363  0, 0, 0, 31, 32, 33, 34, 35, 36, 37,
3364  38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
3365  0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
3366  0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
3367  50, 0, 0, 0, 0, 0, 211, 0, 0, 119,
3368  53, 0, 54, 55, 0, 879, 0, 0, 0, 57,
3369  0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
3370  0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
3371  9, 10, 11, 12, 13, 0, 0, 0, 0, 65,
3372  262, 67, 15, 0, 108, 109, 18, 19, 0, 0,
3373  0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
3374  0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
3375  0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3376  0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
3377  45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
3378  0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
3379  0, 0, 0, 0, 211, 0, 0, 119, 53, 0,
3380  54, 55, 0, 710, 0, 0, 0, 57, 0, 58,
3381  59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
3382  0, 0, 0, 0, 5, 6, 7, 8, 9, 10,
3383  11, 12, 13, 0, 0, 0, 0, 65, 262, 67,
3384  15, 0, 16, 17, 18, 19, 0, 0, 0, 0,
3385  0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
3386  27, 0, 0, 0, 0, 0, 0, 0, 0, 31,
3387  32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
3388  41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
3389  46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
3390  0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
3391  0, 0, 211, 0, 0, 119, 53, 0, 54, 55,
3392  0, 0, 0, 0, 0, 57, 0, 58, 59, 60,
3393  0, 61, 62, 63, 0, 64, 0, 0, 0, 0,
3394  0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
3395  13, 0, 0, 0, 0, 65, 66, 67, 15, 0,
3396  108, 109, 18, 19, 0, 0, 0, 0, 0, 110,
3397  111, 112, 23, 24, 25, 26, 0, 0, 113, 0,
3398  0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
3399  34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
3400  0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
3401  48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3402  0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
3403  211, 0, 0, 119, 53, 0, 54, 55, 0, 0,
3404  0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
3405  62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
3406  5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
3407  0, 0, 0, 65, 262, 67, 15, 0, 16, 17,
3408  18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
3409  23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
3410  0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
3411  36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
3412  43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
3413  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3414  0, 49, 50, 0, 0, 0, 0, 0, 211, 0,
3415  0, 119, 53, 0, 54, 55, 0, 0, 0, 0,
3416  0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
3417  0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
3418  7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
3419  0, 65, 262, 67, 15, 0, 108, 109, 18, 19,
3420  0, 0, 0, 0, 0, 110, 111, 112, 23, 24,
3421  25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
3422  0, 0, 0, 31, 32, 33, 114, 35, 36, 37,
3423  115, 39, 0, 40, 41, 42, 0, 0, 43, 0,
3424  0, 44, 45, 0, 116, 0, 0, 0, 0, 0,
3425  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3426  0, 0, 0, 117, 0, 0, 118, 0, 0, 119,
3427  53, 0, 54, 55, 0, 0, 0, 0, 0, 57,
3428  0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
3429  0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
3430  13, 0, 0, 0, 0, 0, 0, 0, 15, 120,
3431  108, 109, 18, 19, 0, 0, 0, 0, 0, 110,
3432  111, 112, 23, 24, 25, 26, 0, 0, 113, 0,
3433  0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
3434  34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
3435  0, 0, 43, 0, 0, 44, 45, 0, 223, 0,
3436  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3437  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3438  224, 0, 0, 52, 53, 0, 54, 55, 0, 56,
3439  0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
3440  62, 63, 0, 64, 0, 0, 5, 6, 7, 8,
3441  9, 10, 11, 12, 13, 0, 0, 0, 0, 0,
3442  0, 0, 15, 120, 108, 109, 18, 19, 0, 0,
3443  0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
3444  0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
3445  0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3446  0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
3447  45, 0, 116, 0, 0, 0, 0, 0, 0, 0,
3448  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3449  0, 0, 0, 0, 311, 0, 0, 394, 53, 0,
3450  54, 55, 0, 395, 0, 0, 0, 57, 0, 58,
3451  59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
3452  5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
3453  0, 0, 0, 0, 0, 0, 15, 120, 108, 109,
3454  18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
3455  23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
3456  0, 0, 0, 0, 0, 31, 32, 33, 114, 35,
3457  36, 37, 115, 39, 0, 40, 41, 42, 0, 0,
3458  43, 0, 0, 44, 45, 0, 116, 0, 0, 0,
3459  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3460  0, 0, 0, 0, 0, 0, 0, 0, 118, 0,
3461  0, 119, 53, 0, 54, 55, 0, 0, 0, 0,
3462  0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
3463  0, 64, 0, 0, 5, 6, 7, 8, 9, 10,
3464  11, 12, 13, 0, 0, 0, 0, 0, 0, 0,
3465  15, 120, 108, 109, 18, 19, 0, 0, 0, 0,
3466  0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
3467  113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
3468  32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
3469  41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
3470  116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3471  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3472  0, 0, 311, 0, 0, 394, 53, 0, 54, 55,
3473  0, 0, 0, 0, 0, 57, 0, 58, 59, 60,
3474  0, 61, 62, 63, 0, 64, 0, 0, 5, 6,
3475  7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
3476  0, 0, 0, 0, 15, 120, 108, 109, 18, 19,
3477  0, 0, 0, 0, 0, 110, 111, 112, 23, 24,
3478  25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
3479  0, 0, 0, 31, 32, 33, 34, 35, 36, 37,
3480  38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
3481  0, 44, 45, 0, 116, 0, 0, 0, 0, 0,
3482  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3483  0, 0, 0, 0, 0, 0, 944, 0, 0, 119,
3484  53, 0, 54, 55, 0, 0, 0, 0, 0, 57,
3485  0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
3486  0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
3487  13, 0, 0, 0, 0, 0, 0, 0, 15, 120,
3488  108, 109, 18, 19, 0, 0, 0, 0, 0, 110,
3489  111, 112, 23, 24, 25, 26, 0, 0, 113, 0,
3490  0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
3491  34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
3492  0, 0, 43, 0, 0, 44, 45, 0, 223, 0,
3493  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3494  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3495  967, 0, 0, 119, 53, 0, 54, 55, 0, 0,
3496  639, 640, 0, 57, 641, 58, 59, 60, 0, 61,
3497  62, 63, 0, 64, 0, 0, 0, 0, 0, 174,
3498  175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
3499  183, 0, 0, 120, 0, 184, 185, 186, 187, 0,
3500  0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
3501  189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
3502  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3503  0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
3504  198, 199, 200, 0, 201, 202, 648, 649, 0, 0,
3505  650, 0, 203, 273, 0, 0, 0, 0, 0, 0,
3506  0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
3507  179, 180, 181, 0, 0, 182, 183, 0, 0, 0,
3508  0, 184, 185, 186, 187, 0, 0, 0, 0, 0,
3509  0, 0, 0, 0, 0, 188, 189, 190, 0, 0,
3510  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3511  0, 0, 0, 0, 0, 0, 0, 0, 0, 191,
3512  192, 193, 194, 195, 196, 197, 198, 199, 200, 0,
3513  201, 202, 669, 640, 0, 0, 670, 0, 203, 273,
3514  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3515  0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
3516  0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
3517  187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3518  0, 188, 189, 190, 0, 0, 0, 0, 0, 0,
3519  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3520  0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
3521  196, 197, 198, 199, 200, 0, 201, 202, 654, 649,
3522  0, 0, 655, 0, 203, 273, 0, 0, 0, 0,
3523  0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
3524  177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
3525  0, 0, 0, 184, 185, 186, 187, 0, 0, 0,
3526  0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
3527  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3528  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3529  0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3530  200, 0, 201, 202, 684, 640, 0, 0, 685, 0,
3531  203, 273, 0, 0, 0, 0, 0, 0, 0, 0,
3532  0, 0, 0, 174, 175, 176, 177, 178, 179, 180,
3533  181, 0, 0, 182, 183, 0, 0, 0, 0, 184,
3534  185, 186, 187, 0, 0, 0, 0, 0, 0, 0,
3535  0, 0, 0, 188, 189, 190, 0, 0, 0, 0,
3536  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3537  0, 0, 0, 0, 0, 0, 0, 191, 192, 193,
3538  194, 195, 196, 197, 198, 199, 200, 0, 201, 202,
3539  687, 649, 0, 0, 688, 0, 203, 273, 0, 0,
3540  0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
3541  175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
3542  183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
3543  0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
3544  189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
3545  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3546  0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
3547  198, 199, 200, 0, 201, 202, 694, 640, 0, 0,
3548  695, 0, 203, 273, 0, 0, 0, 0, 0, 0,
3549  0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
3550  179, 180, 181, 0, 0, 182, 183, 0, 0, 0,
3551  0, 184, 185, 186, 187, 0, 0, 0, 0, 0,
3552  0, 0, 0, 0, 0, 188, 189, 190, 0, 0,
3553  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3554  0, 0, 0, 0, 0, 0, 0, 0, 0, 191,
3555  192, 193, 194, 195, 196, 197, 198, 199, 200, 0,
3556  201, 202, 697, 649, 0, 0, 698, 0, 203, 273,
3557  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3558  0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
3559  0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
3560  187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3561  0, 188, 189, 190, 0, 0, 0, 0, 0, 0,
3562  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3563  0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
3564  196, 197, 198, 199, 200, 0, 201, 202, 733, 640,
3565  0, 0, 734, 0, 203, 273, 0, 0, 0, 0,
3566  0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
3567  177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
3568  0, 0, 0, 184, 185, 186, 187, 0, 0, 0,
3569  0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
3570  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3571  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3572  0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3573  200, 0, 201, 202, 736, 649, 0, 0, 737, 0,
3574  203, 273, 0, 0, 0, 0, 0, 0, 0, 0,
3575  0, 0, 0, 174, 175, 176, 177, 178, 179, 180,
3576  181, 0, 0, 182, 183, 0, 0, 0, 0, 184,
3577  185, 186, 187, 0, 0, 0, 0, 0, 0, 0,
3578  0, 0, 0, 188, 189, 190, 0, 0, 0, 0,
3579  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3580  0, 0, 0, 0, 0, 0, 0, 191, 192, 193,
3581  194, 195, 196, 197, 198, 199, 200, 0, 201, 202,
3582  884, 640, 0, 0, 885, 0, 203, 273, 0, 0,
3583  0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
3584  175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
3585  183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
3586  0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
3587  189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
3588  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3589  0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
3590  198, 199, 200, 0, 201, 202, 887, 649, 0, 0,
3591  888, 0, 203, 273, 0, 0, 0, 0, 0, 0,
3592  0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
3593  179, 180, 181, 0, 0, 182, 183, 0, 0, 0,
3594  0, 184, 185, 186, 187, 0, 0, 0, 0, 0,
3595  0, 0, 0, 0, 0, 188, 189, 190, 0, 0,
3596  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3597  0, 0, 0, 0, 0, 0, 0, 0, 0, 191,
3598  192, 193, 194, 195, 196, 197, 198, 199, 200, 0,
3599  201, 202, 1026, 640, 0, 0, 1027, 0, 203, 273,
3600  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3601  0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
3602  0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
3603  187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3604  0, 188, 189, 190, 0, 0, 0, 0, 0, 0,
3605  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3606  0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
3607  196, 197, 198, 199, 200, 0, 201, 202, 1038, 640,
3608  0, 0, 1039, 0, 203, 273, 0, 0, 0, 0,
3609  0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
3610  177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
3611  0, 0, 0, 184, 185, 186, 187, 0, 0, 0,
3612  0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
3613  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3614  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3615  0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3616  200, 0, 201, 202, 1041, 649, 0, 0, 1042, 0,
3617  203, 273, 0, 0, 0, 0, 0, 0, 0, 0,
3618  0, 0, 0, 174, 175, 176, 177, 178, 179, 180,
3619  181, 0, 0, 182, 183, 0, 0, 0, 0, 184,
3620  185, 186, 187, 0, 0, 0, 0, 0, 0, 0,
3621  0, 0, 0, 188, 189, 190, 0, 0, 0, 0,
3622  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3623  0, 0, 0, 0, 0, 0, 0, 191, 192, 193,
3624  194, 195, 196, 197, 198, 199, 200, 0, 201, 202,
3625  654, 649, 0, 0, 655, 0, 203, 273, 0, 0,
3626  0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
3627  175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
3628  183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
3629  0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
3630  189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
3631  0, 0, 0, 0, 0, 864, 0, 0, 0, 0,
3632  0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
3633  198, 199, 200, 0, 201, 202, 0, 0, 0, 0,
3634  0, 0, 203, 398, 399, 400, 401, 402, 403, 404,
3635  405, 406, 407, 408, 409, 0, 0, 0, 0, 410,
3636  411, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3637  0, 0, 413, 0, 0, 0, 0, 0, 0, 0,
3638  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3639  0, 0, 0, 414, 0, 415, 416, 417, 418, 419,
3640  420, 421, 422, 423, 424, 398, 399, 400, 401, 402,
3641  403, 404, 405, 406, 407, 408, 409, 0, 0, 0,
3642  0, 410, 411, 0, 0, 0, 0, 0, 0, 0,
3643  0, 0, 0, 0, 413, 0, 0, 0, 0, 0,
3644  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3645  0, 0, 0, 0, 0, 414, 0, 415, 416, 417,
3646  418, 419, 420, 421, 422, 423, 424, 398, 399, 400,
3647  401, 402, 403, 404, 405, 406, 407, 408, 409, 0,
3648  0, 249, 0, 410, 411, 0, 0, 0, 0, 0,
3649  0, 0, 0, 0, 0, 0, 413, 0, 0, 0,
3650  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3651  0, 0, 0, 0, 0, 0, 0, 414, 0, 415,
3652  416, 417, 418, 419, 420, 421, 422, 423, 424, 0,
3653  0, 0, 0, 0, 0, 0, 0, -273, 398, 399,
3654  400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3655  0, 0, 0, 0, 410, 411, 0, 0, 0, 0,
3656  0, 0, 0, 0, 0, 0, 0, 413, 0, 0,
3657  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3658  0, 0, 0, 0, 0, 0, 0, 0, 414, 0,
3659  415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
3660  0, 0, 0, 0, 0, 0, 0, 0, -274, 398,
3661  399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
3662  409, 0, 0, 0, 0, 410, 411, 0, 0, 0,
3663  0, 0, 0, 0, 0, 0, 0, 0, 413, 0,
3664  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3665  0, 0, 0, 0, 0, 0, 0, 0, 0, 414,
3666  0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
3667  424, 0, 0, 0, 0, 0, 0, 0, 0, -275,
3668  398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
3669  408, 409, 0, 0, 0, 0, 410, 411, 0, 0,
3670  0, 0, 0, 0, 0, 0, 0, 0, 0, 413,
3671  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3672  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3673  414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
3674  423, 424, 0, 0, 0, 0, 0, 0, 0, 0,
3675  -276, 398, 399, 400, 401, 402, 403, 404, 405, 406,
3676  407, 408, 409, 0, 0, 0, 0, 410, 411, 0,
3677  0, 0, 412, 0, 0, 0, 0, 0, 0, 0,
3678  413, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3679  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3680  0, 414, 0, 415, 416, 417, 418, 419, 420, 421,
3681  422, 423, 424, 398, 399, 400, 401, 402, 403, 404,
3682  405, 406, 407, 408, 409, 0, 0, 0, 0, 410,
3683  411, 0, 0, 0, 493, 0, 0, 0, 0, 0,
3684  0, 0, 413, 0, 0, 0, 0, 0, 0, 0,
3685  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3686  0, 0, 0, 414, 0, 415, 416, 417, 418, 419,
3687  420, 421, 422, 423, 424, 398, 399, 400, 401, 402,
3688  403, 404, 405, 406, 407, 408, 409, 0, 0, 0,
3689  0, 410, 411, 0, 0, 0, 0, 0, 0, 0,
3690  0, 0, 0, 0, 413, 0, 0, 0, 0, 0,
3691  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3692  0, 0, 0, 0, 0, 414, 0, 415, 416, 417,
3693  418, 419, 420, 421, 422, 423, 424, 398, 399, 400,
3694  401, 402, 403, 404, 405, 406, 407, -606, -606, 0,
3695  0, 0, 0, 410, 411, 398, 399, 400, 401, 402,
3696  403, 404, 0, 406, 407, 0, 413, 0, 0, 0,
3697  0, 410, 411, 0, 0, 0, 0, 0, 0, 0,
3698  0, 0, 0, 0, 413, 0, 0, 0, 0, 415,
3699  416, 417, 418, 419, 420, 421, 422, 423, 424, 0,
3700  0, 0, 0, 0, 0, 0, 0, 415, 416, 417,
3701  418, 419, 420, 421, 422, 423, 424, 398, 399, 400,
3702  401, 402, 403, 0, 0, 406, 407, 0, 0, 0,
3703  0, 0, 0, 410, 411, 0, 0, 0, 0, 0,
3704  0, 0, 0, 0, 0, 0, 413, 0, 0, 0,
3705  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3706  0, 0, 0, 0, 0, 0, 0, 0, 0, 415,
3707  416, 417, 418, 419, 420, 421, 422, 423, 424
3708 };
3709 
3710 static const yytype_int16 yycheck[] =
3711 {
3712  2, 16, 17, 27, 10, 20, 89, 28, 482, 15,
3713  2, 374, 4, 5, 6, 473, 7, 9, 10, 21,
3714  27, 13, 7, 15, 16, 17, 397, 56, 20, 14,
3715  220, 305, 500, 69, 585, 309, 66, 87, 88, 54,
3716  55, 582, 269, 28, 25, 82, 16, 17, 15, 52,
3717  20, 369, 54, 55, 14, 16, 17, 4, 427, 20,
3718  52, 329, 530, 582, 56, 118, 585, 58, 28, 680,
3719  317, 389, 538, 58, 66, 488, 91, 2, 689, 4,
3720  294, 74, 75, 452, 746, 21, 22, 5, 6, 16,
3721  82, 312, 929, 54, 55, 13, 657, 658, 467, 437,
3722  438, 16, 69, 60, 61, 62, 63, 476, 25, 111,
3723  16, 22, 16, 17, 16, 17, 20, 29, 20, 138,
3724  367, 90, 496, 213, 25, 117, 500, 119, 121, 122,
3725  220, 770, 26, 26, 600, 57, 454, 330, 56, 92,
3726  333, 383, 335, 385, 337, 26, 339, 952, 267, 25,
3727  269, 61, 54, 25, 64, 65, 0, 5, 6, 25,
3728  25, 142, 25, 144, 82, 13, 216, 257, 121, 105,
3729  144, 540, 55, 789, 148, 111, 112, 227, 147, 795,
3730  394, 60, 28, 1020, 63, 304, 397, 121, 115, 142,
3731  90, 118, 119, 129, 105, 57, 90, 5, 6, 121,
3732  115, 113, 90, 118, 119, 13, 116, 117, 56, 115,
3733  751, 105, 118, 119, 142, 221, 222, 105, 210, 146,
3734  488, 148, 58, 59, 1029, 142, 437, 438, 107, 221,
3735  222, 146, 751, 148, 82, 90, 142, 121, 288, 800,
3736  146, 142, 148, 144, 138, 138, 140, 147, 56, 240,
3737  144, 770, 720, 147, 52, 240, 346, 138, 273, 147,
3738  296, 123, 277, 144, 314, 267, 142, 269, 304, 305,
3739  142, 273, 934, 309, 82, 312, 142, 142, 505, 142,
3740  548, 273, 92, 250, 61, 277, 376, 64, 65, 281,
3741  282, 294, 147, 92, 286, 542, 709, 92, 92, 26,
3742  103, 293, 294, 273, 855, 79, 144, 277, 679, 301,
3743  949, 121, 778, 952, 925, 115, 277, 538, 118, 119,
3744  312, 119, 121, 90, 317, 128, 121, 90, 121, 296,
3745  90, 90, 90, 144, 75, 90, 855, 125, 90, 116,
3746  117, 347, 348, 349, 350, 719, 720, 142, 148, 142,
3747  668, 55, 126, 546, 346, 347, 348, 349, 350, 351,
3748  352, 353, 392, 90, 582, 322, 395, 397, 293, 827,
3749  372, 273, 374, 277, 367, 277, 301, 369, 105, 600,
3750  147, 122, 472, 473, 147, 504, 505, 147, 147, 147,
3751  1029, 394, 147, 756, 312, 147, 121, 389, 451, 346,
3752  392, 653, 394, 395, 656, 397, 51, 437, 438, 142,
3753  55, 138, 427, 140, 783, 148, 90, 791, 37, 38,
3754  147, 346, 674, 92, 115, 427, 351, 118, 119, 55,
3755  949, 105, 522, 952, 18, 427, 20, 452, 706, 529,
3756  25, 709, 142, 92, 429, 437, 438, 432, 786, 20,
3757  452, 925, 467, 771, 792, 793, 730, 427, 460, 927,
3758  452, 476, 454, 455, 312, 467, 140, 142, 453, 16,
3759  494, 463, 121, 147, 476, 467, 92, 395, 597, 471,
3760  798, 496, 452, 468, 476, 500, 713, 494, 286, 481,
3761  392, 512, 477, 429, 92, 397, 294, 467, 57, 536,
3762  92, 538, 504, 505, 312, 121, 476, 870, 871, 138,
3763  1029, 513, 527, 92, 704, 530, 92, 453, 760, 761,
3764  762, 513, 764, 121, 766, 540, 844, 512, 647, 121,
3765  522, 516, 468, 751, 101, 496, 503, 145, 540, 17,
3766  18, 477, 121, 121, 536, 121, 538, 395, 540, 542,
3767  142, 141, 512, 927, 55, 547, 541, 778, 896, 90,
3768  610, 58, 59, 600, 92, 833, 527, 139, 115, 780,
3769  540, 118, 119, 92, 105, 786, 666, 92, 92, 142,
3770  516, 792, 793, 485, 101, 704, 121, 395, 513, 907,
3771  101, 593, 51, 121, 713, 51, 394, 522, 142, 146,
3772  90, 148, 121, 142, 628, 541, 121, 121, 600, 140,
3773  837, 92, 142, 144, 704, 105, 147, 2, 536, 4,
3774  538, 628, 142, 142, 9, 10, 51, 142, 142, 92,
3775  15, 16, 17, 851, 27, 20, 142, 367, 1001, 92,
3776  121, 859, 101, 102, 103, 647, 1015, 866, 867, 90,
3777  140, 653, 74, 75, 656, 657, 658, 147, 121, 90,
3778  51, 667, 142, 121, 105, 463, 99, 52, 121, 128,
3779  51, 101, 674, 471, 105, 667, 668, 679, 680, 700,
3780  682, 66, 600, 481, 15, 896, 677, 689, 536, 13,
3781  538, 16, 677, 699, 730, 937, 938, 939, 940, 140,
3782  63, 131, 132, 133, 719, 720, 147, 699, 644, 140,
3783  26, 713, 802, 796, 738, 700, 147, 653, 837, 15,
3784  656, 911, 115, 142, 145, 118, 119, 917, 536, 145,
3785  538, 949, 117, 644, 119, 139, 672, 827, 674, 142,
3786  700, 778, 653, 15, 115, 656, 90, 118, 119, 547,
3787  780, 15, 600, 146, 756, 148, 786, 787, 719, 142,
3788  44, 105, 792, 793, 121, 26, 9, 10, 783, 141,
3789  15, 141, 15, 141, 90, 141, 791, 679, 18, 771,
3790  139, 783, 15, 1025, 437, 438, 778, 779, 780, 105,
3791  139, 783, 600, 141, 786, 787, 140, 148, 800, 784,
3792  792, 793, 139, 147, 1022, 57, 798, 799, 810, 815,
3793  142, 813, 770, 783, 26, 1033, 469, 470, 15, 142,
3794  812, 911, 138, 815, 140, 210, 26, 917, 144, 90,
3795  791, 147, 824, 825, 142, 837, 221, 222, 568, 142,
3796  832, 90, 866, 867, 105, 142, 575, 93, 784, 14,
3797  579, 15, 844, 845, 779, 585, 105, 15, 588, 575,
3798  778, 146, 145, 142, 517, 142, 896, 142, 870, 871,
3799  90, 142, 142, 15, 117, 141, 868, 138, 90, 140,
3800  298, 873, 15, 144, 302, 105, 147, 15, 273, 139,
3801  90, 140, 277, 105, 15, 90, 281, 282, 147, 15,
3802  139, 286, 126, 126, 896, 105, 142, 55, 293, 294,
3803  105, 139, 927, 15, 906, 907, 301, 55, 910, 969,
3804  140, 142, 914, 925, 37, 38, 138, 147, 140, 142,
3805  778, 142, 144, 90, 142, 147, 90, 142, 138, 142,
3806  140, 15, 144, 144, 144, 140, 142, 147, 105, 141,
3807  868, 105, 147, 513, 13, 873, 6, 1018, 982, 1017,
3808  1020, 346, 347, 348, 349, 350, 351, 352, 353, 770,
3809  778, 797, 90, 7, 252, 982, 575, 949, 221, 222,
3810  972, 946, 974, 140, 369, 977, 140, 105, 946, -1,
3811  147, 949, 910, 147, 952, 62, 954, 64, 65, 1001,
3812  1015, 799, 115, 268, 389, 118, 119, 392, -1, 394,
3813  -1, -1, 397, 1015, 812, 1017, 1018, -1, -1, -1,
3814  868, -1, 140, 1015, -1, 873, 824, 825, -1, 147,
3815  -1, 1016, -1, 146, 832, 148, -1, -1, 281, 282,
3816  770, 770, 427, -1, 1002, 1015, -1, 845, -1, 116,
3817  117, -1, 437, 438, 770, 40, 41, 42, 43, 44,
3818  868, -1, 910, -1, -1, 873, -1, 452, -1, 454,
3819  455, 1029, 425, 1031, -1, 1033, 429, 1035, 463, 432,
3820  1016, -1, 467, 501, -1, -1, 471, -1, 90, -1,
3821  508, 476, -1, -1, -1, -1, 481, 1055, -1, 90,
3822  453, 519, 910, 105, 347, 348, 349, 350, 906, 352,
3823  353, -1, -1, 466, 105, 468, 914, 51, -1, 53,
3824  54, 55, 56, -1, 477, 855, -1, 857, 513, -1,
3825  -1, 861, 90, 786, 787, 69, -1, 522, 140, 792,
3826  793, 62, -1, 64, 65, 147, -1, 105, -1, 140,
3827  -1, 569, 570, 9, 10, 540, 147, 875, 876, 15,
3828  16, 17, 547, 516, 20, 818, 819, -1, 821, 822,
3829  -1, -1, -1, -1, 972, -1, 974, -1, -1, 977,
3830  -1, 599, 140, -1, -1, -1, -1, -1, 541, 147,
3831  -1, 47, 48, 49, 50, 116, 117, -1, 54, 55,
3832  -1, 115, 932, 933, 118, 119, -1, -1, 142, -1,
3833  66, 67, 455, -1, 63, 64, 65, 946, -1, -1,
3834  949, -1, 952, 952, 954, 954, 63, 64, 65, -1,
3835  946, 949, 146, 949, 148, -1, 952, 51, 954, 53,
3836  54, 55, 56, 896, 63, 64, 65, 51, -1, 53,
3837  54, 55, 56, -1, -1, 69, -1, -1, 676, 989,
3838  -1, 117, 992, -1, -1, 69, 919, 116, 117, 63,
3839  64, 65, -1, 1002, -1, -1, -1, -1, -1, 116,
3840  117, -1, 667, 668, -1, -1, 1002, 1005, 1006, 1007,
3841  94, 1009, 1010, -1, 1024, -1, 100, 116, 117, 1029,
3842  1029, 1031, 1031, -1, 1033, 1035, 1035, 63, 64, 65,
3843  -1, 729, -1, 1029, 699, 1031, -1, 1033, -1, 1035,
3844  -1, -1, 116, 117, -1, 1055, 1055, -1, 142, 747,
3845  0, 1049, 1050, 1051, 1052, -1, -1, -1, -1, 1055,
3846  -1, 1059, -1, 13, 14, 15, 16, 17, 18, -1,
3847  20, -1, -1, -1, -1, -1, 26, 27, -1, -1,
3848  116, 117, 63, 64, 65, 221, 222, 37, 38, -1,
3849  40, 41, 42, 43, 44, -1, -1, -1, 2, -1,
3850  4, 5, 6, 63, 64, 65, 771, -1, -1, 13,
3851  63, 64, 65, -1, 779, 780, -1, -1, 783, -1,
3852  -1, 786, 787, 259, 260, 261, 262, 792, 793, -1,
3853  88, 89, -1, 798, 799, 116, 117, 273, 836, -1,
3854  90, 277, -1, 101, 667, 281, 282, 812, 52, 782,
3855  815, 784, 56, -1, 852, 105, 116, 117, -1, 824,
3856  825, -1, -1, 116, 117, 115, -1, 832, 118, 119,
3857  128, 129, 130, 131, 132, 133, 699, -1, 82, 844,
3858  845, 51, -1, 53, 54, 55, 56, -1, 138, 139,
3859  -1, -1, -1, -1, 144, 145, 146, 147, 148, 69,
3860  51, -1, 53, 54, 55, 56, -1, 101, -1, 88,
3861  89, 347, 348, 349, 350, 119, 352, 353, 69, -1,
3862  -1, -1, 101, -1, 94, -1, -1, -1, -1, -1,
3863  100, 896, -1, -1, 370, 129, 130, 131, 132, 133,
3864  -1, 906, 907, 94, -1, 381, -1, -1, -1, 914,
3865  129, 130, 131, 132, 133, -1, 392, -1, -1, -1,
3866  -1, 397, 398, 399, 400, 401, 402, 403, 404, 405,
3867  406, 407, 408, 409, 410, 411, -1, 413, 414, 415,
3868  416, 417, 418, 419, 420, 421, 422, 423, 424, -1,
3869  -1, 427, 815, -1, -1, -1, -1, 2, -1, 4,
3870  -1, 437, 438, -1, -1, -1, 210, 972, 13, 974,
3871  -1, 115, 977, -1, 118, 119, 452, -1, -1, 455,
3872  -1, 2, -1, 4, 5, 6, 7, -1, -1, 465,
3873  -1, 467, 13, 469, 470, -1, -1, -1, -1, -1,
3874  476, 145, 146, -1, 148, -1, -1, 52, -1, 485,
3875  1015, -1, -1, 489, -1, -1, -1, 493, -1, -1,
3876  496, -1, 498, -1, 500, 501, -1, -1, -1, 115,
3877  -1, 52, 118, 119, 51, 56, 53, 54, 55, 56,
3878  -1, 517, 286, 1016, -1, -1, -1, -1, -1, 293,
3879  294, 527, 69, -1, 530, -1, 142, 301, -1, -1,
3880  146, 82, 148, -1, 540, -1, -1, -1, 312, -1,
3881  -1, -1, -1, -1, 119, -1, -1, 94, -1, -1,
3882  556, 557, -1, 100, 101, 102, 103, 51, -1, 53,
3883  54, 55, 56, -1, -1, -1, 572, -1, 119, 44,
3884  -1, -1, 346, -1, -1, 69, -1, 351, -1, -1,
3885  -1, 128, -1, -1, 131, 591, -1, -1, 594, -1,
3886  -1, -1, -1, -1, -1, 369, -1, 72, 73, 74,
3887  75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
3888  -1, -1, -1, 88, 89, 389, -1, -1, -1, -1,
3889  394, 395, -1, 397, -1, 51, 101, 53, 54, 55,
3890  56, -1, -1, -1, -1, 210, -1, -1, -1, -1,
3891  2, -1, 4, 69, -1, -1, -1, 122, -1, 124,
3892  125, 126, 127, 128, 129, 130, 131, 132, 133, 210,
3893  -1, 667, -1, 437, 438, -1, -1, 142, 94, -1,
3894  -1, -1, -1, 679, 100, 101, 102, 103, -1, -1,
3895  454, 51, -1, 53, 54, 55, 56, -1, -1, 463,
3896  52, -1, -1, 699, -1, -1, -1, 471, -1, 69,
3897  -1, -1, 128, -1, 710, 131, -1, 481, -1, -1,
3898  -1, 286, -1, 719, 720, -1, 142, -1, 293, 294,
3899  -1, -1, -1, -1, 94, -1, 301, -1, -1, -1,
3900  -1, 101, 102, 103, -1, 286, -1, -1, -1, 513,
3901  -1, -1, 293, 294, -1, -1, -1, -1, 522, -1,
3902  301, -1, -1, -1, -1, -1, -1, 119, 128, -1,
3903  -1, 312, 536, -1, 538, -1, -1, -1, -1, 775,
3904  -1, 346, -1, 547, 780, 781, 351, 783, -1, -1,
3905  786, 787, -1, -1, -1, 791, 792, 793, -1, -1,
3906  -1, -1, -1, -1, 369, 346, -1, -1, -1, -1,
3907  351, -1, -1, -1, -1, -1, -1, -1, -1, 815,
3908  -1, -1, 818, 819, 389, 821, 822, -1, 369, 394,
3909  -1, -1, 397, -1, -1, 831, 600, -1, -1, -1,
3910  836, -1, -1, -1, -1, -1, -1, -1, 389, -1,
3911  -1, -1, -1, 394, 395, -1, -1, 853, 210, 51,
3912  -1, 53, 54, 55, 56, -1, -1, -1, 864, -1,
3913  -1, -1, 437, 438, -1, -1, -1, 69, -1, -1,
3914  -1, -1, -1, 879, -1, -1, -1, -1, -1, 454,
3915  -1, -1, -1, 889, 890, -1, -1, -1, 463, -1,
3916  896, -1, 94, -1, 668, -1, 471, -1, 100, 101,
3917  102, 103, -1, 454, -1, -1, 481, -1, -1, -1,
3918  -1, -1, 463, 919, -1, -1, -1, -1, -1, -1,
3919  471, 927, -1, -1, 286, -1, 128, -1, -1, 131,
3920  481, 293, 294, -1, -1, 88, 89, -1, 513, 301,
3921  -1, -1, 144, -1, -1, -1, -1, 522, 101, 51,
3922  -1, 53, 54, 55, 56, -1, -1, -1, -1, -1,
3923  -1, -1, 513, -1, -1, -1, -1, 69, -1, -1,
3924  -1, 522, 547, 126, 127, 128, 129, 130, 131, 132,
3925  133, -1, -1, -1, 346, 536, -1, 538, -1, 351,
3926  -1, -1, 94, -1, -1, -1, 547, 771, 100, 101,
3927  102, 103, -1, -1, 778, 779, 780, 369, -1, 1015,
3928  -1, -1, 786, -1, -1, -1, -1, -1, 792, 793,
3929  -1, -1, -1, -1, 798, 799, 128, 389, -1, 131,
3930  -1, -1, 394, -1, -1, 397, -1, -1, 812, -1,
3931  -1, -1, 144, -1, -1, -1, -1, -1, -1, 600,
3932  824, 825, -1, -1, -1, -1, -1, -1, 832, -1,
3933  -1, 51, -1, 53, 54, 55, 56, -1, -1, -1,
3934  844, 845, -1, -1, -1, 437, 438, -1, -1, 69,
3935  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3936  -1, -1, 454, 668, 868, 85, -1, -1, -1, 873,
3937  -1, 463, -1, 51, 94, 53, 54, 55, 56, 471,
3938  100, 101, 102, 103, -1, -1, -1, 668, -1, 481,
3939  -1, 69, 896, -1, -1, -1, -1, -1, -1, -1,
3940  -1, -1, 906, 907, -1, -1, 910, 85, 128, -1,
3941  914, 131, -1, -1, -1, -1, 94, -1, -1, -1,
3942  -1, 513, 100, 101, 102, 103, -1, -1, -1, -1,
3943  522, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3944  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3945  128, -1, -1, 131, -1, 547, -1, -1, -1, -1,
3946  -1, -1, -1, -1, -1, -1, 771, -1, 972, -1,
3947  974, -1, -1, 977, 779, 780, -1, -1, -1, -1,
3948  -1, 786, -1, -1, -1, -1, -1, 792, 793, -1,
3949  771, -1, -1, 798, 799, -1, -1, 778, 779, -1,
3950  -1, -1, -1, -1, -1, -1, -1, 812, -1, -1,
3951  -1, -1, -1, -1, -1, -1, -1, 798, 799, 824,
3952  825, -1, -1, -1, -1, -1, -1, 832, -1, -1,
3953  -1, 812, -1, -1, -1, -1, -1, -1, -1, 844,
3954  845, -1, -1, 824, 825, -1, -1, -1, -1, -1,
3955  -1, 832, -1, -1, -1, -1, -1, -1, -1, -1,
3956  -1, -1, -1, 844, 845, -1, -1, -1, -1, -1,
3957  -1, -1, -1, -1, -1, -1, 668, -1, -1, -1,
3958  -1, -1, -1, -1, -1, -1, -1, 868, -1, -1,
3959  -1, 896, 873, -1, -1, 72, 73, 74, 75, 76,
3960  77, 906, 907, 80, 81, 910, -1, -1, -1, 914,
3961  -1, 88, 89, -1, -1, -1, -1, -1, -1, -1,
3962  -1, -1, -1, -1, 101, 906, 907, -1, -1, 910,
3963  -1, -1, -1, 914, -1, -1, -1, -1, -1, -1,
3964  -1, -1, -1, -1, -1, -1, -1, 124, 125, 126,
3965  127, 128, 129, 130, 131, 132, 133, -1, -1, -1,
3966  -1, -1, -1, -1, -1, -1, -1, 972, -1, 974,
3967  -1, -1, 977, -1, -1, -1, -1, -1, -1, 771,
3968  44, -1, -1, -1, -1, -1, -1, 779, 780, -1,
3969  -1, 972, -1, 974, 786, -1, 977, -1, -1, -1,
3970  792, 793, -1, -1, -1, -1, 798, 799, 72, 73,
3971  74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3972  812, -1, -1, -1, 88, 89, -1, -1, -1, -1,
3973  -1, -1, 824, 825, -1, -1, -1, 101, -1, -1,
3974  832, -1, -1, 44, -1, -1, -1, -1, -1, -1,
3975  -1, -1, 844, 845, -1, -1, -1, -1, 122, -1,
3976  124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
3977  -1, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3978  81, 82, 83, -1, -1, -1, -1, 88, 89, -1,
3979  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3980  101, -1, -1, -1, 896, -1, -1, -1, -1, -1,
3981  -1, -1, -1, -1, 906, 907, -1, -1, -1, -1,
3982  -1, 122, 914, 124, 125, 126, 127, 128, 129, 130,
3983  131, 132, 133, -1, -1, -1, -1, -1, -1, -1,
3984  -1, -1, 0, 1, -1, 3, 4, 5, 6, 7,
3985  8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
3986  -1, 19, -1, 21, 22, 23, 24, -1, -1, -1,
3987  -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3988  972, 39, 974, -1, -1, 977, -1, 45, 46, 47,
3989  48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
3990  58, 59, 60, -1, -1, 63, -1, -1, 66, 67,
3991  -1, 69, 70, 71, -1, -1, -1, -1, -1, -1,
3992  -1, -1, -1, -1, -1, -1, 84, 85, -1, -1,
3993  -1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
3994  98, -1, 100, -1, -1, -1, 104, -1, 106, 107,
3995  108, -1, 110, 111, 112, 0, 114, 115, -1, -1,
3996  118, 119, -1, -1, -1, -1, -1, -1, 13, 14,
3997  15, 16, 17, 18, -1, 20, 134, 135, 136, -1,
3998  -1, -1, 27, 28, 29, -1, -1, -1, 146, -1,
3999  148, -1, 37, 38, -1, 40, 41, 42, 43, 44,
4000  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4001  -1, -1, 57, -1, -1, -1, -1, -1, -1, -1,
4002  -1, -1, -1, -1, -1, -1, -1, 72, 73, 74,
4003  75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
4004  -1, -1, -1, 88, 89, 90, -1, -1, 93, -1,
4005  -1, -1, -1, -1, 99, -1, 101, -1, -1, -1,
4006  105, -1, -1, -1, -1, -1, -1, -1, 113, -1,
4007  115, -1, -1, 118, 119, -1, -1, 122, 123, 124,
4008  125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
4009  -1, 0, -1, -1, 139, 140, 141, 142, -1, -1,
4010  145, 146, 147, 148, 13, 14, 15, 16, 17, 18,
4011  -1, 20, -1, -1, -1, -1, -1, 26, 27, 28,
4012  -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
4013  -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
4014  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4015  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4016  -1, -1, -1, 72, 73, 74, 75, 76, 77, 78,
4017  79, 80, 81, 82, 83, -1, -1, -1, -1, 88,
4018  89, 90, -1, -1, 93, -1, -1, -1, -1, -1,
4019  99, -1, 101, -1, -1, -1, 105, -1, -1, -1,
4020  -1, -1, -1, -1, -1, -1, 115, -1, -1, 118,
4021  119, -1, -1, 122, -1, 124, 125, 126, 127, 128,
4022  129, 130, 131, 132, 133, -1, -1, 0, -1, 138,
4023  139, 140, 141, 142, -1, 144, 145, 146, 147, 148,
4024  13, 14, 15, 16, 17, 18, -1, 20, -1, -1,
4025  -1, -1, -1, -1, 27, 28, -1, -1, -1, -1,
4026  -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
4027  43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
4028  -1, -1, -1, -1, 57, -1, -1, -1, -1, -1,
4029  -1, -1, -1, -1, -1, -1, -1, -1, -1, 72,
4030  73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
4031  83, -1, -1, -1, -1, 88, 89, 90, -1, 92,
4032  93, -1, -1, -1, -1, -1, 99, -1, 101, -1,
4033  -1, -1, 105, -1, -1, -1, -1, -1, -1, -1,
4034  -1, -1, 115, -1, -1, 118, 119, -1, 121, 122,
4035  -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
4036  133, -1, -1, 0, -1, -1, 139, 140, 141, 142,
4037  -1, -1, 145, 146, 147, 148, 13, 14, 15, 16,
4038  17, 18, -1, 20, -1, -1, -1, -1, -1, 26,
4039  27, 28, -1, -1, -1, -1, -1, -1, -1, -1,
4040  37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
4041  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4042  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4043  -1, -1, -1, -1, -1, 72, 73, 74, 75, 76,
4044  77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
4045  -1, 88, 89, 90, -1, -1, 93, -1, -1, -1,
4046  -1, -1, 99, -1, 101, -1, -1, -1, 105, -1,
4047  -1, -1, -1, -1, -1, -1, -1, -1, 115, -1,
4048  -1, 118, 119, -1, -1, 122, -1, 124, 125, 126,
4049  127, 128, 129, 130, 131, 132, 133, -1, -1, 0,
4050  -1, 138, 139, 140, 141, 142, -1, 144, 145, 146,
4051  147, 148, 13, 14, 15, 16, 17, 18, -1, 20,
4052  -1, -1, -1, -1, -1, -1, 27, 28, -1, -1,
4053  -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
4054  41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
4055  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4056  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4057  -1, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4058  81, 82, 83, -1, -1, -1, -1, 88, 89, 90,
4059  -1, -1, 93, -1, -1, -1, -1, -1, 99, -1,
4060  101, -1, -1, -1, 105, -1, -1, -1, -1, -1,
4061  -1, -1, -1, -1, 115, -1, -1, 118, 119, -1,
4062  -1, 122, -1, 124, 125, 126, 127, 128, 129, 130,
4063  131, 132, 133, -1, -1, 0, -1, -1, 139, 140,
4064  141, 142, -1, 144, 145, 146, 147, 148, 13, 14,
4065  15, -1, 17, 18, -1, 20, -1, -1, -1, -1,
4066  -1, 26, -1, -1, -1, -1, -1, -1, -1, -1,
4067  -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
4068  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4069  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4070  -1, -1, -1, -1, -1, -1, -1, 72, 73, 74,
4071  75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
4072  -1, -1, -1, 88, 89, 90, -1, 92, 93, -1,
4073  -1, -1, -1, -1, -1, -1, 101, -1, -1, -1,
4074  105, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4075  115, -1, -1, 118, 119, -1, 121, 122, -1, 124,
4076  125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
4077  -1, 0, -1, 138, 139, 140, -1, 142, -1, -1,
4078  145, 146, 147, 148, 13, 14, 15, -1, 17, 18,
4079  -1, 20, -1, -1, -1, -1, -1, 26, -1, -1,
4080  -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
4081  -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
4082  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4083  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4084  -1, -1, -1, 72, 73, 74, 75, 76, 77, 78,
4085  79, 80, 81, 82, 83, -1, -1, -1, -1, 88,
4086  89, 90, -1, 92, 93, -1, -1, -1, -1, -1,
4087  -1, -1, 101, -1, -1, -1, 105, -1, -1, -1,
4088  -1, -1, -1, -1, -1, -1, 115, -1, -1, 118,
4089  119, -1, 121, 122, -1, 124, 125, 126, 127, 128,
4090  129, 130, 131, 132, 133, -1, -1, 0, -1, 138,
4091  139, 140, -1, 142, -1, -1, 145, 146, 147, 148,
4092  13, 14, 15, -1, 17, 18, -1, 20, -1, -1,
4093  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4094  -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
4095  43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
4096  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4097  -1, -1, -1, -1, -1, -1, -1, -1, -1, 72,
4098  73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
4099  83, -1, -1, -1, -1, 88, 89, 90, -1, 92,
4100  93, -1, -1, -1, -1, -1, -1, -1, 101, -1,
4101  -1, -1, 105, -1, -1, -1, -1, -1, -1, -1,
4102  -1, -1, 115, -1, -1, 118, 119, -1, 121, 122,
4103  -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
4104  133, -1, -1, 0, -1, -1, 139, 140, -1, 142,
4105  -1, -1, 145, 146, 147, 148, 13, 14, 15, -1,
4106  17, 18, -1, 20, -1, -1, -1, -1, -1, -1,
4107  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4108  37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
4109  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4110  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4111  -1, -1, -1, -1, -1, 72, 73, 74, 75, 76,
4112  77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
4113  -1, 88, 89, 90, -1, 92, 93, -1, -1, -1,
4114  -1, -1, -1, -1, 101, -1, -1, -1, 105, -1,
4115  -1, -1, -1, -1, -1, -1, -1, -1, 115, -1,
4116  -1, 118, 119, -1, 121, 122, -1, 124, 125, 126,
4117  127, 128, 129, 130, 131, 132, 133, -1, -1, -1,
4118  -1, -1, 139, 140, -1, 142, -1, -1, 145, 146,
4119  147, 148, 1, -1, 3, 4, 5, 6, 7, 8,
4120  9, 10, 11, 12, 13, 14, 15, -1, -1, 18,
4121  19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
4122  -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4123  39, -1, -1, -1, -1, -1, 45, -1, 47, 48,
4124  49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
4125  59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
4126  69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
4127  -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
4128  -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
4129  -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
4130  -1, 110, 111, 112, -1, 114, 115, -1, -1, 118,
4131  119, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4132  -1, -1, -1, -1, -1, 134, 135, 136, -1, -1,
4133  -1, -1, -1, -1, -1, -1, -1, 146, 1, 148,
4134  3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
4135  -1, -1, 15, -1, 17, 18, 19, -1, 21, 22,
4136  23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4137  33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4138  -1, -1, 45, -1, 47, 48, 49, 50, 51, 52,
4139  53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
4140  63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
4141  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4142  -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
4143  -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
4144  -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
4145  -1, 114, 115, -1, -1, 118, 119, -1, -1, -1,
4146  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4147  -1, 134, 135, 136, -1, -1, -1, -1, -1, -1,
4148  -1, -1, -1, 146, 1, 148, 3, 4, 5, 6,
4149  7, 8, 9, 10, 11, 12, -1, -1, 15, -1,
4150  -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4151  -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4152  -1, -1, 39, -1, -1, -1, -1, -1, 45, -1,
4153  47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4154  -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
4155  67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
4156  -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
4157  -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
4158  97, 98, -1, 100, -1, -1, -1, 104, -1, 106,
4159  107, 108, -1, 110, 111, 112, -1, 114, 115, -1,
4160  -1, 118, 119, -1, -1, -1, -1, -1, -1, -1,
4161  -1, -1, -1, -1, -1, -1, -1, 134, 135, 136,
4162  -1, -1, -1, -1, -1, -1, -1, -1, -1, 146,
4163  1, 148, 3, 4, 5, 6, 7, 8, 9, 10,
4164  11, 12, -1, -1, 15, -1, -1, 18, 19, -1,
4165  21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4166  31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4167  -1, -1, -1, -1, 45, -1, 47, 48, 49, 50,
4168  51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
4169  -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
4170  71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4171  -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
4172  91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
4173  -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
4174  111, 112, -1, 114, 115, -1, -1, 118, 119, 1,
4175  -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4176  12, -1, -1, 134, 135, 136, -1, 19, -1, 21,
4177  22, 23, 24, -1, -1, 146, -1, 148, 30, 31,
4178  32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4179  -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
4180  52, 53, 54, 55, 56, -1, 58, 59, 60, -1,
4181  -1, 63, -1, -1, 66, 67, -1, 69, 70, 71,
4182  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4183  -1, -1, 84, 85, -1, -1, -1, -1, -1, 91,
4184  -1, -1, 94, 95, -1, 97, 98, -1, 100, -1,
4185  -1, -1, 104, -1, 106, 107, 108, -1, 110, 111,
4186  112, -1, 114, 115, -1, -1, 118, 119, -1, -1,
4187  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4188  -1, -1, 134, 135, 136, -1, -1, 139, -1, -1,
4189  -1, -1, -1, -1, 146, 1, 148, 3, 4, 5,
4190  6, 7, 8, 9, 10, 11, 12, -1, 14, 15,
4191  -1, -1, -1, 19, -1, 21, 22, 23, 24, -1,
4192  -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4193  36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
4194  -1, 47, 48, 49, 50, 51, 52, 53, 54, 55,
4195  56, -1, 58, 59, 60, -1, -1, 63, -1, -1,
4196  66, 67, -1, 69, 70, 71, -1, -1, -1, -1,
4197  -1, -1, -1, -1, -1, -1, -1, -1, 84, 85,
4198  -1, -1, -1, -1, -1, 91, -1, -1, 94, 95,
4199  -1, 97, 98, -1, 100, -1, -1, -1, 104, -1,
4200  106, 107, 108, -1, 110, 111, 112, -1, 114, 115,
4201  -1, -1, 118, 119, 1, -1, 3, 4, 5, 6,
4202  7, 8, 9, 10, 11, 12, -1, -1, 134, 135,
4203  136, -1, 19, -1, 21, 22, 23, 24, -1, -1,
4204  146, -1, 148, 30, 31, 32, 33, 34, 35, 36,
4205  -1, -1, 39, -1, -1, -1, -1, -1, 45, -1,
4206  47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4207  -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
4208  67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
4209  -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
4210  -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
4211  97, 98, -1, 100, -1, -1, -1, 104, -1, 106,
4212  107, 108, -1, 110, 111, 112, -1, 114, 115, -1,
4213  -1, 118, 119, 1, -1, 3, 4, 5, 6, 7,
4214  8, 9, 10, 11, 12, -1, -1, 134, 135, 136,
4215  -1, 19, -1, 21, 22, 23, 24, -1, 145, 146,
4216  -1, 148, 30, 31, 32, 33, 34, 35, 36, -1,
4217  -1, 39, -1, -1, -1, -1, -1, 45, -1, 47,
4218  48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
4219  58, 59, 60, -1, -1, 63, -1, -1, 66, 67,
4220  -1, 69, 70, 71, -1, -1, -1, -1, -1, -1,
4221  -1, -1, -1, -1, -1, -1, 84, 85, -1, -1,
4222  -1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
4223  98, -1, 100, -1, -1, -1, 104, -1, 106, 107,
4224  108, -1, 110, 111, 112, -1, 114, 115, -1, -1,
4225  118, 119, 1, -1, 3, 4, 5, 6, 7, 8,
4226  9, 10, 11, 12, -1, -1, 134, 135, 136, -1,
4227  19, -1, 21, 22, 23, 24, -1, 145, 146, -1,
4228  148, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4229  39, -1, -1, -1, -1, -1, 45, -1, 47, 48,
4230  49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
4231  59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
4232  69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
4233  -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
4234  -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
4235  -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
4236  -1, 110, 111, 112, -1, 114, 115, -1, -1, 118,
4237  119, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4238  -1, -1, -1, -1, -1, 134, 135, 136, -1, -1,
4239  139, -1, -1, -1, -1, -1, -1, 146, 1, 148,
4240  3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
4241  -1, -1, 15, -1, -1, -1, 19, -1, 21, 22,
4242  23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4243  33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4244  -1, -1, 45, -1, 47, 48, 49, 50, 51, 52,
4245  53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
4246  63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
4247  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4248  -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
4249  -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
4250  -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
4251  -1, 114, 115, -1, -1, 118, 119, -1, -1, 3,
4252  4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
4253  -1, 134, 135, 136, -1, 19, -1, 21, 22, 23,
4254  24, -1, -1, 146, -1, 148, 30, 31, 32, 33,
4255  34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4256  -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
4257  54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
4258  -1, -1, 66, 67, -1, 69, 70, 71, -1, -1,
4259  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4260  84, 85, -1, -1, -1, -1, -1, 91, -1, -1,
4261  94, 95, -1, 97, 98, -1, 100, -1, -1, -1,
4262  104, -1, 106, 107, 108, -1, 110, 111, 112, -1,
4263  114, 115, -1, -1, 118, 119, -1, -1, 3, 4,
4264  5, 6, 7, 8, 9, 10, 11, 12, -1, -1,
4265  134, 135, 136, -1, 19, -1, 21, 22, 23, 24,
4266  -1, -1, 146, -1, 148, 30, 31, 32, 33, 34,
4267  35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4268  45, -1, 47, 48, 49, 50, 51, 52, 53, 54,
4269  55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
4270  -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
4271  -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
4272  85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
4273  95, -1, 97, 98, -1, 100, -1, -1, -1, 104,
4274  -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
4275  115, -1, -1, 118, 119, -1, -1, 3, 4, 5,
4276  6, 7, 8, 9, 10, 11, -1, -1, -1, 134,
4277  135, 136, -1, 19, -1, 21, 22, 23, 24, -1,
4278  -1, 146, -1, 148, 30, 31, 32, 33, 34, 35,
4279  36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4280  -1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
4281  56, -1, 58, 59, 60, -1, -1, 63, -1, -1,
4282  66, 67, -1, 69, 70, 71, -1, -1, -1, -1,
4283  -1, -1, -1, -1, -1, -1, -1, -1, 84, 85,
4284  -1, -1, -1, -1, -1, 91, -1, -1, 94, 95,
4285  -1, 97, 98, -1, -1, -1, -1, -1, 104, -1,
4286  106, 107, 108, -1, 110, 111, 112, -1, 114, 115,
4287  -1, -1, 118, 119, -1, -1, 3, 4, 5, 6,
4288  7, 8, 9, 10, 11, -1, -1, -1, 134, 135,
4289  136, -1, 19, -1, 21, 22, 23, 24, -1, -1,
4290  146, -1, 148, 30, 31, 32, 33, 34, 35, 36,
4291  -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
4292  -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4293  -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
4294  67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
4295  -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
4296  -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
4297  97, 98, -1, -1, -1, -1, -1, 104, -1, 106,
4298  107, 108, -1, 110, 111, 112, -1, 114, 115, -1,
4299  -1, 118, 119, -1, -1, -1, -1, -1, -1, -1,
4300  -1, -1, -1, -1, -1, -1, -1, 134, 135, 136,
4301  -1, -1, -1, -1, -1, -1, -1, -1, -1, 146,
4302  -1, 148, 3, 4, 5, 6, 7, 8, 9, 10,
4303  11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
4304  21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
4305  31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
4306  -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
4307  51, 52, 53, 54, 55, 56, -1, -1, -1, -1,
4308  -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
4309  71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
4310  81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
4311  -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
4312  101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
4313  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4314  -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
4315  131, 132, 133, -1, 135, 136, -1, -1, -1, -1,
4316  -1, -1, 143, 144, 3, 4, 5, 6, 7, 8,
4317  9, 10, 11, -1, -1, -1, -1, -1, -1, -1,
4318  19, -1, 21, 22, 23, 24, -1, 26, -1, -1,
4319  -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4320  39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
4321  49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
4322  59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
4323  69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
4324  -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
4325  -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
4326  -1, 100, -1, 102, 103, 104, -1, 106, 107, 108,
4327  -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
4328  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4329  -1, -1, -1, -1, -1, 134, 135, 136, -1, 138,
4330  -1, -1, -1, -1, -1, 144, 3, 4, 5, 6,
4331  7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
4332  -1, -1, 19, -1, 21, 22, 23, 24, -1, 26,
4333  -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4334  -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
4335  -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4336  -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
4337  67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
4338  -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
4339  -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
4340  97, 98, -1, 100, -1, 102, 103, 104, -1, 106,
4341  107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
4342  -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
4343  9, 10, 11, -1, -1, -1, -1, 134, 135, 136,
4344  19, 138, 21, 22, 23, 24, -1, 144, -1, -1,
4345  -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4346  39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
4347  49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
4348  59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
4349  69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
4350  -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
4351  -1, -1, 91, 92, -1, 94, 95, -1, 97, 98,
4352  -1, 100, -1, 102, 103, 104, -1, 106, 107, 108,
4353  -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
4354  -1, -1, 121, 3, 4, 5, 6, 7, 8, 9,
4355  10, 11, -1, -1, -1, 134, 135, 136, -1, 19,
4356  -1, 21, 22, 23, 24, 144, -1, -1, -1, -1,
4357  30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4358  -1, -1, -1, -1, -1, -1, -1, -1, 48, 49,
4359  50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
4360  60, -1, -1, 63, -1, -1, 66, 67, -1, 69,
4361  70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
4362  -1, -1, -1, -1, 84, 85, -1, -1, -1, -1,
4363  -1, 91, 92, -1, 94, 95, -1, 97, 98, -1,
4364  100, -1, 102, 103, 104, -1, 106, 107, 108, -1,
4365  110, 111, 112, -1, 114, -1, -1, -1, -1, -1,
4366  -1, 121, 3, 4, 5, 6, 7, 8, 9, 10,
4367  11, -1, -1, -1, 134, 135, 136, -1, 19, -1,
4368  21, 22, 23, 24, 144, -1, -1, -1, -1, 30,
4369  31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4370  -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
4371  51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
4372  -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
4373  71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4374  -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
4375  91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
4376  -1, 102, 103, 104, -1, 106, 107, 108, -1, 110,
4377  111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
4378  3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
4379  -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
4380  23, 24, -1, 144, -1, -1, -1, 30, 31, 32,
4381  33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4382  -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
4383  53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
4384  63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
4385  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4386  -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
4387  -1, 94, 95, -1, 97, 98, -1, 100, -1, 102,
4388  103, 104, -1, 106, 107, 108, -1, 110, 111, 112,
4389  -1, 114, -1, -1, -1, -1, -1, -1, -1, -1,
4390  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4391  -1, 134, 135, 136, -1, -1, -1, -1, -1, -1,
4392  -1, 144, 3, 4, 5, 6, 7, 8, 9, 10,
4393  11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
4394  21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
4395  31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
4396  -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
4397  51, 52, 53, 54, 55, 56, -1, -1, -1, -1,
4398  -1, -1, 63, -1, -1, -1, -1, -1, -1, 70,
4399  71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
4400  81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
4401  -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
4402  101, 102, -1, -1, -1, -1, 107, -1, -1, -1,
4403  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4404  -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
4405  131, 132, 133, -1, 135, 136, -1, -1, -1, -1,
4406  -1, -1, 143, 3, 4, 5, 6, 7, 8, 9,
4407  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4408  20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
4409  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
4410  -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4411  50, 51, 52, 53, 54, 55, 56, -1, -1, -1,
4412  -1, -1, -1, 63, -1, -1, -1, -1, -1, -1,
4413  70, 71, 72, 73, 74, 75, 76, 77, -1, -1,
4414  80, 81, -1, -1, -1, -1, 86, 87, 88, 89,
4415  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4416  100, 101, 102, -1, -1, -1, -1, 107, -1, -1,
4417  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4418  -1, -1, -1, -1, 124, 125, 126, 127, 128, 129,
4419  130, 131, 132, 133, -1, 135, 136, -1, -1, -1,
4420  -1, -1, -1, 143, 3, 4, 5, 6, 7, 8,
4421  9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
4422  19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
4423  -1, 30, 31, 32, 33, 34, 35, 36, 37, 38,
4424  39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
4425  49, 50, 51, 52, -1, -1, 55, -1, -1, -1,
4426  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4427  -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
4428  -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
4429  89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4430  -1, 100, 101, 102, -1, -1, -1, 106, -1, -1,
4431  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4432  -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
4433  129, 130, 131, 132, 133, -1, 135, 136, -1, -1,
4434  -1, -1, -1, -1, 143, 3, 4, 5, 6, 7,
4435  8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
4436  18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
4437  -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
4438  38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4439  48, 49, 50, 51, 52, -1, -1, 55, -1, -1,
4440  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4441  -1, -1, 70, 71, 72, 73, 74, 75, 76, 77,
4442  -1, -1, 80, 81, -1, -1, -1, -1, 86, 87,
4443  88, 89, -1, -1, -1, -1, -1, -1, -1, -1,
4444  -1, -1, 100, 101, 102, -1, -1, -1, -1, -1,
4445  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4446  -1, -1, -1, -1, -1, -1, 124, 125, 126, 127,
4447  128, 129, 130, 131, 132, 133, -1, 135, 136, -1,
4448  -1, -1, -1, -1, -1, 143, 3, 4, 5, 6,
4449  7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
4450  -1, -1, 19, -1, 21, 22, 23, 24, -1, -1,
4451  -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4452  -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
4453  -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4454  -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
4455  67, -1, 69, -1, -1, -1, -1, -1, -1, -1,
4456  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4457  -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
4458  97, 98, -1, -1, -1, -1, -1, 104, -1, 106,
4459  107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
4460  3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
4461  -1, -1, -1, -1, -1, -1, 19, 134, 21, 22,
4462  23, 24, -1, -1, -1, 142, -1, 30, 31, 32,
4463  33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4464  -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
4465  53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
4466  63, -1, -1, 66, 67, -1, 69, -1, -1, -1,
4467  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4468  -1, -1, -1, -1, -1, -1, -1, -1, 91, -1,
4469  -1, 94, 95, -1, 97, 98, -1, -1, -1, -1,
4470  -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
4471  -1, 114, -1, -1, 3, 4, 5, 6, 7, 8,
4472  9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
4473  19, 134, 21, 22, 23, 24, -1, -1, -1, 142,
4474  -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4475  39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
4476  49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
4477  59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
4478  69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
4479  -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
4480  -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
4481  -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
4482  -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
4483  -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
4484  11, 12, -1, -1, -1, 134, 135, 136, 19, -1,
4485  21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4486  31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4487  -1, -1, -1, -1, 45, -1, 47, 48, 49, 50,
4488  51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
4489  -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
4490  71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4491  -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
4492  91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
4493  -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
4494  111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
4495  3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
4496  -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
4497  23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4498  33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4499  -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
4500  53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
4501  63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
4502  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4503  -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
4504  -1, 94, 95, -1, 97, 98, -1, 100, -1, 102,
4505  103, 104, -1, 106, 107, 108, -1, 110, 111, 112,
4506  -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
4507  5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
4508  -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
4509  -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4510  35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4511  -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
4512  55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
4513  -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
4514  -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
4515  85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
4516  95, -1, 97, 98, -1, 100, -1, 102, 103, 104,
4517  -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
4518  -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
4519  7, 8, 9, 10, 11, -1, -1, -1, -1, 134,
4520  135, 136, 19, -1, 21, 22, 23, 24, -1, -1,
4521  -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4522  -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
4523  -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4524  -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
4525  67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
4526  -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
4527  -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
4528  97, 98, -1, 100, -1, 102, 103, 104, -1, 106,
4529  107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
4530  -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
4531  9, 10, 11, -1, -1, -1, -1, 134, 135, 136,
4532  19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
4533  -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4534  39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
4535  49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
4536  59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
4537  69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
4538  -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
4539  -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
4540  -1, 100, -1, 102, 103, 104, -1, 106, 107, 108,
4541  -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
4542  -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
4543  11, -1, -1, -1, -1, 134, 135, 136, 19, -1,
4544  21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4545  31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4546  -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
4547  51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
4548  -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
4549  71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4550  -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
4551  91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
4552  -1, 102, -1, 104, -1, 106, 107, 108, -1, 110,
4553  111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
4554  3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
4555  -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
4556  23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4557  33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4558  -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
4559  53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
4560  63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
4561  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4562  -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
4563  -1, 94, 95, -1, 97, 98, -1, -1, -1, 102,
4564  103, 104, -1, 106, 107, 108, -1, 110, 111, 112,
4565  -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
4566  5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
4567  -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
4568  -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4569  35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4570  -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
4571  55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
4572  -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
4573  -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
4574  85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
4575  95, -1, 97, 98, -1, 100, -1, 102, -1, 104,
4576  -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
4577  -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
4578  7, 8, 9, 10, 11, -1, -1, -1, -1, 134,
4579  135, 136, 19, -1, 21, 22, 23, 24, -1, -1,
4580  -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4581  -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
4582  -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4583  -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
4584  67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
4585  -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
4586  -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
4587  97, 98, -1, -1, -1, 102, -1, 104, -1, 106,
4588  107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
4589  -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
4590  9, 10, 11, -1, -1, -1, -1, 134, 135, 136,
4591  19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
4592  -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4593  39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
4594  49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
4595  59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
4596  69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
4597  -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
4598  -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
4599  -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
4600  -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
4601  -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
4602  11, -1, -1, -1, -1, 134, 135, 136, 19, -1,
4603  21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4604  31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4605  -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
4606  51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
4607  -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
4608  71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4609  -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
4610  91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
4611  -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
4612  111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
4613  3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
4614  -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
4615  23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4616  33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4617  -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
4618  53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
4619  63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
4620  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4621  -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
4622  -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
4623  -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
4624  -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
4625  5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
4626  -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
4627  -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4628  35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4629  -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
4630  55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
4631  -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
4632  -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
4633  85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
4634  95, -1, 97, 98, -1, 100, -1, -1, -1, 104,
4635  -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
4636  -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
4637  7, 8, 9, 10, 11, -1, -1, -1, -1, 134,
4638  135, 136, 19, -1, 21, 22, 23, 24, -1, -1,
4639  -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4640  -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
4641  -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4642  -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
4643  67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
4644  -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
4645  -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
4646  97, 98, -1, 100, -1, -1, -1, 104, -1, 106,
4647  107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
4648  -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
4649  9, 10, 11, -1, -1, -1, -1, 134, 135, 136,
4650  19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
4651  -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4652  39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
4653  49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
4654  59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
4655  69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
4656  -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
4657  -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
4658  -1, -1, -1, -1, -1, 104, -1, 106, 107, 108,
4659  -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
4660  -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
4661  11, -1, -1, -1, -1, 134, 135, 136, 19, -1,
4662  21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4663  31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4664  -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
4665  51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
4666  -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
4667  71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4668  -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
4669  91, -1, -1, 94, 95, -1, 97, 98, -1, -1,
4670  -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
4671  111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
4672  3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
4673  -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
4674  23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4675  33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4676  -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
4677  53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
4678  63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
4679  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4680  -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
4681  -1, 94, 95, -1, 97, 98, -1, -1, -1, -1,
4682  -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
4683  -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
4684  5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
4685  -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
4686  -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4687  35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4688  -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
4689  55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
4690  -1, 66, 67, -1, 69, -1, -1, -1, -1, -1,
4691  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4692  -1, -1, -1, 88, -1, -1, 91, -1, -1, 94,
4693  95, -1, 97, 98, -1, -1, -1, -1, -1, 104,
4694  -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
4695  -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
4696  11, -1, -1, -1, -1, -1, -1, -1, 19, 134,
4697  21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4698  31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4699  -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
4700  51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
4701  -1, -1, 63, -1, -1, 66, 67, -1, 69, -1,
4702  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4703  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4704  91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
4705  -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
4706  111, 112, -1, 114, -1, -1, 3, 4, 5, 6,
4707  7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
4708  -1, -1, 19, 134, 21, 22, 23, 24, -1, -1,
4709  -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4710  -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
4711  -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4712  -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
4713  67, -1, 69, -1, -1, -1, -1, -1, -1, -1,
4714  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4715  -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
4716  97, 98, -1, 100, -1, -1, -1, 104, -1, 106,
4717  107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
4718  3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
4719  -1, -1, -1, -1, -1, -1, 19, 134, 21, 22,
4720  23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4721  33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4722  -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
4723  53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
4724  63, -1, -1, 66, 67, -1, 69, -1, -1, -1,
4725  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4726  -1, -1, -1, -1, -1, -1, -1, -1, 91, -1,
4727  -1, 94, 95, -1, 97, 98, -1, -1, -1, -1,
4728  -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
4729  -1, 114, -1, -1, 3, 4, 5, 6, 7, 8,
4730  9, 10, 11, -1, -1, -1, -1, -1, -1, -1,
4731  19, 134, 21, 22, 23, 24, -1, -1, -1, -1,
4732  -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4733  39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
4734  49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
4735  59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
4736  69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4737  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4738  -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
4739  -1, -1, -1, -1, -1, 104, -1, 106, 107, 108,
4740  -1, 110, 111, 112, -1, 114, -1, -1, 3, 4,
4741  5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
4742  -1, -1, -1, -1, 19, 134, 21, 22, 23, 24,
4743  -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4744  35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4745  -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
4746  55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
4747  -1, 66, 67, -1, 69, -1, -1, -1, -1, -1,
4748  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4749  -1, -1, -1, -1, -1, -1, 91, -1, -1, 94,
4750  95, -1, 97, 98, -1, -1, -1, -1, -1, 104,
4751  -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
4752  -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
4753  11, -1, -1, -1, -1, -1, -1, -1, 19, 134,
4754  21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4755  31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4756  -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
4757  51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
4758  -1, -1, 63, -1, -1, 66, 67, -1, 69, -1,
4759  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4760  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4761  91, -1, -1, 94, 95, -1, 97, 98, -1, -1,
4762  51, 52, -1, 104, 55, 106, 107, 108, -1, 110,
4763  111, 112, -1, 114, -1, -1, -1, -1, -1, 70,
4764  71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
4765  81, -1, -1, 134, -1, 86, 87, 88, 89, -1,
4766  -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
4767  101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
4768  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4769  -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
4770  131, 132, 133, -1, 135, 136, 51, 52, -1, -1,
4771  55, -1, 143, 144, -1, -1, -1, -1, -1, -1,
4772  -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
4773  75, 76, 77, -1, -1, 80, 81, -1, -1, -1,
4774  -1, 86, 87, 88, 89, -1, -1, -1, -1, -1,
4775  -1, -1, -1, -1, -1, 100, 101, 102, -1, -1,
4776  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4777  -1, -1, -1, -1, -1, -1, -1, -1, -1, 124,
4778  125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
4779  135, 136, 51, 52, -1, -1, 55, -1, 143, 144,
4780  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4781  -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
4782  -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
4783  89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4784  -1, 100, 101, 102, -1, -1, -1, -1, -1, -1,
4785  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4786  -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
4787  129, 130, 131, 132, 133, -1, 135, 136, 51, 52,
4788  -1, -1, 55, -1, 143, 144, -1, -1, -1, -1,
4789  -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
4790  73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
4791  -1, -1, -1, 86, 87, 88, 89, -1, -1, -1,
4792  -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
4793  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4794  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4795  -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
4796  133, -1, 135, 136, 51, 52, -1, -1, 55, -1,
4797  143, 144, -1, -1, -1, -1, -1, -1, -1, -1,
4798  -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
4799  77, -1, -1, 80, 81, -1, -1, -1, -1, 86,
4800  87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
4801  -1, -1, -1, 100, 101, 102, -1, -1, -1, -1,
4802  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4803  -1, -1, -1, -1, -1, -1, -1, 124, 125, 126,
4804  127, 128, 129, 130, 131, 132, 133, -1, 135, 136,
4805  51, 52, -1, -1, 55, -1, 143, 144, -1, -1,
4806  -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
4807  71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
4808  81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
4809  -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
4810  101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
4811  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4812  -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
4813  131, 132, 133, -1, 135, 136, 51, 52, -1, -1,
4814  55, -1, 143, 144, -1, -1, -1, -1, -1, -1,
4815  -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
4816  75, 76, 77, -1, -1, 80, 81, -1, -1, -1,
4817  -1, 86, 87, 88, 89, -1, -1, -1, -1, -1,
4818  -1, -1, -1, -1, -1, 100, 101, 102, -1, -1,
4819  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4820  -1, -1, -1, -1, -1, -1, -1, -1, -1, 124,
4821  125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
4822  135, 136, 51, 52, -1, -1, 55, -1, 143, 144,
4823  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4824  -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
4825  -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
4826  89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4827  -1, 100, 101, 102, -1, -1, -1, -1, -1, -1,
4828  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4829  -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
4830  129, 130, 131, 132, 133, -1, 135, 136, 51, 52,
4831  -1, -1, 55, -1, 143, 144, -1, -1, -1, -1,
4832  -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
4833  73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
4834  -1, -1, -1, 86, 87, 88, 89, -1, -1, -1,
4835  -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
4836  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4837  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4838  -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
4839  133, -1, 135, 136, 51, 52, -1, -1, 55, -1,
4840  143, 144, -1, -1, -1, -1, -1, -1, -1, -1,
4841  -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
4842  77, -1, -1, 80, 81, -1, -1, -1, -1, 86,
4843  87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
4844  -1, -1, -1, 100, 101, 102, -1, -1, -1, -1,
4845  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4846  -1, -1, -1, -1, -1, -1, -1, 124, 125, 126,
4847  127, 128, 129, 130, 131, 132, 133, -1, 135, 136,
4848  51, 52, -1, -1, 55, -1, 143, 144, -1, -1,
4849  -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
4850  71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
4851  81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
4852  -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
4853  101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
4854  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4855  -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
4856  131, 132, 133, -1, 135, 136, 51, 52, -1, -1,
4857  55, -1, 143, 144, -1, -1, -1, -1, -1, -1,
4858  -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
4859  75, 76, 77, -1, -1, 80, 81, -1, -1, -1,
4860  -1, 86, 87, 88, 89, -1, -1, -1, -1, -1,
4861  -1, -1, -1, -1, -1, 100, 101, 102, -1, -1,
4862  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4863  -1, -1, -1, -1, -1, -1, -1, -1, -1, 124,
4864  125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
4865  135, 136, 51, 52, -1, -1, 55, -1, 143, 144,
4866  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4867  -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
4868  -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
4869  89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4870  -1, 100, 101, 102, -1, -1, -1, -1, -1, -1,
4871  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4872  -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
4873  129, 130, 131, 132, 133, -1, 135, 136, 51, 52,
4874  -1, -1, 55, -1, 143, 144, -1, -1, -1, -1,
4875  -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
4876  73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
4877  -1, -1, -1, 86, 87, 88, 89, -1, -1, -1,
4878  -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
4879  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4880  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4881  -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
4882  133, -1, 135, 136, 51, 52, -1, -1, 55, -1,
4883  143, 144, -1, -1, -1, -1, -1, -1, -1, -1,
4884  -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
4885  77, -1, -1, 80, 81, -1, -1, -1, -1, 86,
4886  87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
4887  -1, -1, -1, 100, 101, 102, -1, -1, -1, -1,
4888  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4889  -1, -1, -1, -1, -1, -1, -1, 124, 125, 126,
4890  127, 128, 129, 130, 131, 132, 133, -1, 135, 136,
4891  51, 52, -1, -1, 55, -1, 143, 144, -1, -1,
4892  -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
4893  71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
4894  81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
4895  -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
4896  101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
4897  -1, -1, -1, -1, -1, 44, -1, -1, -1, -1,
4898  -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
4899  131, 132, 133, -1, 135, 136, -1, -1, -1, -1,
4900  -1, -1, 143, 72, 73, 74, 75, 76, 77, 78,
4901  79, 80, 81, 82, 83, -1, -1, -1, -1, 88,
4902  89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4903  -1, -1, 101, -1, -1, -1, -1, -1, -1, -1,
4904  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4905  -1, -1, -1, 122, -1, 124, 125, 126, 127, 128,
4906  129, 130, 131, 132, 133, 72, 73, 74, 75, 76,
4907  77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
4908  -1, 88, 89, -1, -1, -1, -1, -1, -1, -1,
4909  -1, -1, -1, -1, 101, -1, -1, -1, -1, -1,
4910  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4911  -1, -1, -1, -1, -1, 122, -1, 124, 125, 126,
4912  127, 128, 129, 130, 131, 132, 133, 72, 73, 74,
4913  75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
4914  -1, 148, -1, 88, 89, -1, -1, -1, -1, -1,
4915  -1, -1, -1, -1, -1, -1, 101, -1, -1, -1,
4916  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4917  -1, -1, -1, -1, -1, -1, -1, 122, -1, 124,
4918  125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
4919  -1, -1, -1, -1, -1, -1, -1, 142, 72, 73,
4920  74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4921  -1, -1, -1, -1, 88, 89, -1, -1, -1, -1,
4922  -1, -1, -1, -1, -1, -1, -1, 101, -1, -1,
4923  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4924  -1, -1, -1, -1, -1, -1, -1, -1, 122, -1,
4925  124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
4926  -1, -1, -1, -1, -1, -1, -1, -1, 142, 72,
4927  73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
4928  83, -1, -1, -1, -1, 88, 89, -1, -1, -1,
4929  -1, -1, -1, -1, -1, -1, -1, -1, 101, -1,
4930  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4931  -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
4932  -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
4933  133, -1, -1, -1, -1, -1, -1, -1, -1, 142,
4934  72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
4935  82, 83, -1, -1, -1, -1, 88, 89, -1, -1,
4936  -1, -1, -1, -1, -1, -1, -1, -1, -1, 101,
4937  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4938  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4939  122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
4940  132, 133, -1, -1, -1, -1, -1, -1, -1, -1,
4941  142, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4942  81, 82, 83, -1, -1, -1, -1, 88, 89, -1,
4943  -1, -1, 93, -1, -1, -1, -1, -1, -1, -1,
4944  101, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4945  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4946  -1, 122, -1, 124, 125, 126, 127, 128, 129, 130,
4947  131, 132, 133, 72, 73, 74, 75, 76, 77, 78,
4948  79, 80, 81, 82, 83, -1, -1, -1, -1, 88,
4949  89, -1, -1, -1, 93, -1, -1, -1, -1, -1,
4950  -1, -1, 101, -1, -1, -1, -1, -1, -1, -1,
4951  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4952  -1, -1, -1, 122, -1, 124, 125, 126, 127, 128,
4953  129, 130, 131, 132, 133, 72, 73, 74, 75, 76,
4954  77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
4955  -1, 88, 89, -1, -1, -1, -1, -1, -1, -1,
4956  -1, -1, -1, -1, 101, -1, -1, -1, -1, -1,
4957  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4958  -1, -1, -1, -1, -1, 122, -1, 124, 125, 126,
4959  127, 128, 129, 130, 131, 132, 133, 72, 73, 74,
4960  75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
4961  -1, -1, -1, 88, 89, 72, 73, 74, 75, 76,
4962  77, 78, -1, 80, 81, -1, 101, -1, -1, -1,
4963  -1, 88, 89, -1, -1, -1, -1, -1, -1, -1,
4964  -1, -1, -1, -1, 101, -1, -1, -1, -1, 124,
4965  125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
4966  -1, -1, -1, -1, -1, -1, -1, 124, 125, 126,
4967  127, 128, 129, 130, 131, 132, 133, 72, 73, 74,
4968  75, 76, 77, -1, -1, 80, 81, -1, -1, -1,
4969  -1, -1, -1, 88, 89, -1, -1, -1, -1, -1,
4970  -1, -1, -1, -1, -1, -1, 101, -1, -1, -1,
4971  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4972  -1, -1, -1, -1, -1, -1, -1, -1, -1, 124,
4973  125, 126, 127, 128, 129, 130, 131, 132, 133
4974 };
4975 
4976  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
4977  symbol of state STATE-NUM. */
4978 static const yytype_int16 yystos[] =
4979 {
4980  0, 150, 151, 0, 1, 3, 4, 5, 6, 7,
4981  8, 9, 10, 11, 12, 19, 21, 22, 23, 24,
4982  30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4983  47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4984  58, 59, 60, 63, 66, 67, 69, 70, 71, 84,
4985  85, 91, 94, 95, 97, 98, 100, 104, 106, 107,
4986  108, 110, 111, 112, 114, 134, 135, 136, 152, 153,
4987  154, 159, 161, 163, 164, 165, 168, 169, 172, 173,
4988  175, 176, 177, 179, 180, 189, 203, 220, 241, 242,
4989  252, 253, 254, 258, 259, 260, 266, 267, 268, 270,
4990  271, 272, 273, 274, 275, 311, 324, 154, 21, 22,
4991  30, 31, 32, 39, 51, 55, 69, 88, 91, 94,
4992  134, 164, 165, 181, 182, 203, 220, 272, 275, 311,
4993  182, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4994  12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
4995  22, 23, 24, 25, 26, 30, 31, 32, 33, 34,
4996  35, 36, 37, 38, 39, 45, 46, 47, 48, 49,
4997  50, 51, 52, 55, 70, 71, 72, 73, 74, 75,
4998  76, 77, 80, 81, 86, 87, 88, 89, 100, 101,
4999  102, 124, 125, 126, 127, 128, 129, 130, 131, 132,
5000  133, 135, 136, 143, 144, 183, 187, 188, 274, 305,
5001  204, 91, 163, 167, 180, 189, 220, 272, 273, 275,
5002  167, 210, 212, 69, 91, 173, 180, 220, 225, 272,
5003  275, 33, 34, 35, 36, 48, 49, 50, 51, 55,
5004  106, 183, 184, 185, 268, 115, 118, 119, 146, 148,
5005  167, 262, 263, 264, 317, 321, 322, 323, 51, 100,
5006  102, 103, 135, 172, 189, 195, 198, 201, 254, 308,
5007  310, 195, 195, 144, 192, 193, 196, 197, 324, 192,
5008  196, 144, 318, 322, 184, 155, 138, 189, 220, 189,
5009  189, 189, 55, 1, 94, 157, 158, 159, 174, 175,
5010  324, 205, 207, 190, 201, 308, 324, 189, 307, 308,
5011  324, 91, 142, 179, 220, 272, 275, 208, 53, 54,
5012  56, 63, 107, 183, 269, 63, 64, 65, 116, 117,
5013  255, 256, 61, 255, 62, 255, 63, 255, 63, 255,
5014  58, 59, 168, 189, 189, 317, 323, 40, 41, 42,
5015  43, 44, 37, 38, 51, 53, 54, 55, 56, 69,
5016  94, 100, 101, 102, 103, 128, 131, 144, 278, 279,
5017  280, 281, 284, 285, 286, 287, 289, 290, 291, 292,
5018  294, 295, 296, 299, 300, 301, 302, 303, 278, 279,
5019  28, 239, 121, 142, 94, 100, 176, 121, 72, 73,
5020  74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
5021  88, 89, 93, 101, 122, 124, 125, 126, 127, 128,
5022  129, 130, 131, 132, 133, 90, 105, 140, 147, 315,
5023  90, 315, 316, 26, 138, 243, 254, 92, 92, 192,
5024  196, 243, 163, 51, 55, 181, 58, 59, 278, 125,
5025  276, 90, 140, 315, 219, 306, 90, 147, 314, 156,
5026  157, 55, 16, 221, 321, 121, 90, 140, 315, 92,
5027  92, 221, 167, 167, 55, 90, 140, 315, 25, 107,
5028  142, 265, 317, 115, 264, 20, 246, 321, 57, 309,
5029  189, 189, 189, 93, 142, 199, 200, 324, 309, 199,
5030  200, 85, 194, 195, 201, 308, 324, 195, 163, 317,
5031  319, 163, 160, 138, 157, 90, 315, 92, 159, 174,
5032  145, 317, 323, 319, 159, 319, 141, 200, 320, 323,
5033  200, 320, 139, 320, 55, 176, 177, 178, 142, 90,
5034  140, 315, 144, 237, 289, 63, 255, 257, 261, 262,
5035  63, 256, 61, 62, 63, 63, 101, 101, 154, 167,
5036  167, 167, 167, 159, 163, 163, 57, 121, 293, 85,
5037  289, 294, 121, 156, 189, 142, 304, 324, 51, 142,
5038  304, 321, 142, 288, 189, 142, 288, 51, 142, 288,
5039  51, 121, 156, 240, 100, 168, 189, 201, 202, 174,
5040  142, 179, 142, 161, 162, 168, 180, 189, 191, 202,
5041  220, 275, 189, 189, 189, 189, 189, 189, 189, 189,
5042  189, 189, 189, 189, 189, 189, 51, 189, 189, 189,
5043  189, 189, 189, 189, 189, 189, 189, 189, 189, 51,
5044  52, 55, 187, 192, 312, 313, 194, 201, 51, 52,
5045  55, 187, 192, 312, 51, 55, 312, 245, 244, 162,
5046  189, 191, 162, 191, 99, 170, 217, 277, 216, 51,
5047  55, 181, 312, 194, 312, 156, 163, 166, 15, 13,
5048  248, 324, 157, 16, 51, 55, 194, 51, 55, 157,
5049  27, 222, 321, 222, 51, 55, 194, 51, 55, 214,
5050  186, 157, 246, 189, 201, 15, 261, 189, 189, 318,
5051  100, 189, 198, 308, 189, 310, 319, 145, 317, 200,
5052  200, 319, 145, 184, 152, 139, 191, 319, 159, 206,
5053  308, 176, 178, 51, 55, 194, 51, 55, 289, 209,
5054  63, 157, 262, 189, 189, 51, 100, 226, 294, 319,
5055  319, 142, 189, 15, 51, 281, 286, 303, 287, 292,
5056  299, 301, 294, 296, 301, 51, 294, 189, 15, 79,
5057  126, 231, 232, 324, 189, 200, 319, 178, 142, 44,
5058  121, 44, 90, 140, 315, 318, 92, 92, 192, 196,
5059  141, 200, 92, 92, 193, 196, 193, 196, 231, 231,
5060  171, 321, 167, 156, 141, 15, 319, 183, 189, 202,
5061  249, 324, 18, 224, 324, 17, 223, 224, 92, 92,
5062  141, 92, 92, 224, 211, 213, 141, 167, 184, 139,
5063  15, 200, 221, 261, 189, 199, 85, 308, 139, 319,
5064  320, 141, 234, 318, 29, 113, 238, 139, 142, 291,
5065  319, 142, 85, 44, 304, 142, 288, 142, 288, 142,
5066  288, 142, 288, 288, 44, 228, 230, 233, 280, 282,
5067  283, 286, 294, 295, 297, 298, 301, 303, 156, 100,
5068  189, 178, 159, 189, 51, 55, 194, 51, 55, 57,
5069  123, 162, 191, 168, 191, 170, 92, 162, 191, 162,
5070  191, 170, 243, 239, 156, 157, 231, 218, 321, 15,
5071  93, 250, 324, 157, 14, 251, 324, 167, 15, 92,
5072  15, 157, 157, 222, 189, 157, 319, 200, 145, 146,
5073  156, 157, 227, 142, 100, 319, 189, 294, 301, 294,
5074  294, 189, 234, 234, 91, 220, 142, 304, 304, 142,
5075  229, 220, 142, 229, 142, 229, 15, 189, 141, 189,
5076  189, 162, 191, 15, 139, 157, 156, 91, 180, 220,
5077  272, 275, 221, 157, 221, 15, 15, 215, 224, 246,
5078  247, 51, 235, 236, 290, 15, 139, 294, 294, 142,
5079  291, 288, 142, 288, 288, 288, 126, 126, 55, 90,
5080  282, 286, 142, 228, 229, 298, 301, 294, 297, 301,
5081  294, 139, 15, 55, 90, 140, 315, 157, 157, 157,
5082  142, 318, 142, 294, 142, 294, 51, 55, 304, 142,
5083  229, 142, 229, 142, 229, 142, 229, 229, 51, 55,
5084  194, 51, 55, 248, 223, 15, 236, 294, 288, 294,
5085  301, 294, 294, 141, 229, 142, 229, 229, 229, 294,
5086  229
5087 };
5088 
5089  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
5090 static const yytype_int16 yyr1[] =
5091 {
5092  0, 149, 151, 150, 152, 153, 153, 153, 153, 154,
5093  155, 154, 156, 157, 158, 158, 158, 158, 160, 159,
5094  159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
5095  159, 159, 159, 159, 161, 161, 161, 161, 161, 161,
5096  161, 161, 162, 162, 162, 163, 163, 163, 163, 163,
5097  163, 164, 166, 165, 167, 168, 168, 169, 169, 171,
5098  170, 172, 172, 172, 172, 172, 172, 172, 172, 172,
5099  172, 172, 173, 173, 174, 174, 175, 175, 175, 175,
5100  175, 175, 175, 175, 175, 175, 176, 176, 177, 177,
5101  178, 178, 179, 179, 179, 179, 179, 179, 179, 179,
5102  180, 180, 180, 180, 180, 180, 180, 180, 180, 181,
5103  181, 182, 182, 182, 183, 183, 183, 183, 183, 184,
5104  184, 185, 186, 185, 187, 187, 187, 187, 187, 187,
5105  187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
5106  187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
5107  187, 187, 187, 187, 188, 188, 188, 188, 188, 188,
5108  188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
5109  188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
5110  188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
5111  188, 188, 188, 188, 189, 189, 189, 189, 189, 189,
5112  189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
5113  189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
5114  189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
5115  189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
5116  189, 189, 189, 189, 189, 190, 190, 190, 190, 191,
5117  191, 192, 192, 192, 193, 193, 194, 194, 194, 194,
5118  194, 195, 195, 195, 195, 195, 197, 196, 198, 199,
5119  199, 200, 200, 201, 201, 201, 201, 202, 202, 202,
5120  203, 203, 203, 203, 203, 203, 203, 203, 203, 204,
5121  203, 205, 206, 203, 207, 203, 203, 203, 203, 203,
5122  203, 203, 203, 203, 203, 203, 203, 203, 208, 209,
5123  203, 203, 203, 210, 211, 203, 212, 213, 203, 203,
5124  203, 214, 215, 203, 216, 203, 217, 218, 203, 219,
5125  203, 203, 203, 203, 203, 203, 203, 220, 221, 221,
5126  221, 222, 222, 223, 223, 224, 224, 225, 225, 226,
5127  226, 226, 226, 226, 226, 226, 226, 227, 226, 228,
5128  228, 228, 228, 229, 229, 230, 230, 230, 230, 230,
5129  230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
5130  231, 231, 233, 232, 232, 232, 234, 234, 235, 235,
5131  236, 236, 237, 237, 238, 238, 240, 239, 241, 241,
5132  241, 241, 242, 242, 242, 242, 242, 242, 242, 242,
5133  242, 244, 243, 245, 243, 246, 247, 247, 248, 248,
5134  249, 249, 249, 250, 250, 251, 251, 252, 252, 252,
5135  252, 253, 253, 254, 254, 254, 254, 255, 255, 256,
5136  257, 256, 256, 256, 258, 258, 259, 259, 260, 261,
5137  261, 262, 262, 263, 263, 264, 265, 264, 266, 266,
5138  267, 267, 268, 269, 269, 269, 269, 269, 269, 270,
5139  270, 271, 271, 271, 271, 272, 272, 272, 272, 272,
5140  273, 273, 274, 274, 274, 274, 274, 274, 274, 274,
5141  275, 275, 276, 277, 276, 278, 278, 278, 279, 279,
5142  280, 281, 281, 282, 282, 283, 283, 284, 284, 285,
5143  285, 286, 286, 287, 287, 287, 287, 288, 288, 289,
5144  289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
5145  289, 289, 289, 289, 290, 290, 290, 290, 290, 291,
5146  291, 292, 293, 292, 294, 294, 295, 296, 297, 298,
5147  298, 299, 299, 300, 300, 301, 301, 302, 302, 303,
5148  304, 304, 305, 306, 305, 307, 307, 308, 308, 309,
5149  309, 310, 310, 310, 310, 311, 311, 311, 312, 312,
5150  312, 312, 313, 313, 313, 314, 314, 315, 315, 316,
5151  316, 317, 317, 318, 318, 319, 320, 320, 320, 321,
5152  321, 321, 322, 323, 323, 324
5153 };
5154 
5155  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
5156 static const yytype_int8 yyr2[] =
5157 {
5158  0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
5159  0, 5, 4, 2, 1, 1, 3, 2, 0, 4,
5160  2, 3, 3, 3, 3, 3, 4, 1, 3, 3,
5161  3, 3, 3, 1, 3, 3, 6, 5, 5, 5,
5162  5, 3, 1, 3, 1, 1, 3, 3, 3, 2,
5163  1, 2, 0, 5, 1, 1, 1, 1, 4, 0,
5164  5, 2, 3, 4, 5, 4, 5, 2, 2, 2,
5165  2, 2, 1, 3, 1, 3, 1, 2, 3, 5,
5166  2, 4, 2, 4, 1, 3, 1, 3, 2, 3,
5167  1, 2, 1, 4, 3, 3, 3, 3, 2, 1,
5168  1, 4, 3, 3, 3, 3, 2, 1, 1, 1,
5169  1, 2, 1, 3, 1, 1, 1, 1, 1, 1,
5170  1, 1, 0, 4, 1, 1, 1, 1, 1, 1,
5171  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5172  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5173  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5174  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5175  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5176  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5177  1, 1, 1, 1, 3, 3, 6, 5, 5, 5,
5178  5, 4, 3, 3, 2, 2, 3, 2, 2, 3,
5179  3, 3, 3, 3, 3, 4, 4, 2, 2, 3,
5180  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
5181  3, 3, 2, 2, 3, 3, 3, 3, 6, 6,
5182  4, 6, 4, 6, 1, 1, 2, 4, 2, 1,
5183  3, 3, 5, 3, 1, 1, 1, 2, 2, 4,
5184  2, 1, 2, 2, 4, 1, 0, 2, 2, 2,
5185  1, 1, 3, 1, 2, 3, 4, 3, 4, 2,
5186  1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
5187  4, 0, 0, 5, 0, 3, 3, 3, 2, 3,
5188  3, 1, 2, 4, 3, 2, 1, 2, 0, 0,
5189  5, 6, 6, 0, 0, 7, 0, 0, 7, 5,
5190  4, 0, 0, 9, 0, 6, 0, 0, 8, 0,
5191  5, 4, 4, 1, 1, 1, 1, 1, 1, 1,
5192  2, 1, 1, 1, 5, 1, 2, 1, 1, 1,
5193  4, 6, 3, 5, 2, 4, 1, 0, 4, 4,
5194  2, 2, 1, 2, 0, 6, 8, 4, 6, 4,
5195  3, 6, 2, 4, 6, 2, 4, 2, 4, 1,
5196  1, 1, 0, 4, 1, 4, 1, 4, 1, 3,
5197  1, 1, 4, 1, 3, 3, 0, 5, 2, 4,
5198  5, 5, 2, 4, 4, 3, 3, 3, 2, 1,
5199  4, 0, 5, 0, 5, 5, 1, 1, 6, 1,
5200  1, 1, 1, 2, 1, 2, 1, 1, 1, 1,
5201  1, 1, 2, 1, 1, 2, 3, 1, 2, 1,
5202  0, 4, 1, 2, 2, 3, 2, 3, 1, 1,
5203  2, 1, 2, 1, 2, 1, 0, 4, 2, 3,
5204  1, 4, 2, 1, 1, 1, 1, 1, 2, 2,
5205  3, 1, 1, 2, 2, 1, 1, 1, 1, 1,
5206  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5207  1, 1, 0, 0, 4, 3, 5, 3, 1, 2,
5208  2, 2, 1, 2, 1, 1, 3, 1, 3, 1,
5209  1, 2, 1, 4, 2, 2, 1, 2, 0, 6,
5210  8, 4, 6, 4, 6, 2, 4, 6, 2, 4,
5211  2, 4, 1, 0, 1, 1, 1, 1, 1, 1,
5212  1, 1, 0, 4, 1, 3, 2, 2, 2, 1,
5213  3, 1, 3, 1, 1, 2, 1, 1, 1, 2,
5214  2, 1, 1, 0, 4, 1, 2, 1, 3, 1,
5215  2, 3, 3, 3, 2, 1, 1, 1, 1, 1,
5216  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5217  1, 0, 1, 0, 1, 2, 0, 1, 1, 1,
5218  1, 1, 1, 1, 2, 0
5219 };
5220 
5221 
5222 #define yyerrok (yyerrstatus = 0)
5223 #define yyclearin (yychar = YYEMPTY)
5224 #define YYEMPTY (-2)
5225 #define YYEOF 0
5226 
5227 #define YYACCEPT goto yyacceptlab
5228 #define YYABORT goto yyabortlab
5229 #define YYERROR goto yyerrorlab
5230 
5231 
5232 #define YYRECOVERING() (!!yyerrstatus)
5233 
5234 #define YYBACKUP(Token, Value) \
5235  do \
5236  if (yychar == YYEMPTY) \
5237  { \
5238  yychar = (Token); \
5239  yylval = (Value); \
5240  YYPOPSTACK (yylen); \
5241  yystate = *yyssp; \
5242  goto yybackup; \
5243  } \
5244  else \
5245  { \
5246  yyerror (p, YY_("syntax error: cannot back up")); \
5247  YYERROR; \
5248  } \
5249  while (0)
5250 
5251 /* Error token number */
5252 #define YYTERROR 1
5253 #define YYERRCODE 256
5254 
5255 
5256 
5257 /* Enable debugging if requested. */
5258 #if YYDEBUG
5259 
5260 # ifndef YYFPRINTF
5261 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
5262 # define YYFPRINTF fprintf
5263 # endif
5264 
5265 # define YYDPRINTF(Args) \
5266 do { \
5267  if (yydebug) \
5268  YYFPRINTF Args; \
5269 } while (0)
5270 
5271 /* This macro is provided for backward compatibility. */
5272 #ifndef YY_LOCATION_PRINT
5273 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
5274 #endif
5275 
5276 
5277 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
5278 do { \
5279  if (yydebug) \
5280  { \
5281  YYFPRINTF (stderr, "%s ", Title); \
5282  yy_symbol_print (stderr, \
5283  Type, Value, p); \
5284  YYFPRINTF (stderr, "\n"); \
5285  } \
5286 } while (0)
5287 
5288 
5289 /*-----------------------------------.
5290 | Print this symbol's value on YYO. |
5291 `-----------------------------------*/
5292 
5293 static void
5294 yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, parser_state *p)
5295 {
5296  FILE *yyoutput = yyo;
5297  YYUSE (yyoutput);
5298  YYUSE (p);
5299  if (!yyvaluep)
5300  return;
5301 # ifdef YYPRINT
5302  if (yytype < YYNTOKENS)
5303  YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
5304 # endif
5306  YYUSE (yytype);
5308 }
5309 
5310 
5311 /*---------------------------.
5312 | Print this symbol on YYO. |
5313 `---------------------------*/
5314 
5315 static void
5316 yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, parser_state *p)
5317 {
5318  YYFPRINTF (yyo, "%s %s (",
5319  yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
5320 
5321  yy_symbol_value_print (yyo, yytype, yyvaluep, p);
5322  YYFPRINTF (yyo, ")");
5323 }
5324 
5325 /*------------------------------------------------------------------.
5326 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
5327 | TOP (included). |
5328 `------------------------------------------------------------------*/
5329 
5330 static void
5331 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
5332 {
5333  YYFPRINTF (stderr, "Stack now");
5334  for (; yybottom <= yytop; yybottom++)
5335  {
5336  int yybot = *yybottom;
5337  YYFPRINTF (stderr, " %d", yybot);
5338  }
5339  YYFPRINTF (stderr, "\n");
5340 }
5341 
5342 # define YY_STACK_PRINT(Bottom, Top) \
5343 do { \
5344  if (yydebug) \
5345  yy_stack_print ((Bottom), (Top)); \
5346 } while (0)
5347 
5348 
5349 /*------------------------------------------------.
5350 | Report that the YYRULE is going to be reduced. |
5351 `------------------------------------------------*/
5352 
5353 static void
5354 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule, parser_state *p)
5355 {
5356  int yylno = yyrline[yyrule];
5357  int yynrhs = yyr2[yyrule];
5358  int yyi;
5359  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
5360  yyrule - 1, yylno);
5361  /* The symbols being reduced. */
5362  for (yyi = 0; yyi < yynrhs; yyi++)
5363  {
5364  YYFPRINTF (stderr, " $%d = ", yyi + 1);
5365  yy_symbol_print (stderr,
5366  yystos[+yyssp[yyi + 1 - yynrhs]],
5367  &yyvsp[(yyi + 1) - (yynrhs)]
5368  , p);
5369  YYFPRINTF (stderr, "\n");
5370  }
5371 }
5372 
5373 # define YY_REDUCE_PRINT(Rule) \
5374 do { \
5375  if (yydebug) \
5376  yy_reduce_print (yyssp, yyvsp, Rule, p); \
5377 } while (0)
5378 
5379 /* Nonzero means print parse trace. It is left uninitialized so that
5380  multiple parsers can coexist. */
5381 int yydebug;
5382 #else /* !YYDEBUG */
5383 # define YYDPRINTF(Args)
5384 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
5385 # define YY_STACK_PRINT(Bottom, Top)
5386 # define YY_REDUCE_PRINT(Rule)
5387 #endif /* !YYDEBUG */
5388 
5389 
5390 /* YYINITDEPTH -- initial size of the parser's stacks. */
5391 #ifndef YYINITDEPTH
5392 # define YYINITDEPTH 200
5393 #endif
5394 
5395 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
5396  if the built-in stack extension method is used).
5397 
5398  Do not make this value too large; the results are undefined if
5399  YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
5400  evaluated with infinite-precision integer arithmetic. */
5401 
5402 #ifndef YYMAXDEPTH
5403 # define YYMAXDEPTH 10000
5404 #endif
5405 
5406 
5407 #if YYERROR_VERBOSE
5408 
5409 # ifndef yystrlen
5410 # if defined __GLIBC__ && defined _STRING_H
5411 # define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
5412 # else
5413 /* Return the length of YYSTR. */
5414 static YYPTRDIFF_T
5415 yystrlen (const char *yystr)
5416 {
5417  YYPTRDIFF_T yylen;
5418  for (yylen = 0; yystr[yylen]; yylen++)
5419  continue;
5420  return yylen;
5421 }
5422 # endif
5423 # endif
5424 
5425 # ifndef yystpcpy
5426 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
5427 # define yystpcpy stpcpy
5428 # else
5429 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
5430  YYDEST. */
5431 static char *
5432 yystpcpy (char *yydest, const char *yysrc)
5433 {
5434  char *yyd = yydest;
5435  const char *yys = yysrc;
5436 
5437  while ((*yyd++ = *yys++) != '\0')
5438  continue;
5439 
5440  return yyd - 1;
5441 }
5442 # endif
5443 # endif
5444 
5445 # ifndef yytnamerr
5446 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
5447  quotes and backslashes, so that it's suitable for yyerror. The
5448  heuristic is that double-quoting is unnecessary unless the string
5449  contains an apostrophe, a comma, or backslash (other than
5450  backslash-backslash). YYSTR is taken from yytname. If YYRES is
5451  null, do not copy; instead, return the length of what the result
5452  would have been. */
5453 static YYPTRDIFF_T
5454 yytnamerr (char *yyres, const char *yystr)
5455 {
5456  if (*yystr == '"')
5457  {
5458  YYPTRDIFF_T yyn = 0;
5459  char const *yyp = yystr;
5460 
5461  for (;;)
5462  switch (*++yyp)
5463  {
5464  case '\'':
5465  case ',':
5466  goto do_not_strip_quotes;
5467 
5468  case '\\':
5469  if (*++yyp != '\\')
5470  goto do_not_strip_quotes;
5471  else
5472  goto append;
5473 
5474  append:
5475  default:
5476  if (yyres)
5477  yyres[yyn] = *yyp;
5478  yyn++;
5479  break;
5480 
5481  case '"':
5482  if (yyres)
5483  yyres[yyn] = '\0';
5484  return yyn;
5485  }
5486  do_not_strip_quotes: ;
5487  }
5488 
5489  if (yyres)
5490  return yystpcpy (yyres, yystr) - yyres;
5491  else
5492  return yystrlen (yystr);
5493 }
5494 # endif
5495 
5496 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
5497  about the unexpected token YYTOKEN for the state stack whose top is
5498  YYSSP.
5499 
5500  Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
5501  not large enough to hold the message. In that case, also set
5502  *YYMSG_ALLOC to the required number of bytes. Return 2 if the
5503  required number of bytes is too large to store. */
5504 static int
5505 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
5506  yy_state_t *yyssp, int yytoken)
5507 {
5508  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
5509  /* Internationalized format string. */
5510  const char *yyformat = YY_NULLPTR;
5511  /* Arguments of yyformat: reported tokens (one for the "unexpected",
5512  one per "expected"). */
5513  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
5514  /* Actual size of YYARG. */
5515  int yycount = 0;
5516  /* Cumulated lengths of YYARG. */
5517  YYPTRDIFF_T yysize = 0;
5518 
5519  /* There are many possibilities here to consider:
5520  - If this state is a consistent state with a default action, then
5521  the only way this function was invoked is if the default action
5522  is an error action. In that case, don't check for expected
5523  tokens because there are none.
5524  - The only way there can be no lookahead present (in yychar) is if
5525  this state is a consistent state with a default action. Thus,
5526  detecting the absence of a lookahead is sufficient to determine
5527  that there is no unexpected or expected token to report. In that
5528  case, just report a simple "syntax error".
5529  - Don't assume there isn't a lookahead just because this state is a
5530  consistent state with a default action. There might have been a
5531  previous inconsistent state, consistent state with a non-default
5532  action, or user semantic action that manipulated yychar.
5533  - Of course, the expected token list depends on states to have
5534  correct lookahead information, and it depends on the parser not
5535  to perform extra reductions after fetching a lookahead from the
5536  scanner and before detecting a syntax error. Thus, state merging
5537  (from LALR or IELR) and default reductions corrupt the expected
5538  token list. However, the list is correct for canonical LR with
5539  one exception: it will still contain any token that will not be
5540  accepted due to an error action in a later state.
5541  */
5542  if (yytoken != YYEMPTY)
5543  {
5544  int yyn = yypact[+*yyssp];
5545  YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
5546  yysize = yysize0;
5547  yyarg[yycount++] = yytname[yytoken];
5548  if (!yypact_value_is_default (yyn))
5549  {
5550  /* Start YYX at -YYN if negative to avoid negative indexes in
5551  YYCHEC