source: vendors/AGRIF/dev/LIB/fortran.c @ 14431

Last change on this file since 14431 was 14431, checked in by smasson, 6 months ago

agrif: merge AGRIF/dev_r14312_MPI_Interface into AGRIF/dev, ticket:2598#comment:21

  • Property svn:keywords set to Id
File size: 527.9 KB
Line 
1/* A Bison parser, made by GNU Bison 3.0.4.  */
2
3/* Bison implementation for Yacc-like parsers in C
4
5   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6
7   This program is free software: you can redistribute it and/or modify
8   it under the terms of the GNU General Public License as published by
9   the Free Software Foundation, either version 3 of the License, or
10   (at your option) any later version.
11
12   This program is distributed in the hope that it will be useful,
13   but WITHOUT ANY WARRANTY; without even the implied warranty of
14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   GNU General Public License for more details.
16
17   You should have received a copy of the GNU General Public License
18   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19
20/* As a special exception, you may create a larger work that contains
21   part or all of the Bison parser skeleton and distribute that work
22   under terms of your choice, so long as that work isn't itself a
23   parser generator using the skeleton or a modified version thereof
24   as a parser skeleton.  Alternatively, if you modify or redistribute
25   the parser skeleton itself, you may (at your option) remove this
26   special exception, which will cause the skeleton and the resulting
27   Bison output files to be licensed under the GNU General Public
28   License without this special exception.
29
30   This special exception was added by the Free Software Foundation in
31   version 2.2 of Bison.  */
32
33/* C LALR(1) parser skeleton written by Richard Stallman, by
34   simplifying the original so-called "semantic" parser.  */
35
36/* All symbols defined below should begin with yy or YY, to avoid
37   infringing on user name space.  This should be done even for local
38   variables, as they might otherwise be expanded by user macros.
39   There are some unavoidable exceptions within include files to
40   define necessary library symbols; they are noted "INFRINGES ON
41   USER NAME SPACE" below.  */
42
43/* Identify Bison output.  */
44#define YYBISON 1
45
46/* Bison version.  */
47#define YYBISON_VERSION "3.0.4"
48
49/* Skeleton name.  */
50#define YYSKELETON_NAME "yacc.c"
51
52/* Pure parsers.  */
53#define YYPURE 0
54
55/* Push parsers.  */
56#define YYPUSH 0
57
58/* Pull parsers.  */
59#define YYPULL 1
60
61
62/* Substitute the variable and function names.  */
63#define yyparse         fortran_parse
64#define yylex           fortran_lex
65#define yyerror         fortran_error
66#define yydebug         fortran_debug
67#define yynerrs         fortran_nerrs
68
69#define yylval          fortran_lval
70#define yychar          fortran_char
71
72/* Copy the first part of user declarations.  */
73#line 36 "fortran.y" /* yacc.c:339  */
74
75#define YYMAXDEPTH 1000
76#include <stdlib.h>
77#include <stdio.h>
78#include <string.h>
79#include "decl.h"
80
81extern int line_num_input;
82
83char c_selectorname[LONG_M];
84char ligne[LONG_M];
85char truename[LONG_VNAME];
86char identcopy[LONG_VNAME];
87int c_selectorgiven=0;
88listvar *curlistvar;
89int in_select_case_stmt=0;
90typedim c_selectordim;
91listcouple *coupletmp;
92int removeline=0;
93int token_since_endofstmt = 0;
94int increment_nbtokens = 1;
95int in_complex_literal = 0;
96int close_or_connect = 0;
97int in_io_control_spec = 0;
98int intent_spec = 0;
99long int my_position;
100long int my_position_before;
101int suborfun = 0;
102int indeclaration = 0;
103int endoffile = 0;
104int in_inquire = 0;
105int in_char_selector = 0;
106int in_kind_selector =0;
107int char_length_toreset = 0;
108
109typedim my_dim;
110
111listvar *test;
112
113char linebuf1[1024];
114char linebuf2[1024];
115
116int fortran_error(const char *s)
117{
118  if (endoffile == 1) 
119  {
120  endoffile = 0;
121  return 0;
122  }
123    printf("%s line %d, file %s culprit = |%s|\n", s, line_num_input, cur_filename, strcat(linebuf1, linebuf2));
124    exit(1);
125}
126
127
128#line 129 "fortran.tab.c" /* yacc.c:339  */
129
130# ifndef YY_NULLPTR
131#  if defined __cplusplus && 201103L <= __cplusplus
132#   define YY_NULLPTR nullptr
133#  else
134#   define YY_NULLPTR 0
135#  endif
136# endif
137
138/* Enabling verbose error messages.  */
139#ifdef YYERROR_VERBOSE
140# undef YYERROR_VERBOSE
141# define YYERROR_VERBOSE 1
142#else
143# define YYERROR_VERBOSE 0
144#endif
145
146
147/* Debug traces.  */
148#ifndef YYDEBUG
149# define YYDEBUG 1
150#endif
151#if YYDEBUG
152extern int fortran_debug;
153#endif
154
155/* Token type.  */
156#ifndef YYTOKENTYPE
157# define YYTOKENTYPE
158  enum yytokentype
159  {
160    TOK_EQV = 258,
161    TOK_NEQV = 259,
162    TOK_OR = 260,
163    TOK_XOR = 261,
164    TOK_AND = 262,
165    TOK_NOT = 263,
166    TOK_LT = 264,
167    TOK_GT = 265,
168    TOK_LE = 266,
169    TOK_GE = 267,
170    TOK_EQ = 268,
171    TOK_NE = 269,
172    TOK_DSLASH = 270,
173    TOK_SLASH = 271,
174    TOK_DASTER = 272,
175    TOK_SEMICOLON = 273,
176    TOK_PARAMETER = 274,
177    TOK_RESULT = 275,
178    TOK_ONLY = 276,
179    TOK_INCLUDE = 277,
180    TOK_SUBROUTINE = 278,
181    TOK_PROGRAM = 279,
182    TOK_FUNCTION = 280,
183    TOK_LABEL_FORMAT = 281,
184    TOK_LABEL_CONTINUE = 282,
185    TOK_LABEL_END_DO = 283,
186    TOK_MAX = 284,
187    TOK_TANH = 285,
188    TOK_COMMENT = 286,
189    TOK_WHERE = 287,
190    TOK_ELSEWHEREPAR = 288,
191    TOK_ELSEWHERE = 289,
192    TOK_ENDWHERE = 290,
193    TOK_MAXVAL = 291,
194    TOK_TRIM = 292,
195    TOK_NULL_PTR = 293,
196    TOK_SUM = 294,
197    TOK_SQRT = 295,
198    TOK_CASE = 296,
199    TOK_SELECTCASE = 297,
200    TOK_FILE = 298,
201    TOK_REC = 299,
202    TOK_NAME_EQ = 300,
203    TOK_IOLENGTH = 301,
204    TOK_ACCESS = 302,
205    TOK_ACTION = 303,
206    TOK_FORM = 304,
207    TOK_RECL = 305,
208    TOK_STATUS = 306,
209    TOK_UNIT = 307,
210    TOK_OPENED = 308,
211    TOK_FMT = 309,
212    TOK_NML = 310,
213    TOK_END = 311,
214    TOK_EOR = 312,
215    TOK_EOF = 313,
216    TOK_ERR = 314,
217    TOK_POSITION = 315,
218    TOK_IOSTAT = 316,
219    TOK_IOMSG = 317,
220    TOK_EXIST = 318,
221    TOK_MIN = 319,
222    TOK_FLOAT = 320,
223    TOK_EXP = 321,
224    TOK_LEN = 322,
225    TOK_COS = 323,
226    TOK_COSH = 324,
227    TOK_ACOS = 325,
228    TOK_NINT = 326,
229    TOK_CYCLE = 327,
230    TOK_SIN = 328,
231    TOK_SINH = 329,
232    TOK_ASIN = 330,
233    TOK_EQUIVALENCE = 331,
234    TOK_BACKSPACE = 332,
235    TOK_LOG = 333,
236    TOK_TAN = 334,
237    TOK_ATAN = 335,
238    TOK_RECURSIVE = 336,
239    TOK_ABS = 337,
240    TOK_MOD = 338,
241    TOK_SIGN = 339,
242    TOK_MINLOC = 340,
243    TOK_MAXLOC = 341,
244    TOK_EXIT = 342,
245    TOK_KIND = 343,
246    TOK_MOLD = 344,
247    TOK_SOURCE = 345,
248    TOK_ERRMSG = 346,
249    TOK_MINVAL = 347,
250    TOK_PUBLIC = 348,
251    TOK_PRIVATE = 349,
252    TOK_ALLOCATABLE = 350,
253    TOK_CONTIGUOUS = 351,
254    TOK_RETURN = 352,
255    TOK_THEN = 353,
256    TOK_ELSEIF = 354,
257    TOK_ELSE = 355,
258    TOK_ENDIF = 356,
259    TOK_PRINT = 357,
260    TOK_PLAINGOTO = 358,
261    TOK_LOGICALIF = 359,
262    TOK_LOGICALIF_PAR = 360,
263    TOK_PLAINDO = 361,
264    TOK_CONTAINS = 362,
265    TOK_ENDDO = 363,
266    TOK_MODULE = 364,
267    TOK_ENDMODULE = 365,
268    TOK_WHILE = 366,
269    TOK_CONCURRENT = 367,
270    TOK_ALLOCATE = 368,
271    TOK_OPEN = 369,
272    TOK_CLOSE = 370,
273    TOK_INQUIRE = 371,
274    TOK_WRITE_PAR = 372,
275    TOK_WRITE = 373,
276    TOK_FLUSH = 374,
277    TOK_READ_PAR = 375,
278    TOK_READ = 376,
279    TOK_REWIND = 377,
280    TOK_DEALLOCATE = 378,
281    TOK_NULLIFY = 379,
282    TOK_DIMENSION = 380,
283    TOK_ENDSELECT = 381,
284    TOK_EXTERNAL = 382,
285    TOK_INTENT = 383,
286    TOK_INTRINSIC = 384,
287    TOK_NAMELIST = 385,
288    TOK_DEFAULT = 386,
289    TOK_OPTIONAL = 387,
290    TOK_POINTER = 388,
291    TOK_CONTINUE = 389,
292    TOK_SAVE = 390,
293    TOK_TARGET = 391,
294    TOK_IMPLICIT = 392,
295    TOK_NONE = 393,
296    TOK_CALL = 394,
297    TOK_STAT = 395,
298    TOK_POINT_TO = 396,
299    TOK_COMMON = 397,
300    TOK_GLOBAL = 398,
301    TOK_LEFTAB = 399,
302    TOK_RIGHTAB = 400,
303    TOK_PAUSE = 401,
304    TOK_PROCEDURE = 402,
305    TOK_STOP = 403,
306    TOK_FOURDOTS = 404,
307    TOK_HEXA = 405,
308    TOK_ASSIGNTYPE = 406,
309    TOK_OUT = 407,
310    TOK_INOUT = 408,
311    TOK_IN = 409,
312    TOK_USE = 410,
313    TOK_EQUALEQUAL = 411,
314    TOK_SLASHEQUAL = 412,
315    TOK_INFEQUAL = 413,
316    TOK_SUPEQUAL = 414,
317    TOK_TRUE = 415,
318    TOK_FALSE = 416,
319    TOK_LABEL = 417,
320    TOK_LABEL_DJVIEW = 418,
321    TOK_PLAINDO_LABEL_DJVIEW = 419,
322    TOK_PLAINDO_LABEL = 420,
323    TOK_TYPE = 421,
324    TOK_TYPEPAR = 422,
325    TOK_ENDTYPE = 423,
326    TOK_COMMACOMPLEX = 424,
327    TOK_REAL = 425,
328    TOK_INTEGER = 426,
329    TOK_LOGICAL = 427,
330    TOK_DOUBLEPRECISION = 428,
331    TOK_ENDSUBROUTINE = 429,
332    TOK_ENDFUNCTION = 430,
333    TOK_ENDPROGRAM = 431,
334    TOK_ENDUNIT = 432,
335    TOK_CHARACTER = 433,
336    TOK_CHAR_CONSTANT = 434,
337    TOK_CHAR_CUT = 435,
338    TOK_DATA = 436,
339    TOK_CHAR_MESSAGE = 437,
340    TOK_CSTREAL = 438,
341    TOK_COMPLEX = 439,
342    TOK_DOUBLECOMPLEX = 440,
343    TOK_NAME = 441,
344    TOK_CSTINT = 442
345  };
346#endif
347
348/* Value type.  */
349#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
350
351union YYSTYPE
352{
353#line 91 "fortran.y" /* yacc.c:355  */
354
355    char        na[LONG_M];
356    listdim     *d;
357    listvar     *l;
358    listcouple  *lc;
359    listname    *lnn;
360    typedim     dim1;
361    variable    *v;
362
363#line 364 "fortran.tab.c" /* yacc.c:355  */
364};
365
366typedef union YYSTYPE YYSTYPE;
367# define YYSTYPE_IS_TRIVIAL 1
368# define YYSTYPE_IS_DECLARED 1
369#endif
370
371
372extern YYSTYPE fortran_lval;
373
374int fortran_parse (void);
375
376
377
378/* Copy the second part of user declarations.  */
379
380#line 381 "fortran.tab.c" /* yacc.c:358  */
381
382#ifdef short
383# undef short
384#endif
385
386#ifdef YYTYPE_UINT8
387typedef YYTYPE_UINT8 yytype_uint8;
388#else
389typedef unsigned char yytype_uint8;
390#endif
391
392#ifdef YYTYPE_INT8
393typedef YYTYPE_INT8 yytype_int8;
394#else
395typedef signed char yytype_int8;
396#endif
397
398#ifdef YYTYPE_UINT16
399typedef YYTYPE_UINT16 yytype_uint16;
400#else
401typedef unsigned short int yytype_uint16;
402#endif
403
404#ifdef YYTYPE_INT16
405typedef YYTYPE_INT16 yytype_int16;
406#else
407typedef short int yytype_int16;
408#endif
409
410#ifndef YYSIZE_T
411# ifdef __SIZE_TYPE__
412#  define YYSIZE_T __SIZE_TYPE__
413# elif defined size_t
414#  define YYSIZE_T size_t
415# elif ! defined YYSIZE_T
416#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
417#  define YYSIZE_T size_t
418# else
419#  define YYSIZE_T unsigned int
420# endif
421#endif
422
423#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
424
425#ifndef YY_
426# if defined YYENABLE_NLS && YYENABLE_NLS
427#  if ENABLE_NLS
428#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
429#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
430#  endif
431# endif
432# ifndef YY_
433#  define YY_(Msgid) Msgid
434# endif
435#endif
436
437#ifndef YY_ATTRIBUTE
438# if (defined __GNUC__                                               \
439      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
440     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
441#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
442# else
443#  define YY_ATTRIBUTE(Spec) /* empty */
444# endif
445#endif
446
447#ifndef YY_ATTRIBUTE_PURE
448# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
449#endif
450
451#ifndef YY_ATTRIBUTE_UNUSED
452# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
453#endif
454
455#if !defined _Noreturn \
456     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
457# if defined _MSC_VER && 1200 <= _MSC_VER
458#  define _Noreturn __declspec (noreturn)
459# else
460#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
461# endif
462#endif
463
464/* Suppress unused-variable warnings by "using" E.  */
465#if ! defined lint || defined __GNUC__
466# define YYUSE(E) ((void) (E))
467#else
468# define YYUSE(E) /* empty */
469#endif
470
471#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
472/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
473# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
474    _Pragma ("GCC diagnostic push") \
475    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
476    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
477# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
478    _Pragma ("GCC diagnostic pop")
479#else
480# define YY_INITIAL_VALUE(Value) Value
481#endif
482#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
483# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
484# define YY_IGNORE_MAYBE_UNINITIALIZED_END
485#endif
486#ifndef YY_INITIAL_VALUE
487# define YY_INITIAL_VALUE(Value) /* Nothing. */
488#endif
489
490
491#if ! defined yyoverflow || YYERROR_VERBOSE
492
493/* The parser invokes alloca or malloc; define the necessary symbols.  */
494
495# ifdef YYSTACK_USE_ALLOCA
496#  if YYSTACK_USE_ALLOCA
497#   ifdef __GNUC__
498#    define YYSTACK_ALLOC __builtin_alloca
499#   elif defined __BUILTIN_VA_ARG_INCR
500#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
501#   elif defined _AIX
502#    define YYSTACK_ALLOC __alloca
503#   elif defined _MSC_VER
504#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
505#    define alloca _alloca
506#   else
507#    define YYSTACK_ALLOC alloca
508#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
509#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
510      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
511#     ifndef EXIT_SUCCESS
512#      define EXIT_SUCCESS 0
513#     endif
514#    endif
515#   endif
516#  endif
517# endif
518
519# ifdef YYSTACK_ALLOC
520   /* Pacify GCC's 'empty if-body' warning.  */
521#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
522#  ifndef YYSTACK_ALLOC_MAXIMUM
523    /* The OS might guarantee only one guard page at the bottom of the stack,
524       and a page size can be as small as 4096 bytes.  So we cannot safely
525       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
526       to allow for a few compiler-allocated temporary stack slots.  */
527#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
528#  endif
529# else
530#  define YYSTACK_ALLOC YYMALLOC
531#  define YYSTACK_FREE YYFREE
532#  ifndef YYSTACK_ALLOC_MAXIMUM
533#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
534#  endif
535#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
536       && ! ((defined YYMALLOC || defined malloc) \
537             && (defined YYFREE || defined free)))
538#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
539#   ifndef EXIT_SUCCESS
540#    define EXIT_SUCCESS 0
541#   endif
542#  endif
543#  ifndef YYMALLOC
544#   define YYMALLOC malloc
545#   if ! defined malloc && ! defined EXIT_SUCCESS
546void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
547#   endif
548#  endif
549#  ifndef YYFREE
550#   define YYFREE free
551#   if ! defined free && ! defined EXIT_SUCCESS
552void free (void *); /* INFRINGES ON USER NAME SPACE */
553#   endif
554#  endif
555# endif
556#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
557
558
559#if (! defined yyoverflow \
560     && (! defined __cplusplus \
561         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
562
563/* A type that is properly aligned for any stack member.  */
564union yyalloc
565{
566  yytype_int16 yyss_alloc;
567  YYSTYPE yyvs_alloc;
568};
569
570/* The size of the maximum gap between one aligned stack and the next.  */
571# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
572
573/* The size of an array large to enough to hold all stacks, each with
574   N elements.  */
575# define YYSTACK_BYTES(N) \
576     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
577      + YYSTACK_GAP_MAXIMUM)
578
579# define YYCOPY_NEEDED 1
580
581/* Relocate STACK from its old location to the new one.  The
582   local variables YYSIZE and YYSTACKSIZE give the old and new number of
583   elements in the stack, and YYPTR gives the new location of the
584   stack.  Advance YYPTR to a properly aligned location for the next
585   stack.  */
586# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
587    do                                                                  \
588      {                                                                 \
589        YYSIZE_T yynewbytes;                                            \
590        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
591        Stack = &yyptr->Stack_alloc;                                    \
592        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
593        yyptr += yynewbytes / sizeof (*yyptr);                          \
594      }                                                                 \
595    while (0)
596
597#endif
598
599#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
600/* Copy COUNT objects from SRC to DST.  The source and destination do
601   not overlap.  */
602# ifndef YYCOPY
603#  if defined __GNUC__ && 1 < __GNUC__
604#   define YYCOPY(Dst, Src, Count) \
605      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
606#  else
607#   define YYCOPY(Dst, Src, Count)              \
608      do                                        \
609        {                                       \
610          YYSIZE_T yyi;                         \
611          for (yyi = 0; yyi < (Count); yyi++)   \
612            (Dst)[yyi] = (Src)[yyi];            \
613        }                                       \
614      while (0)
615#  endif
616# endif
617#endif /* !YYCOPY_NEEDED */
618
619/* YYFINAL -- State number of the termination state.  */
620#define YYFINAL  2
621/* YYLAST -- Last index in YYTABLE.  */
622#define YYLAST   4675
623
624/* YYNTOKENS -- Number of terminals.  */
625#define YYNTOKENS  204
626/* YYNNTS -- Number of nonterminals.  */
627#define YYNNTS  524
628/* YYNRULES -- Number of rules.  */
629#define YYNRULES  1072
630/* YYNSTATES -- Number of states.  */
631#define YYNSTATES  1736
632
633/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
634   by yylex, with out-of-bounds checking.  */
635#define YYUNDEFTOK  2
636#define YYMAXUTOK   442
637
638#define YYTRANSLATE(YYX)                                                \
639  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
640
641/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
642   as returned by yylex, without out-of-bounds checking.  */
643static const yytype_uint8 yytranslate[] =
644{
645       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
646     198,     2,     2,     2,     2,     2,     2,     2,     2,     2,
647       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
648       2,     2,     2,     2,     2,     2,     2,   200,     2,     2,
649     194,   195,    21,    19,     3,    20,     2,   199,     2,     2,
650       2,     2,     2,     2,     2,     2,     2,     2,     4,     2,
651     196,     5,   197,     2,     2,     2,     2,     2,     2,     2,
652       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
653       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
654       2,   202,     2,   203,     2,   201,     2,     2,     2,     2,
655       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
656       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
657       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
658       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
659       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
660       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
661       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
662       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
663       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
664       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
665       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
666       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
667       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
668       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
669       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
670       2,     2,     2,     2,     2,     2,     1,     2,     6,     7,
671       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
672      18,    22,    23,    24,    25,    26,    27,    28,    29,    30,
673      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
674      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
675      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
676      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
677      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
678      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
679      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
680     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
681     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
682     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
683     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
684     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
685     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
686     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
687     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
688     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
689     191,   192,   193
690};
691
692#if YYDEBUG
693  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
694static const yytype_uint16 yyrline[] =
695{
696       0,   515,   515,   516,   518,   519,   520,   522,   524,   525,
697     526,   527,   530,   531,   532,   534,   535,   543,   561,   565,
698     566,   567,   571,   572,   585,   853,   854,  1107,  1108,  1109,
699    1110,  1111,  1113,  1114,  1118,  1119,  1120,  1121,  1122,  1123,
700    1124,  1125,  1126,  1127,  1128,  1129,  1130,  1131,  1132,  1133,
701    1134,  1135,  1136,  1137,  1138,  1140,  1141,  1142,  1143,  1146,
702    1147,  1150,  1151,  1152,  1156,  1167,  1168,  1169,  1169,  1170,
703    1170,  1172,  1173,  1173,  1182,  1194,  1195,  1198,  1199,  1202,
704    1203,  1206,  1207,  1208,  1209,  1210,  1211,  1212,  1214,  1261,
705    1262,  1263,  1264,  1265,  1266,  1267,  1269,  1272,  1273,  1274,
706    1275,  1277,  1278,  1288,  1289,  1341,  1344,  1345,  1370,  1371,
707    1375,  1376,  1389,  1390,  1391,  1392,  1393,  1394,  1395,  1396,
708    1397,  1398,  1399,  1400,  1401,  1404,  1405,  1409,  1412,  1413,
709    1417,  1418,  1422,  1423,  1426,  1427,  1431,  1435,  1436,  1439,
710    1440,  1444,  1445,  1449,  1450,  1451,  1452,  1453,  1454,  1455,
711    1456,  1457,  1462,  1463,  1464,  1465,  1466,  1474,  1475,  1476,
712    1477,  1478,  1479,  1480,  1481,  1482,  1483,  1484,  1485,  1486,
713    1508,  1509,  1510,  1511,  1512,  1513,  1514,  1515,  1516,  1517,
714    1518,  1519,  1523,  1526,  1531,  1532,  1536,  1537,  1538,  1539,
715    1541,  1545,  1564,  1565,  1569,  1570,  1574,  1575,  1579,  1583,
716    1584,  1585,  1596,  1596,  1598,  1599,  1604,  1604,  1606,  1606,
717    1608,  1608,  1610,  1610,  1612,  1612,  1614,  1614,  1619,  1620,
718    1626,  1628,  1630,  1637,  1638,  1643,  1644,  1649,  1650,  1666,
719    1667,  1672,  1673,  1680,  1686,  1687,  1688,  1692,  1693,  1694,
720    1697,  1698,  1703,  1704,  1709,  1710,  1711,  1712,  1713,  1717,
721    1719,  1721,  1722,  1726,  1728,  1733,  1734,  1735,  1739,  1740,
722    1744,  1744,  1749,  1750,  1753,  1754,  1757,  1758,  1761,  1762,
723    1766,  1769,  1770,  1773,  1777,  1778,  1781,  1782,  1786,  1787,
724    1791,  1795,  1798,  1799,  1800,  1803,  1804,  1808,  1809,  1810,
725    1811,  1811,  1812,  1815,  1816,  1820,  1844,  1845,  1849,  1850,
726    1853,  1854,  1858,  1859,  1860,  1864,  1869,  1871,  1874,  1875,
727    1879,  1880,  1884,  1885,  1888,  1889,  1893,  1894,  1898,  1899,
728    1900,  1904,  1906,  1921,  1925,  1929,  1933,  1934,  1939,  1940,
729    1944,  1949,  1951,  1956,  1960,  1961,  1960,  2029,  2030,  2033,
730    2034,  2038,  2039,  2043,  2044,  2046,  2048,  2048,  2050,  2052,
731    2052,  2054,  2055,  2057,  2059,  2061,  2063,  2068,  2070,  2075,
732    2109,  2112,  2115,  2116,  2120,  2126,  2132,  2141,  2145,  2147,
733    2152,  2153,  2153,  2158,  2160,  2162,  2164,  2166,  2170,  2176,
734    2185,  2187,  2192,  2197,  2201,  2207,  2216,  2218,  2223,  2229,
735    2238,  2243,  2266,  2267,  2286,  2287,  2291,  2292,  2296,  2300,
736    2302,  2304,  2310,  2309,  2328,  2329,  2333,  2335,  2340,  2341,
737    2346,  2345,  2360,  2361,  2364,  2365,  2369,  2379,  2381,  2387,
738    2389,  2394,  2395,  2399,  2405,  2412,  2414,  2419,  2420,  2424,
739    2428,  2433,  2435,  2437,  2439,  2440,  2441,  2442,  2443,  2447,
740    2448,  2464,  2465,  2466,  2467,  2468,  2469,  2470,  2476,  2484,
741    2489,  2491,  2489,  2537,  2537,  2546,  2546,  2559,  2560,  2559,
742    2579,  2581,  2586,  2603,  2604,  2603,  2611,  2612,  2615,  2616,
743    2619,  2620,  2624,  2626,  2627,  2631,  2635,  2639,  2641,  2640,
744    2652,  2653,  2657,  2660,  2661,  2665,  2666,  2670,  2673,  2674,
745    2676,  2677,  2681,  2685,  2688,  2689,  2693,  2693,  2696,  2697,
746    2701,  2702,  2703,  2708,  2709,  2708,  2718,  2719,  2727,  2733,
747    2741,  2742,  2745,  2747,  2746,  2756,  2758,  2766,  2772,  2772,
748    2781,  2782,  2783,  2784,  2793,  2796,  2809,  2812,  2816,  2820,
749    2823,  2827,  2830,  2833,  2837,  2838,  2840,  2855,  2860,  2865,
750    2866,  2871,  2873,  2873,  2885,  2889,  2894,  2899,  2901,  2908,
751    2909,  2911,  2933,  2935,  2937,  2939,  2941,  2943,  2945,  2946,
752    2948,  2950,  2954,  2956,  2958,  2960,  2962,  2965,  2979,  2983,
753    2984,  2983,  2992,  2993,  2997,  2998,  3002,  3003,  3007,  3011,
754    3015,  3016,  3020,  3024,  3025,  3028,  3029,  3033,  3034,  3038,
755    3041,  3042,  3046,  3050,  3054,  3055,  3054,  3060,  3061,  3064,
756    3065,  3069,  3070,  3074,  3075,  3084,  3094,  3095,  3096,  3097,
757    3102,  3107,  3108,  3112,  3113,  3120,  3121,  3123,  3125,  3126,
758    3131,  3135,  3137,  3141,  3143,  3148,  3149,  3154,  3157,  3158,
759    3163,  3164,  3165,  3166,  3167,  3168,  3169,  3170,  3171,  3173,
760    3174,  3176,  3181,  3182,  3188,  3189,  3195,  3196,  3201,  3202,
761    3207,  3211,  3215,  3219,  3220,  3224,  3227,  3231,  3235,  3239,
762    3240,  3243,  3247,  3254,  3258,  3262,  3265,  3269,  3275,  3276,
763    3288,  3289,  3290,  3298,  3299,  3303,  3304,  3308,  3309,  3313,
764    3317,  3321,  3324,  3333,  3337,  3338,  3339,  3343,  3347,  3350,
765    3351,  3354,  3355,  3358,  3359,  3363,  3367,  3368,  3369,  3373,
766    3377,  3381,  3382,  3386,  3387,  3392,  3393,  3397,  3401,  3404,
767    3405,  3410,  3411,  3415,  3420,  3421,  3432,  3433,  3434,  3435,
768    3438,  3439,  3440,  3441,  3445,  3446,  3447,  3448,  3453,  3454,
769    3455,  3456,  3460,  3464,  3473,  3474,  3478,  3479,  3490,  3491,
770    3497,  3507,  3512,  3513,  3514,  3515,  3516,  3517,  3518,  3519,
771    3520,  3521,  3522,  3523,  3524,  3525,  3526,  3527,  3528,  3538,
772    3539,  3542,  3543,  3554,  3559,  3562,  3563,  3567,  3571,  3574,
773    3575,  3576,  3579,  3582,  3583,  3584,  3587,  3591,  3592,  3593,
774    3597,  3598,  3602,  3603,  3607,  3608,  3612,  3616,  3619,  3620,
775    3621,  3624,  3628,  3628,  3629,  3629,  3633,  3634,  3638,  3638,
776    3639,  3639,  3644,  3644,  3645,  3649,  3650,  3655,  3656,  3657,
777    3658,  3662,  3666,  3667,  3671,  3675,  3679,  3683,  3684,  3688,
778    3689,  3693,  3694,  3695,  3699,  3703,  3707,  3707,  3707,  3710,
779    3711,  3715,  3716,  3717,  3718,  3719,  3720,  3721,  3722,  3723,
780    3724,  3725,  3729,  3733,  3737,  3737,  3741,  3742,  3746,  3747,
781    3748,  3749,  3750,  3755,  3754,  3760,  3759,  3764,  3765,  3770,
782    3769,  3775,  3774,  3782,  3783,  3785,  3786,  3789,  3793,  3794,
783    3795,  3796,  3797,  3798,  3799,  3800,  3801,  3802,  3803,  3807,
784    3808,  3809,  3812,  3813,  3816,  3817,  3821,  3822,  3826,  3827,
785    3831,  3834,  3835,  3845,  3849,  3850,  3854,  3855,  3859,  3860,
786    3864,  3865,  3866,  3867,  3868,  3872,  3873,  3877,  3878,  3882,
787    3883,  3884,  3885,  3886,  3892,  3891,  3895,  3894,  3899,  3903,
788    3904,  3908,  3909,  3910,  3911,  3912,  3913,  3914,  3915,  3916,
789    3917,  3918,  3922,  3926,  3926,  3929,  3930,  3935,  3934,  3955,
790    3954,  3979,  3980,  3983,  3984,  3987,  3990,  3991,  3994,  3995,
791    3998,  3999,  4002,  4003,  4007,  4012,  4011,  4050,  4049,  4101,
792    4102,  4103,  4107,  4108,  4113,  4116,  4117,  4120,  4121,  4126,
793    4125,  4139,  4140,  4139,  4151,  4152,  4154,  4155,  4158,  4162,
794    4165,  4171,  4175,  4184,  4194,  4196,  4205,  4213,  4221,  4229,
795    4233,  4237,  4238,  4241,  4242,  4245,  4249,  4253,  4254,  4257,
796    4261,  4262,  4262,  4269,  4268,  4282,  4281,  4294,  4295,  4294,
797    4309,  4309,  4333,  4334,  4335,  4339,  4340,  4345,  4353,  4364,
798    4365,  4375,  4378,  4379,  4383,  4384,  4388,  4390,  4392,  4397,
799    4402,  4403,  4401,  4427,  4452,  4457,  4458,  4462,  4479,  4478,
800    4483,  4484,  4488,  4493,  4492,  4507,  4524,  4529,  4573,  4574,
801    4578,  4579,  4579,  4584,  4585,  4590,  4602,  4616,  4618,  4623,
802    4624,  4629,  4628,  4664,  4665,  4772,  4773,  4774,  4775,  4776,
803    4793,  4886,  4887
804};
805#endif
806
807#if YYDEBUG || YYERROR_VERBOSE || 0
808/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
809   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
810static const char *const yytname[] =
811{
812  "$end", "error", "$undefined", "','", "':'", "'='", "TOK_EQV",
813  "TOK_NEQV", "TOK_OR", "TOK_XOR", "TOK_AND", "TOK_NOT", "TOK_LT",
814  "TOK_GT", "TOK_LE", "TOK_GE", "TOK_EQ", "TOK_NE", "TOK_DSLASH", "'+'",
815  "'-'", "'*'", "TOK_SLASH", "TOK_DASTER", "TOK_SEMICOLON",
816  "TOK_PARAMETER", "TOK_RESULT", "TOK_ONLY", "TOK_INCLUDE",
817  "TOK_SUBROUTINE", "TOK_PROGRAM", "TOK_FUNCTION", "TOK_LABEL_FORMAT",
818  "TOK_LABEL_CONTINUE", "TOK_LABEL_END_DO", "TOK_MAX", "TOK_TANH",
819  "TOK_COMMENT", "TOK_WHERE", "TOK_ELSEWHEREPAR", "TOK_ELSEWHERE",
820  "TOK_ENDWHERE", "TOK_MAXVAL", "TOK_TRIM", "TOK_NULL_PTR", "TOK_SUM",
821  "TOK_SQRT", "TOK_CASE", "TOK_SELECTCASE", "TOK_FILE", "TOK_REC",
822  "TOK_NAME_EQ", "TOK_IOLENGTH", "TOK_ACCESS", "TOK_ACTION", "TOK_FORM",
823  "TOK_RECL", "TOK_STATUS", "TOK_UNIT", "TOK_OPENED", "TOK_FMT", "TOK_NML",
824  "TOK_END", "TOK_EOR", "TOK_EOF", "TOK_ERR", "TOK_POSITION", "TOK_IOSTAT",
825  "TOK_IOMSG", "TOK_EXIST", "TOK_MIN", "TOK_FLOAT", "TOK_EXP", "TOK_LEN",
826  "TOK_COS", "TOK_COSH", "TOK_ACOS", "TOK_NINT", "TOK_CYCLE", "TOK_SIN",
827  "TOK_SINH", "TOK_ASIN", "TOK_EQUIVALENCE", "TOK_BACKSPACE", "TOK_LOG",
828  "TOK_TAN", "TOK_ATAN", "TOK_RECURSIVE", "TOK_ABS", "TOK_MOD", "TOK_SIGN",
829  "TOK_MINLOC", "TOK_MAXLOC", "TOK_EXIT", "TOK_KIND", "TOK_MOLD",
830  "TOK_SOURCE", "TOK_ERRMSG", "TOK_MINVAL", "TOK_PUBLIC", "TOK_PRIVATE",
831  "TOK_ALLOCATABLE", "TOK_CONTIGUOUS", "TOK_RETURN", "TOK_THEN",
832  "TOK_ELSEIF", "TOK_ELSE", "TOK_ENDIF", "TOK_PRINT", "TOK_PLAINGOTO",
833  "TOK_LOGICALIF", "TOK_LOGICALIF_PAR", "TOK_PLAINDO", "TOK_CONTAINS",
834  "TOK_ENDDO", "TOK_MODULE", "TOK_ENDMODULE", "TOK_WHILE",
835  "TOK_CONCURRENT", "TOK_ALLOCATE", "TOK_OPEN", "TOK_CLOSE", "TOK_INQUIRE",
836  "TOK_WRITE_PAR", "TOK_WRITE", "TOK_FLUSH", "TOK_READ_PAR", "TOK_READ",
837  "TOK_REWIND", "TOK_DEALLOCATE", "TOK_NULLIFY", "TOK_DIMENSION",
838  "TOK_ENDSELECT", "TOK_EXTERNAL", "TOK_INTENT", "TOK_INTRINSIC",
839  "TOK_NAMELIST", "TOK_DEFAULT", "TOK_OPTIONAL", "TOK_POINTER",
840  "TOK_CONTINUE", "TOK_SAVE", "TOK_TARGET", "TOK_IMPLICIT", "TOK_NONE",
841  "TOK_CALL", "TOK_STAT", "TOK_POINT_TO", "TOK_COMMON", "TOK_GLOBAL",
842  "TOK_LEFTAB", "TOK_RIGHTAB", "TOK_PAUSE", "TOK_PROCEDURE", "TOK_STOP",
843  "TOK_FOURDOTS", "TOK_HEXA", "TOK_ASSIGNTYPE", "TOK_OUT", "TOK_INOUT",
844  "TOK_IN", "TOK_USE", "TOK_EQUALEQUAL", "TOK_SLASHEQUAL", "TOK_INFEQUAL",
845  "TOK_SUPEQUAL", "TOK_TRUE", "TOK_FALSE", "TOK_LABEL", "TOK_LABEL_DJVIEW",
846  "TOK_PLAINDO_LABEL_DJVIEW", "TOK_PLAINDO_LABEL", "TOK_TYPE",
847  "TOK_TYPEPAR", "TOK_ENDTYPE", "TOK_COMMACOMPLEX", "TOK_REAL",
848  "TOK_INTEGER", "TOK_LOGICAL", "TOK_DOUBLEPRECISION", "TOK_ENDSUBROUTINE",
849  "TOK_ENDFUNCTION", "TOK_ENDPROGRAM", "TOK_ENDUNIT", "TOK_CHARACTER",
850  "TOK_CHAR_CONSTANT", "TOK_CHAR_CUT", "TOK_DATA", "TOK_CHAR_MESSAGE",
851  "TOK_CSTREAL", "TOK_COMPLEX", "TOK_DOUBLECOMPLEX", "TOK_NAME",
852  "TOK_CSTINT", "'('", "')'", "'<'", "'>'", "'\\n'", "'/'", "'%'", "'_'",
853  "'['", "']'", "$accept", "input", "line", "line-break",
854  "suite_line_list", "suite_line", "fin_line", "program-unit",
855  "external-subprogram", "filename", "opt_comma", "uexpr", "signe",
856  "operation", "after_slash", "after_equal", "lhs", "beforefunctionuse",
857  "array_ele_substring_func_ref", "$@4", "$@5", "begin_array", "$@6",
858  "structure_component", "funarglist", "funargs", "funarg", "triplet",
859  "ident", "simple_const", "string_constant", "opt_substring", "opt_expr",
860  "specification-part", "opt-use-stmt-list",
861  "opt-declaration-construct-list", "declaration-construct-list",
862  "declaration-construct", "opt-execution-part", "execution-part",
863  "opt-execution-part-construct-list", "execution-part-construct-list",
864  "execution-part-construct", "opt-internal-subprogram-part",
865  "internal-subprogram-part", "opt-internal-subprogram",
866  "internal-subprogram-list", "internal-subprogram",
867  "other-specification-stmt", "executable-construct", "action-stmt",
868  "keyword", "scalar-constant", "constant", "literal-constant",
869  "named-constant", "opt-label", "label", "opt-label-djview",
870  "label-djview", "type-param-value", "declaration-type-spec", "$@7",
871  "intrinsic-type-spec", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13",
872  "opt-kind-selector", "kind-selector", "signed-int-literal-constant",
873  "int-literal-constant", "kind-param", "signed-real-literal-constant",
874  "real-literal-constant", "complex-literal-constant", "real-part",
875  "imag-part", "opt-char_length-star", "opt-char-selector",
876  "char-selector", "length-selector", "char-length",
877  "char-literal-constant", "logical-literal-constant", "derived-type-def",
878  "$@14", "derived-type-stmt", "opt-type-attr-spec-list-comma-fourdots",
879  "opt-type-attr-spec-list-comma", "type-attr-spec-list", "type-attr-spec",
880  "type-param-name-list", "type-param-name", "end-type-stmt",
881  "opt-component-part", "component-part", "component-def-stmt",
882  "data-component-def-stmt", "opt-component-attr-spec-list-comma-2points",
883  "component-attr-spec-list", "component-attr-spec", "$@15",
884  "component-decl-list", "component-decl", "opt-component-array-spec",
885  "component-array-spec", "opt-component-initialization",
886  "component-initialization", "initial-data-target", "derived-type-spec",
887  "type-param-spec-list", "type-param-spec", "structure-constructor",
888  "component-spec-list", "component-spec", "component-data-source",
889  "array-constructor", "ac-spec", "lbracket", "rbracket", "ac-value-list",
890  "ac-value", "ac-implied-do", "ac-implied-do-control", "ac-do-variable",
891  "type-declaration-stmt", "$@16", "$@17", "opt-attr-spec-construct",
892  "opt-attr-spec-comma-list", "attr-spec-comma-list", "attr-spec", "$@18",
893  "$@19", "entity-decl-list", "entity-decl", "object-name",
894  "object-name-noident", "opt-initialization", "initialization",
895  "null-init", "access-spec", "opt-array-spec-par", "$@20", "array-spec",
896  "explicit-shape-spec-list", "explicit-shape-spec", "lower-bound",
897  "upper-bound", "assumed-shape-spec-list", "assumed-shape-spec",
898  "deferred-shape-spec-list", "deferred-shape-spec", "assumed-size-spec",
899  "opt-explicit-shape-spec-list-comma", "opt-lower-bound-2points",
900  "implied-shape-spec-list", "implied-shape-spec", "intent-spec",
901  "access-stmt", "$@21", "opt-access-id-list", "access-id-list",
902  "access-id", "data-stmt", "$@22", "opt-data-stmt-set-nlist",
903  "data-stmt-set-nlist", "data-stmt-set", "data-stmt-object-list",
904  "data-stmt-value-list", "data-stmt-object", "data-implied-do",
905  "data-i-do-object-list", "data-i-do-object", "data-i-do-variable",
906  "data-stmt-value", "opt-data-stmt-star", "data-stmt-constant",
907  "scalar-constant-subobject", "constant-subobject", "dimension-stmt",
908  "$@23", "$@24", "array-name-spec-list", "$@25", "$@26", "parameter-stmt",
909  "$@27", "$@28", "named-constant-def-list", "named-constant-def",
910  "save-stmt", "$@29", "$@30", "opt-TOK_FOURDOTS", "opt-saved-entity-list",
911  "saved-entity-list", "saved-entity", "proc-pointer-name",
912  "get_my_position", "implicit-stmt", "$@31", "implicit-spec-list",
913  "implicit-spec", "letter-spec-list", "letter-spec", "namelist-stmt",
914  "opt-namelist-other", "namelist-group-object-list",
915  "namelist-group-object", "equivalence-stmt", "equivalence-set-list",
916  "equivalence-set", "$@32", "equivalence-object-list",
917  "equivalence-object", "common-stmt", "$@33", "$@34",
918  "opt-common-block-name", "common-block-name", "opt-comma",
919  "opt-common-block-list", "$@35", "common-block-object-list",
920  "common-block-object", "$@36", "designator", "scalar-variable",
921  "variable", "variable-name", "scalar-logical-variable",
922  "logical-variable", "char-variable", "scalar-default-char-variable",
923  "default-char-variable", "scalar-int-variable", "int-variable",
924  "substring", "substring-range", "data-ref", "opt-part-ref", "part-ref",
925  "$@37", "scalar-structure-component", "structure-component",
926  "array-element", "array-section", "section-subscript-list",
927  "section-subscript", "section_subscript_ambiguous", "vector-subscript",
928  "allocate-stmt", "$@38", "$@39", "opt-alloc-opt-list-comma",
929  "alloc-opt-list", "alloc-opt", "stat-variable", "errmsg-variable",
930  "allocation-list", "allocation", "allocate-object",
931  "opt-allocate-shape-spec-list-par", "allocate-shape-spec-list",
932  "allocate-shape-spec", "opt-lower-bound-expr", "lower-bound-expr",
933  "upper-bound-expr", "deallocate-stmt", "$@40", "$@41",
934  "allocate-object-list", "opt-dealloc-opt-list-comma", "dealloc-opt-list",
935  "dealloc-opt", "primary", "level-1-expr", "mult-operand", "add-operand",
936  "level-2-expr", "power-op", "mult-op", "add-op", "level-3-expr",
937  "concat-op", "level-4-expr", "rel-op", "and-operand", "or-operand",
938  "equiv-operand", "level-5-expr", "not-op", "and-op", "or-op", "equiv-op",
939  "expr", "scalar-default-char-expr", "default-char-expr", "int-expr",
940  "opt-scalar-int-expr", "scalar-int-expr", "specification-expr",
941  "constant-expr", "scalar-default-char-constant-expr",
942  "default-char-constant-expr", "scalar-int-constant-expr",
943  "int-constant-expr", "assignment-stmt", "pointer-assignment-stmt",
944  "opt-bounds-spec-list-par", "bounds-spec-list", "bounds-remapping-list",
945  "bounds-spec", "bounds-remapping", "data-target",
946  "procedure-component-name", "proc-component-ref", "proc-target",
947  "where-stmt", "where-construct", "opt-where-body-construct",
948  "opt-masked-elsewhere-construct", "opt-elsewhere-construct",
949  "where-construct-stmt", "where-body-construct", "where-assignment-stmt",
950  "mask-expr", "masked-elsewhere-stmt", "elsewhere-stmt", "end-where-stmt",
951  "forall-header", "block", "opt-execution-part-construct", "do-construct",
952  "block-do-construct", "label-do-stmt", "label-do-stmt-djview",
953  "nonlabel-do-stmt", "loop-control", "do-variable", "do-block", "end-do",
954  "end-do-stmt", "nonblock-do-construct", "action-term-do-construct",
955  "do-term-action-stmt", "do-term-action-stmt-special",
956  "outer-shared-do-construct", "label-do-stmt-djview-do-block-list",
957  "inner-shared-do-construct", "do-term-shared-stmt",
958  "opt-do-construct-name", "cycle-stmt", "if-construct",
959  "opt-else-if-stmt-block", "else-if-stmt-block", "opt-else-stmt-block",
960  "else-stmt-block", "if-then-stmt", "else-if-stmt", "else-stmt",
961  "end-if-stmt", "if-stmt", "case-construct", "opt_case-stmt-block",
962  "case-stmt-block", "select-case-stmt", "$@42", "$@43", "case-stmt",
963  "end-select-stmt", "$@44", "$@45", "case-selector", "$@46",
964  "case-value-range-list", "case-value-range", "case-value", "exit-stmt",
965  "goto-stmt", "arithmetic-if-stmt", "continue-stmt", "stop-stmt",
966  "stop-code", "io-unit", "file-unit-number", "internal-file-variable",
967  "open-stmt", "$@47", "$@48", "connect-spec-list", "connect-spec",
968  "file-name-expr", "iomsg-variable", "close-stmt", "$@49",
969  "close-spec-list", "close-spec", "read-stmt", "$@50", "$@51",
970  "write-stmt", "$@52", "$@53", "print-stmt", "io-control-spec-list",
971  "namelist-group-name", "io-control-spec", "format", "input-item-list",
972  "input-item", "output-item-list", "output-item", "io-implied-do",
973  "io-implied-do-object-list", "io-implied-do-object",
974  "io-implied-do-control", "rewind-stmt", "position-spec-list",
975  "position-spec", "flush-stmt", "flush-spec-list", "flush-spec",
976  "inquire-stmt", "$@54", "$@55", "set_in_inquire", "inquire-spec-list",
977  "inquire-spec", "format-stmt", "module", "$@56",
978  "opt-module-subprogram-part", "module-stmt", "$@57", "end-module-stmt",
979  "$@58", "opt-tok-module", "opt-ident", "module-subprogram-part",
980  "opt-module-subprogram-list", "module-subprogram-list",
981  "module-subprogram", "use-stmt-list", "save_olduse", "use-stmt", "$@59",
982  "$@60", "opt-module-nature-2points", "opt-only-list", "main-program",
983  "opt-specification-part", "program-stmt", "$@61", "end-program-stmt",
984  "$@62", "$@63", "opt-tok-program", "opt-tok-name", "module-nature",
985  "opt-rename-list", "rename-list", "rename", "only-list", "only",
986  "only-use-name", "generic-spec", "external-stmt", "external-name-list",
987  "external-name", "intrinsic-stmt", "intrinsic-procedure-name-list",
988  "intrinsic-procedure-name", "function-reference", "$@64", "call-stmt",
989  "$@65", "$@66", "$@67", "$@68", "before-call-stmt", "$@69",
990  "procedure-designator", "actual-arg-spec-list", "actual-arg-spec",
991  "actual-arg", "opt-prefix", "prefix", "prefix-spec",
992  "function-subprogram", "function-stmt", "$@70", "$@71", "function-name",
993  "dummy-arg-name", "opt-suffix", "suffix", "end-function-stmt", "$@72",
994  "opt-tok-function", "subroutine-subprogram", "subroutine-stmt", "$@73",
995  "subroutine-name", "end-subroutine-stmt", "close_subroutine",
996  "opt-tok-subroutine", "opt-dummy-arg-list-par", "$@74",
997  "opt-dummy-arg-list", "dummy-arg-list", "dummy-arg", "return-stmt",
998  "contains-stmt", "$@75", "opt_name", "after_rewind",
999  "declare_after_percent", "pointer_name_list", YY_NULLPTR
1000};
1001#endif
1002
1003# ifdef YYPRINT
1004/* YYTOKNUM[NUM] -- (External) token number corresponding to the
1005   (internal) symbol number NUM (which must be that of a token).  */
1006static const yytype_uint16 yytoknum[] =
1007{
1008       0,   256,   257,    44,    58,    61,   258,   259,   260,   261,
1009     262,   263,   264,   265,   266,   267,   268,   269,   270,    43,
1010      45,    42,   271,   272,   273,   274,   275,   276,   277,   278,
1011     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
1012     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
1013     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
1014     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
1015     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
1016     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
1017     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
1018     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
1019     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
1020     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
1021     379,   380,   381,   382,   383,   384,   385,   386,   387,   388,
1022     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
1023     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
1024     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
1025     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
1026     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1027     439,   440,   441,   442,    40,    41,    60,    62,    10,    47,
1028      37,    95,    91,    93
1029};
1030# endif
1031
1032#define YYPACT_NINF -1428
1033
1034#define yypact_value_is_default(Yystate) \
1035  (!!((Yystate) == (-1428)))
1036
1037#define YYTABLE_NINF -1024
1038
1039#define yytable_value_is_error(Yytable_value) \
1040  0
1041
1042  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1043     STATE-NUM.  */
1044static const yytype_int16 yypact[] =
1045{
1046   -1428,  1573, -1428, -1428, -1428,   -56,   -39, -1428, -1428, -1428,
1047     -12,   631, -1428, -1428,   119,   199, -1428, -1428, -1428, -1428,
1048     751, -1428,    88, -1428,    88,   540,   660, -1428, -1428,    88,
1049   -1428,    88, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1050   -1428, -1428, -1428,   140,   152,   183, -1428, -1428, -1428,   877,
1051   -1428, -1428,  4069,   157,    88, -1428,   456,  4369,   233,   315,
1052   -1428, -1428,  4369,  4369, -1428,   128,   128,    78,    78,    78,
1053      78,    82,    78,  1610, -1428, -1428, -1428, -1428, -1428, -1428,
1054     128,   195, -1428, -1428,   107,   236,   362,   400, -1428, -1428,
1055     107,   111, -1428, -1428,   869, -1428,   600, -1428,   423, -1428,
1056    4069, -1428, -1428,   618,   899,   428, -1428, -1428, -1428,   495,
1057     320, -1428, -1428, -1428,   545, -1428, -1428,   573,   577, -1428,
1058   -1428, -1428, -1428,   240,   683, -1428,   534, -1428, -1428, -1428,
1059   -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1060   -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1061     628, -1428, -1428, -1428,   621,   561,   578,  3546,   405,   248,
1062     332,   602,   604, -1428,  3799,  3846,   606,   623,  3595,   760,
1063     706, -1428,  4256, -1428,   926, -1428, -1428, -1428, -1428, -1428,
1064   -1428, -1428, -1428, -1428, -1428, -1428, -1428,   780, -1428, -1428,
1065   -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1066   -1428, -1428,   636, -1428, -1428,   638, -1428,   647,   706,   706,
1067     119,   119,   651,  3661, -1428, -1428, -1428, -1428, -1428,   367,
1068    1394, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1069   -1428,  3870, -1428, -1428, -1428,   645,   654,  3903, -1428,    81,
1070     859, -1428, -1428, -1428,   700, -1428, -1428,   428, -1428,    91,
1071   -1428, -1428,  3870, -1428, -1428,   857, -1428,   613,   234,  1187,
1072     570, -1428, -1428,   878,   882,   724,   914, -1428, -1428, -1428,
1073   -1428,   703,   707,   119, -1428,   109, -1428, -1428,   119,   349,
1074     128,   725, -1428,   118, -1428, -1428,   726,   729,   243,   119,
1075     128,   644,   732,   364,   485,   121,   596, -1428, -1428, -1428,
1076   -1428,   462, -1428, -1428,  3595,  3628,  3903,   128,   912,   927,
1077    3903,   617,   115, -1428,   746,   362,   362,   369,  3940,  3903,
1078     795,  3903,  3903,   743, -1428,  4171,   424,   775,   840,   221,
1079   -1428, -1428, -1428,   664, -1428, -1428, -1428,  3903,  3903,   238,
1080     423, -1428, -1428,   128,   128,   119,   128, -1428, -1428, -1428,
1081   -1428, -1428,   754,  3476, -1428,   128,  3516,   128, -1428,   763,
1082     119, -1428, -1428, -1428, -1428, -1428, -1428, -1428,   128,   439,
1083     128, -1428, -1428, -1428,  4284, -1428, -1428, -1428,  3903,   764,
1084    3174,  3174,  3628, -1428,   643,    90,   224, -1428, -1428,   762,
1085     128, -1428, -1428, -1428, -1428, -1428, -1428,   954,   767,  1610,
1086   -1428, -1428,   960,   961,   102,  3870,   817,   972, -1428, -1428,
1087   -1428,   610,   610,   450,   801, -1428,   804,   806,  1187,   787,
1088    1610,  1610, -1428,   788, -1428,  1187, -1428, -1428,  1187, -1428,
1089   -1428,  1187,   808,   613, -1428, -1428, -1428, -1428, -1428, -1428,
1090   -1428, -1428, -1428, -1428, -1428, -1428, -1428,   914,   914, -1428,
1091    3903, -1428,  3903, -1428, -1428,  3903, -1428,   793,   798,   937,
1092     195,   119,   799, -1428, -1428,   989,   119,   118,   725,   119,
1093   -1428,   122, -1428,   981, -1428,   815,   816, -1428,   119,  1007,
1094   -1428, -1428,   128, -1428,   818, -1428,  1014, -1428, -1428, -1428,
1095   -1428, -1428, -1428, -1428,   123,   869,   869,   592,  3903,   107,
1096     107,  1107,   119,   128, -1428,   108, -1428, -1428, -1428,   124,
1097     824,   119,   909,  3903,   831,  1026, -1428,   225,   858,   665,
1098   -1428, -1428,  2259,   841,   881,  1039,   128, -1428,  1042, -1428,
1099   -1428,   854,   222, -1428,   864,   125, -1428, -1428,    99,   848,
1100   -1428, -1428, -1428, -1428,   128,  1055, -1428,   103,   106, -1428,
1101   -1428,   937,   128,   867,   763, -1428, -1428,   107,  1064,   955,
1102    1029, -1428, -1428, -1428, -1428,   -32, -1428,   267, -1428,   876,
1103     755, -1428, -1428,   938, -1428,   885,   128,   900, -1428, -1428,
1104   -1428,   891,   893,   119,   119,   119,   763,  3247,  3062,  3903,
1105     248,   937,   937,   787, -1428,   138, -1428,   119,  3903,   248,
1106     937,   937, -1428,   141, -1428,   119,   763, -1428,   148,   119,
1107     898,   567, -1428,   915, -1428,   902, -1428, -1428,  1090,  3706,
1108    3628,   913,   248,   248,   248,   937, -1428, -1428, -1428, -1428,
1109   -1428, -1428,   159, -1428, -1428, -1428,   160,   131,   312,   937,
1110   -1428, -1428, -1428,  1062, -1428, -1428, -1428, -1428,   444,   917,
1111   -1428, -1428, -1428, -1428,  3903,   119,   208,   128,   208,   930,
1112   -1428,   931, -1428,  3903, -1428,   922,  1610,  3903,  3903, -1428,
1113    1116,   787, -1428,  3870, -1428, -1428, -1428, -1428,   228,   957,
1114   -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,   613,   234,
1115    1112, -1428,   878,   882, -1428,  3903,  1131,   162, -1428,   438,
1116    1136, -1428, -1428,   946, -1428, -1428,  3903, -1428,  3903,   119,
1117   -1428,   726,   119,   763,  1125,   951,  1147, -1428,   644,   119,
1118     963,   485,   128,   869, -1428, -1428,   959, -1428,  1135, -1428,
1119   -1428,    86, -1428,   966, -1428, -1428,   634, -1428,  1135, -1428,
1120    1140,   327, -1428,   973,   119,   128,   119,   128,  1634,   248,
1121    3903,    95,   174, -1428, -1428,   170, -1428,   119,  3986,   119,
1122    1065,  3903,   128, -1428,  3903,   792, -1428,   763,   474, -1428,
1123   -1428, -1428, -1428, -1428,   976, -1428,   980, -1428, -1428, -1428,
1124   -1428, -1428, -1428, -1428, -1428,  1172, -1428,   984, -1428,  2259,
1125     119,   746,   985,  1177, -1428, -1428, -1428,  1183, -1428, -1428,
1126   -1428,   128,   995,   495,   119,   999,   119,  3903,  3903, -1428,
1127    3903,  1045, -1428,   128,   119, -1428, -1428,   119,   128,  1023,
1128     482,  1000,  3997,  1001,  1206,   937, -1428, -1428, -1428, -1428,
1129   -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1130   -1428, -1428, -1428,   775, -1428, -1428,  1063,  3903,   513, -1428,
1131     591, -1428, -1428, -1428, -1428,  1050,  1203,   119,  1093,   472,
1132   -1428, -1428, -1428, -1428,  1207, -1428,  1015,  3903,  3903,  3903,
1133    3903,  3903,  1208,  3903,   248,  3903,   937, -1428,   175, -1428,
1134    3903,  1215,   937,   937,   937,   937,  3903,   937,   248,   937,
1135     937, -1428,   176, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1136   -1428, -1428, -1428,  3476,   128, -1428, -1428, -1428, -1428,  3516,
1137     128, -1428,  1209,   763, -1428,  3903, -1428,   852, -1428, -1428,
1138   -1428,  1193,  4397,  2649,  3903, -1428, -1428, -1428, -1428, -1428,
1139   -1428, -1428, -1428, -1428,  3174,  3986,   979,   979,   119, -1428,
1140   -1428,  3903,   827, -1428,  1736,   128,   119, -1428,   128,   128,
1141      81,  1219, -1428, -1428,   187, -1428, -1428, -1428, -1428, -1428,
1142    1032,  1226, -1428,   119,  1035,  1204,  1210,  1041, -1428,   191,
1143     197,  1046,  3870, -1428, -1428, -1428, -1428, -1428,  1048,   198,
1144    3903,   798, -1428,   937,  3903,  1052,  1234, -1428, -1428,  1248,
1145   -1428, -1428, -1428, -1428,   816,   701, -1428, -1428,   200, -1428,
1146     205, -1428,  1247, -1428,   119, -1428,  1610,   996, -1428, -1428,
1147    3717,   592, -1428, -1428, -1428, -1428,  1149,   119,   119,  3903,
1148    1252, -1428, -1428,  3754,  1107, -1428,  1868,  3903, -1428,  3986,
1149   -1428,   132, -1428, -1428,   128,  1071,   119, -1428, -1428, -1428,
1150    1066, -1428,   260, -1428, -1428,  1075,   133, -1428,   128,   119,
1151   -1428, -1428,   841,   128, -1428,  1237, -1428, -1428, -1428,  1067,
1152     128,   128,   222,   119,  1250,   202, -1428, -1428, -1428, -1428,
1153   -1428, -1428,  1267, -1428,  1268, -1428,   937,   119,   119,   107,
1154     128,   119,  3903,  2979,  2873,  3336, -1428,   763,  3903,  4482,
1155   -1428,   775,  1080,   128,   119,   515, -1428, -1428, -1428, -1428,
1156      77, -1428, -1428,  1085,   119, -1428,   128,   231,  1084,  3903,
1157   -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,  3903, -1428,
1158   -1428, -1428, -1428,  3247, -1428, -1428,   937,  1087, -1428, -1428,
1159   -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,  3401, -1428,
1160   -1428,   119, -1428,   119,   386,  1089, -1428,  1091, -1428, -1428,
1161    1088, -1428,  1123,   173,  1282,  3903,   248,   937, -1428,   206,
1162   -1428, -1428, -1428,   128,  1285,  3986, -1428,   128,  1287, -1428,
1163   -1428,   134,  1099,   584,   595, -1428, -1428,   643,  3903, -1428,
1164     210, -1428,  1293,   119,   128,   119,   119,  3903,  3903, -1428,
1165   -1428,   208,  1272, -1428,  1085, -1428,  1085, -1428,  1211, -1428,
1166    1231, -1428, -1428,   205,  1113,  1305, -1428, -1428, -1428, -1428,
1167   -1428, -1428,   128,   211, -1428,  1118, -1428,  3903,   763,   151,
1168    1930, -1428,   128,   243,   963,   128,  3903,   228,   469, -1428,
1169   -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1170   -1428,  1310,   214, -1428, -1428,  1120, -1428, -1428, -1428, -1428,
1171     128, -1428,  3903,   248, -1428, -1428,  3903,  1314, -1428,   787,
1172   -1428,  1318, -1428,  3986,   119,   119,  1218, -1428,   792, -1428,
1173    2006,  1237,   763,   119,   119,  1930,   603, -1428,   119,  1930,
1174     367,   112,  1930,  1129,   119,   119, -1428,  1133,   995, -1428,
1175   -1428,  3903,   128,   119,   128,   119,  1141,  3903, -1428, -1428,
1176   -1428, -1428, -1428,   353,   410,   768,   785,   836,   508,   547,
1177    1145,  3903,  1126, -1428,   937,  1134,   451,  1138,   949,  2894,
1178     216,  1150, -1428,  1227,   119,   128,   119,  1331,  1195,  1341,
1179   -1428,   128, -1428, -1428,   119,   937,  1343,  1346, -1428, -1428,
1180   -1428,   217, -1428,  3903,  1348, -1428, -1428,   128, -1428,  3986,
1181   -1428,   128,   937,  1351, -1428,  1347, -1428, -1428, -1428, -1428,
1182   -1428,  3903,   248,  3903, -1428, -1428, -1428,  2649,   128,   119,
1183     128,   119,   979,   128,   119,   597,   128,   119,   128,   119,
1184     643, -1428,  1736, -1428,  3903,   119,   423, -1428, -1428,   128,
1185   -1428,  1163, -1428, -1428, -1428, -1428,  1353,  1354, -1428,  3903,
1186     119,   937, -1428, -1428,  1357, -1428,   119,  1342, -1428,  1170,
1187    1363, -1428,  1366, -1428,  1364, -1428,  1368, -1428, -1428,  3903,
1188    1356,  1371, -1428, -1428,  1374,   119, -1428, -1428,   119,  1380,
1189   -1428, -1428,  3940,  3940, -1428,   119, -1428, -1428, -1428,  3903,
1190    3986, -1428,   128,  2006, -1428, -1428,  1190,  1383,  1387,  1368,
1191     220, -1428,  1192, -1428, -1428, -1428,  1198,  1199, -1428,  3903,
1192     530, -1428, -1428,  1200, -1428, -1428, -1428,   119,   119,   727,
1193   -1428, -1428, -1428, -1428, -1428, -1428,   946, -1428,   230, -1428,
1194   -1428,  1202, -1428, -1428,  2456,  3903,  3903,  3903,  3903,  3903,
1195    3903,  3903,  3903,  3903,  3903,  3903,  3903,  3903,  3903,  2363,
1196    3903,  2578,  2615, -1428, -1428,  4482,   607,   119,  1212,  1217,
1197    1220,   119,   128, -1428, -1428,   937,   307,   128,  3903, -1428,
1198   -1428, -1428,   119,  1285,   119, -1428,   937,   336,   128,   128,
1199     128,  1205,  1396, -1428, -1428,   119,   119, -1428,   119,   128,
1200     119,   119,   119, -1428, -1428,   119,  1224,   128, -1428,   128,
1201    3903,  1610,  1407, -1428,  3903,  1225, -1428,  3903,  3788,  2140,
1202    1414,  1422,  1390, -1428, -1428,  3903,   816,  3903, -1428, -1428,
1203   -1428,  1423, -1428,  1236,   119,  1238, -1428,  3903,  3903,  3903,
1204     530, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1205   -1428,  1930,   145, -1428, -1428, -1428,  3903, -1428, -1428, -1428,
1206   -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1207   -1428, -1428, -1428,  3903,  3903, -1428, -1428, -1428,  3903, -1428,
1208    3903, -1428,   128,   119,  1195, -1428, -1428,  1429, -1428, -1428,
1209   -1428, -1428, -1428,   119, -1428, -1428, -1428,   119, -1428,   128,
1210   -1428, -1428,   119,   119,   119,  4482,   248,   119,  1239,   119,
1211     128,   119,  1240,  1242,  3903, -1428,  1416, -1428, -1428, -1428,
1212   -1428,  1436, -1428, -1428, -1428, -1428, -1428,  1147,   218,  3903,
1213   -1428, -1428, -1428, -1428, -1428,  1246,  1126,  1254,  2220,  1249,
1214    1251,  1255, -1428, -1428, -1428, -1428, -1428,   119,   128,  1212,
1215     119,   128, -1428,   119, -1428, -1428,  1439,   763, -1428,  3903,
1216   -1428,  1448, -1428, -1428,  2298,  1449, -1428, -1428,  1450, -1428,
1217     937, -1428,   119, -1428,   119,  3903, -1428,  1258,  3903,  3903,
1218    1451,  2220,  3903, -1428, -1428, -1428,  1454, -1428,  3903, -1428,
1219    1455,  3903, -1428,  3903, -1428, -1428
1220};
1221
1222  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1223     Performed when YYTABLE does not specify something else to do.  Zero
1224     means the default is an error.  */
1225static const yytype_uint16 yydefact[] =
1226{
1227       2,     0,     1,     6,     8,     0,     0,    17,     9,  1028,
1228    1027,     0,    18,     3,     4,     5,    12,    15,    20,  1026,
1229       0,    21,   106,    19,   106,     0,   202,  1024,    22,   106,
1230      23,   106,    24,    18,   969,   937,   208,   206,   216,   210,
1231     214,   212,    88,   306,     0,     0,     7,    11,    18,   202,
1232     203,   966,   108,     0,   107,   952,   192,   192,     0,     0,
1233    1027,  1025,   192,   192,    16,     0,     0,   218,   218,   218,
1234     218,   242,   218,     0,   204,   205,    10,    13,    14,   457,
1235       0,     0,   368,   369,    25,     0,   466,     0,   503,   194,
1236      25,   264,   255,   257,     0,   256,    88,   195,   541,   105,
1237     109,   110,   116,     0,   193,     0,   112,   260,   117,   202,
1238     404,   143,   145,   146,     0,   113,   151,     0,     0,   115,
1239     150,   147,   144,   525,     0,   523,   534,   539,   522,   520,
1240     521,   118,   119,   120,   711,   709,   709,   712,   738,   739,
1241     121,   709,   122,   124,   114,   148,   149,   123,   954,   953,
1242       0,   193,   933,   936,   202,     0,     0,   103,     0,     0,
1243       0,     0,     0,   918,     0,     0,     0,     0,     0,    88,
1244     134,   126,   192,   152,     0,   157,   163,   158,   173,   179,
1245     156,   689,   153,   162,   155,   170,   154,   788,   165,   164,
1246     181,   161,   178,   172,   160,   175,   180,   174,   177,   166,
1247     171,   159,  1003,   176,  1045,  1050,  1033,     0,   134,   134,
1248     970,   938,     0,     0,   209,   219,   207,   217,   211,     0,
1249       0,   215,   243,   244,   213,   201,   650,   623,   624,   200,
1250    1013,     0,   258,   259,  1014,   231,   225,     0,   324,   541,
1251       0,   606,   310,   618,   186,   187,   189,   190,   188,     0,
1252     308,   607,     0,   605,   610,   611,   613,   615,   625,     0,
1253     628,   642,   644,   646,   648,   655,     0,   658,   661,   199,
1254     608,     0,     0,   932,   496,     0,   494,    26,   725,     0,
1255       0,     0,   995,     0,   993,   467,     0,     0,   506,   717,
1256       0,     0,     0,     0,     0,   510,     0,   417,   422,   525,
1257     421,     0,   542,   111,     0,     0,     0,     0,    88,     0,
1258     659,   202,   337,   402,     0,   466,   466,   202,     0,     0,
1259       0,     0,   659,   538,   733,   192,   196,   196,   769,   959,
1260    1061,   476,   945,   202,   948,   950,   951,     0,     0,    88,
1261     541,   167,   104,     0,     0,   812,     0,  1064,  1063,   169,
1262     569,   826,     0,     0,   824,     0,     0,     0,   594,     0,
1263     817,   657,   665,   667,   819,   664,   820,   666,     0,     0,
1264       0,   971,   135,   127,   192,   130,   132,   133,     0,     0,
1265       0,     0,     0,  1010,   691,     0,     0,   789,   709,  1007,
1266       0,  1051,  1043,  1030,   476,   476,   222,     0,     0,     0,
1267     254,   251,     0,     0,     0,     0,     0,   323,   326,   329,
1268     328,     0,     0,   541,   618,   235,   187,     0,     0,     0,
1269       0,     0,   307,     0,   620,     0,   621,   622,     0,   619,
1270     223,     0,   186,   616,   632,   634,   633,   635,   630,   631,
1271     627,   636,   637,   639,   641,   638,   640,     0,     0,   651,
1272       0,   652,     0,   653,   654,     0,   643,  1001,     0,     0,
1273       0,   493,     0,   707,   732,     0,   727,     0,     0,   991,
1274     999,     0,   997,     0,   508,     0,     0,   507,   719,   267,
1275     268,   270,     0,   265,     0,   429,     0,   425,   545,   428,
1276     544,   427,   511,   410,   510,     0,     0,     0,     0,    25,
1277      25,   549,  1059,     0,   881,   225,   880,   657,   879,     0,
1278       0,   816,     0,     0,     0,     0,   660,   282,     0,   202,
1279     278,   280,     0,     0,     0,   340,     0,   408,   405,   406,
1280     409,     0,   468,   478,     0,     0,   480,    88,   605,     0,
1281     524,   684,   685,   686,     0,     0,   592,     0,     0,   675,
1282     677,     0,     0,     0,     0,   710,   198,    25,     0,     0,
1283     192,   709,   714,   734,   740,     0,   760,   192,   715,     0,
1284     773,   770,   709,     0,   960,     0,     0,     0,   934,   949,
1285     700,     0,     0,   767,   813,   814,     0,     0,     0,     0,
1286       0,     0,     0,   658,   909,     0,   907,   905,     0,     0,
1287       0,     0,   900,     0,   898,   896,     0,  1071,     0,   818,
1288       0,   202,   964,     0,   131,     0,   844,   822,     0,     0,
1289       0,     0,     0,     0,     0,     0,    88,   529,   825,   868,
1290     821,   823,     0,   871,   865,   870,     0,     0,     0,     0,
1291     699,   697,   698,   693,   690,   696,   804,   802,     0,   798,
1292     790,   787,   791,  1005,     0,  1004,  1053,     0,  1053,     0,
1293    1029,     0,  1042,     0,   220,     0,     0,     0,     0,   249,
1294       0,   328,   321,     0,   228,   227,   232,   226,     0,   187,
1295     609,   311,   309,   325,   322,   186,   612,   614,   617,   626,
1296     629,   645,   647,   649,  1000,     0,     0,     0,   460,   526,
1297       0,   500,   502,   534,   501,   495,     0,   731,     0,   992,
1298     994,     0,   996,     0,     0,   517,   512,   515,     0,   262,
1299       0,     0,     0,     0,   414,   418,   541,   434,   223,   435,
1300     229,   439,   437,     0,   438,   436,     0,   419,   439,   448,
1301     305,     0,   367,     0,   724,     0,   716,     0,   553,     0,
1302       0,   541,     0,   550,   558,   567,   568,  1060,     0,   863,
1303       0,     0,     0,   536,   659,     0,   283,     0,     0,   261,
1304     279,   353,   344,   345,     0,   348,     0,   351,   352,   354,
1305     355,   356,   341,   343,   361,   335,   357,   370,   338,     0,
1306     403,     0,     0,   451,   360,   472,   464,   469,   470,   473,
1307     474,     0,     0,   202,   477,     0,   672,   679,     0,   674,
1308       0,     0,   681,     0,   668,   535,   540,   721,     0,     0,
1309       0,     0,     0,     0,     0,   193,   742,   746,   743,   757,
1310     741,   751,   748,   735,   753,   745,   755,   758,   754,   756,
1311     747,   752,   744,   761,   709,   759,     0,     0,     0,   771,
1312       0,   774,   709,   772,   978,     0,   979,  1062,   941,     0,
1313     794,   583,   545,   584,   572,   580,   585,     0,     0,     0,
1314       0,     0,     0,     0,     0,     0,     0,   831,     0,   829,
1315       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1316       0,   921,     0,   919,   910,   913,   533,   911,   532,   531,
1317     843,   530,   912,     0,     0,   901,   904,   903,   902,     0,
1318       0,   597,   599,     0,   168,     0,   136,   202,   139,   141,
1319     142,   974,   192,     0,     0,   822,   869,   873,   867,   872,
1320     874,   875,   876,   877,     0,   859,   853,     0,   857,  1012,
1321    1011,     0,     0,   689,     0,     0,   796,   800,     0,     0,
1322     541,     0,  1020,  1019,     0,  1015,  1017,  1058,  1034,  1057,
1323       0,  1054,  1055,  1044,     0,  1040,  1048,     0,   253,     0,
1324       0,     0,     0,   327,   191,   239,   237,   238,     0,     0,
1325       0,     0,   458,     0,   659,     0,     0,   998,   526,   488,
1326     490,   492,   509,   518,     0,   504,   269,   273,     0,   271,
1327     541,   426,     0,   430,   411,   415,   542,     0,   432,   433,
1328       0,     0,   416,   431,   224,   230,     0,   726,   718,     0,
1329     554,   561,   557,     0,     0,   543,   562,     0,   552,     0,
1330     888,     0,   886,   889,     0,     0,   669,   537,   288,   289,
1331       0,   292,     0,   285,   287,   296,     0,   293,     0,   274,
1332     346,   349,     0,     0,   371,   240,   342,   407,   453,     0,
1333       0,     0,     0,   479,   485,     0,   483,   481,   682,   683,
1334     680,   593,     0,   676,     0,   678,     0,   670,   723,    25,
1335       0,   736,     0,  1069,  1067,     0,   749,     0,     0,   192,
1336     763,   762,     0,     0,   782,     0,   775,   768,   776,   961,
1337       0,   955,   942,   943,   695,   687,     0,     0,     0,     0,
1338     582,   842,   656,   836,   833,   834,   837,   840,     0,   832,
1339     835,   839,   838,     0,   827,   923,     0,     0,   924,   925,
1340     931,   922,   528,   930,   527,   926,   928,   927,     0,   914,
1341     908,   906,   899,   897,     0,     0,  1072,     0,   140,   975,
1342     976,   786,     0,   193,     0,     0,     0,     0,   848,     0,
1343     846,   878,   866,     0,   861,     0,   884,     0,   855,   882,
1344     885,     0,     0,     0,     0,   689,   688,   692,     0,   811,
1345       0,   805,   807,   797,     0,   799,  1006,     0,     0,  1008,
1346    1052,     0,  1035,  1041,   943,  1049,   943,   221,     0,   250,
1347       0,   247,   246,   541,     0,     0,   333,   233,  1002,   663,
1348     462,   461,     0,     0,   498,     0,   730,     0,     0,   510,
1349     392,   516,     0,     0,     0,     0,     0,     0,   191,   441,
1350     183,   184,   185,   443,   444,   446,   447,   445,   440,   442,
1351     312,     0,     0,   314,   316,   681,   318,   319,   320,   420,
1352       0,   555,     0,     0,   559,   551,     0,   563,   566,   888,
1353     893,     0,   891,     0,   864,   779,     0,   290,     0,   284,
1354       0,   240,     0,   281,   275,   392,     0,   358,   336,   392,
1355       0,   362,   392,     0,   452,   465,   471,     0,     0,   482,
1356     679,     0,     0,   720,     0,   737,     0,     0,    32,    33,
1357      91,    71,    94,   258,   259,   255,   257,   256,   231,   225,
1358       0,     0,    27,    63,    65,    62,   541,    28,   101,   658,
1359       0,     0,   764,     0,   783,     0,   784,     0,     0,   980,
1360     981,     0,   944,   939,   795,     0,     0,   573,   574,   581,
1361     570,     0,   587,     0,     0,   841,   830,     0,   929,     0,
1362     920,     0,     0,     0,   598,   600,   601,   595,   792,   977,
1363     972,     0,     0,     0,   849,   851,   850,     0,     0,   860,
1364       0,   854,     0,     0,   858,     0,     0,   703,     0,   705,
1365     694,   809,     0,   803,   808,   801,   541,  1018,  1016,     0,
1366    1056,     0,  1031,  1036,  1047,  1047,     0,     0,   330,     0,
1367     459,     0,   497,   535,   728,   491,   487,     0,   386,     0,
1368     373,   378,     0,   381,   374,   384,   375,   388,   376,   394,
1369       0,   377,   396,   662,   383,   505,   513,   272,   263,     0,
1370     236,   234,     0,     0,   313,   777,   556,   560,   564,     0,
1371       0,   887,     0,     0,   286,   390,     0,   298,     0,   299,
1372     300,   294,     0,   400,   401,   399,     0,     0,   241,     0,
1373       0,   359,   363,     0,   455,   486,   484,   671,   722,     0,
1374      31,  1066,  1068,    30,  1070,    66,   534,    67,    72,  1065,
1375      95,    98,    96,   102,     0,     0,     0,     0,     0,     0,
1376       0,     0,     0,     0,     0,     0,     0,     0,     0,    55,
1377       0,     0,     0,    29,   750,   192,     0,   785,   962,     0,
1378       0,   956,     0,   579,   576,     0,     0,     0,     0,   586,
1379     589,   591,   828,   916,   915,   603,     0,     0,     0,     0,
1380       0,     0,     0,   852,   847,   845,   862,   883,   856,     0,
1381     701,   704,   706,   806,   810,  1009,     0,     0,  1038,     0,
1382       0,     0,     0,   499,     0,     0,   519,   393,   387,     0,
1383       0,     0,     0,   382,   398,   394,     0,     0,   317,   315,
1384     565,     0,   892,     0,   778,     0,   297,     0,     0,     0,
1385       0,   295,   301,   347,   350,   372,   364,   366,   365,   305,
1386     454,   392,     0,    64,    64,    64,     0,    54,    60,    39,
1387      49,    51,    50,    52,    45,    40,    47,    46,    38,    48,
1388      34,    35,    36,     0,     0,    53,    56,    37,     0,    42,
1389       0,    41,     0,   780,   989,   957,   988,   963,   984,   987,
1390     986,   983,   982,   940,   578,   577,   575,   571,   588,     0,
1391     604,   602,   596,   793,   973,   192,     0,   702,     0,  1032,
1392       0,  1046,     0,     0,     0,   729,     0,   379,   380,   383,
1393     386,     0,   385,   389,   395,   391,   397,   514,     0,     0,
1394     890,   291,   302,   304,   303,     0,    74,    61,    75,     0,
1395       0,     0,    59,    57,    58,    44,    43,   781,     0,     0,
1396     917,     0,  1037,  1039,   245,   248,   331,     0,   387,     0,
1397     423,     0,   456,    72,    87,    76,    77,    80,    79,    68,
1398       0,    73,   958,   985,   815,     0,   489,     0,     0,     0,
1399      85,     0,    86,    70,   332,   424,   894,    84,     0,    78,
1400      81,     0,    83,     0,   895,    82
1401};
1402
1403  /* YYPGOTO[NTERM-NUM].  */
1404static const yytype_int16 yypgoto[] =
1405{
1406   -1428, -1428, -1428,   921, -1428,  1412,   477, -1428, -1428, -1428,
1407   -1428, -1428, -1428, -1428, -1428, -1428,  -130, -1428, -1428, -1428,
1408   -1428, -1428, -1428, -1428,  -725, -1428,  -258, -1428,   -11, -1428,
1409   -1428, -1428, -1428, -1428, -1428, -1428, -1428,  1369,   823, -1428,
1410   -1428, -1428,   -95,   691, -1428, -1428, -1428,   549, -1428,   -84,
1411    -896,  -636, -1428, -1428,   457,   461,   -45,    63, -1428,   583,
1412    -208,   -65, -1428,  1456, -1428, -1428, -1428, -1428, -1428, -1428,
1413    1130, -1428,  -189,  -186,  1058,  -441,  -187, -1428, -1428, -1428,
1414     203, -1428, -1428, -1428,   204,   -33, -1428, -1428, -1428, -1428,
1415   -1428, -1428, -1428,   753, -1428,   251, -1428, -1428, -1428,   958,
1416   -1428, -1428, -1428,   212, -1428, -1428,   207, -1428,    40, -1428,
1417   -1428,  -967,  1474, -1428,  1068,   479, -1428,    57,    59, -1428,
1418    1243, -1428, -1428,  1094,  -608, -1428, -1428, -1428, -1428, -1428,
1419   -1428, -1428, -1428, -1428,   709, -1428, -1428, -1428,   440, -1428,
1420   -1428, -1428, -1428,  -965,  -266, -1428, -1428, -1184, -1150, -1427,
1421   -1169, -1320, -1428,   -63, -1130,   -60, -1428, -1428,    83, -1428,
1422     -64, -1428, -1428, -1428, -1428, -1428,   712, -1428, -1428, -1428,
1423   -1428,  -427, -1428, -1428,  1009,  -251, -1428,   786, -1428,   497,
1424    -281, -1428,   499, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1425   -1428, -1428, -1428, -1428,   528, -1428, -1428, -1428,   -28, -1428,
1426   -1428,   448, -1428,     8, -1428, -1428, -1428,   708, -1428,   235,
1427   -1428, -1428,  -185,   295, -1428, -1428,  1056, -1428, -1428,  -930,
1428   -1428, -1428, -1428, -1428,  -274,  -466, -1428, -1428,   -48,   531,
1429   -1428,  1345, -1428,  2073,  -449,   637, -1428, -1428,  -826, -1428,
1430    -510, -1428,  -455,  -287,  -291, -1428,   970, -1428, -1428,  -262,
1431    -289, -1428, -1428,   502, -1428, -1428,   969, -1428, -1428, -1428,
1432   -1428,    14,     5,   182, -1428,   429,  -568, -1428, -1428,    17,
1433   -1428,  -245,   194,   978, -1428, -1428, -1428, -1428, -1428,    12,
1434   -1428, -1428,   250,   -78,  1095, -1428, -1428,  -145,  1097, -1428,
1435    1277, -1428,  1096,  1098,  1100, -1428, -1428, -1428, -1428, -1428,
1436    1667,  -791,  -146,  -166,   784,   -37,  -958, -1336, -1428, -1428,
1437    -212, -1428,   -46,   298, -1428, -1428, -1428,   741,   742,  -514,
1438     748, -1428,  1233,  -376,  -371,  -863, -1428, -1428, -1428, -1428,
1439    -828,  -825, -1428, -1428, -1428, -1428,  -107, -1428,   372, -1428,
1440   -1428,   991, -1428,   -81,  -694,  -119,  1230, -1428, -1428, -1428,
1441   -1428, -1428, -1428, -1428,   994, -1428, -1428, -1428,   379, -1428,
1442    -504, -1428, -1428, -1428, -1428, -1428, -1428,  1002, -1428, -1428,
1443    1178, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
1444   -1428,   181, -1093, -1428,  1005, -1428,    -3, -1428, -1428,   947,
1445    -149, -1428,  1011, -1428, -1428, -1428,   449,   687,   974,  1016,
1446   -1428, -1428,   223,  1017, -1428, -1428,  1024, -1428, -1428,   -13,
1447    1213,   964,   655,  -260,   656,   219,  -871,  -959,  -861, -1428,
1448     155, -1428,  1038, -1428,   690,  1047, -1428,   689,  1049, -1428,
1449   -1428, -1428, -1428,   467,   394, -1428, -1428, -1428, -1428, -1428,
1450   -1428, -1428, -1428,  -495, -1428, -1428, -1428,  1273, -1428, -1428,
1451    1554, -1428, -1428, -1428, -1428, -1428,   728, -1428, -1428, -1428,
1452   -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1037, -1428,   -76,
1453   -1428, -1412, -1428,  1330,  1148, -1428, -1428,   904,  -476, -1428,
1454    1059, -1428, -1428, -1428, -1428, -1428, -1428,   982,   923,   434,
1455     436, -1428, -1428,  1598,  -134, -1428, -1428, -1428, -1428, -1428,
1456   -1428, -1428, -1428, -1428, -1428,  -131, -1428, -1428, -1428, -1428,
1457     232, -1428, -1428, -1428,   967, -1428,   435,   453, -1428, -1428,
1458   -1428, -1428, -1428,   541
1459};
1460
1461  /* YYDEFGOTO[NTERM-NUM].  */
1462static const yytype_int16 yydefgoto[] =
1463{
1464      -1,     1,    13,    14,    15,    16,    46,    17,    18,    33,
1465     279,  1310,  1311,  1503,  1615,  1597,  1312,  1678,  1313,  1593,
1466    1594,  1314,  1595,  1315,  1679,  1705,  1706,  1707,   340,  1317,
1467    1318,  1482,   341,    51,    52,    99,   100,   101,   170,   171,
1468     373,   374,   375,   371,   372,   916,   917,   918,   102,   172,
1469     173,   240,  1229,  1230,   241,   975,   174,   104,   559,  1089,
1470     242,    19,    20,    44,    68,    67,    70,    72,    71,    69,
1471     214,   215,   243,   244,   676,   415,   245,   246,   417,   978,
1472    1281,   221,   222,   223,   401,   247,   248,   106,   311,   107,
1473     292,   293,   479,   480,   998,   999,   769,   518,   519,   520,
1474     521,   767,  1042,  1043,  1443,  1046,  1047,  1271,  1446,  1581,
1475    1582,   732,   733,   249,   250,   734,  1242,  1243,  1244,   251,
1476     406,   252,   684,   407,   408,   409,  1204,  1205,   108,   109,
1477    1053,   523,   524,   525,   782,  1275,  1276,   785,   786,   795,
1478     787,  1461,  1462,   735,   110,  1055,  1279,  1409,  1410,  1411,
1479    1412,  1413,  1414,  1415,  1416,  1417,  1418,  1419,  1420,  1421,
1480    1422,  1456,   111,   526,   313,   528,   529,   112,   722,   493,
1481     494,   295,   296,   736,   297,   298,   486,   487,  1002,   737,
1482    1008,  1238,   738,   739,   113,   114,  1060,   793,  1282,  1591,
1483     115,   272,  1212,   697,   698,   116,   117,  1061,   286,   796,
1484     797,   798,   799,    53,   119,   801,   535,   536,  1065,  1066,
1485     120,  1219,   989,   990,   121,   275,   276,   459,  1213,   700,
1486     122,   288,  1222,   476,   800,   495,   995,  1566,   716,   717,
1487    1220,   253,   539,   124,   861,  1133,  1134,   628,   900,   901,
1488    1634,   898,   125,   514,   126,   323,   127,   501,   489,   128,
1489     129,   130,   752,   753,  1028,   754,   175,   586,  1517,  1108,
1490    1337,  1338,  1635,  1514,   864,   865,   866,  1110,  1341,  1342,
1491    1343,  1344,  1070,   176,   606,  1528,   912,  1145,  1355,  1356,
1492     254,   255,   256,   257,   258,   425,   428,   259,   260,   447,
1493     261,   448,   262,   263,   264,   265,   266,   450,   452,   455,
1494     267,  1111,  1112,   268,   515,   354,  1424,  1210,   364,   365,
1495     366,   367,   177,   178,   320,   547,   548,   549,   550,  1247,
1496     542,   543,  1248,   179,   180,   384,   643,   942,   181,   644,
1497     645,   581,   943,  1175,  1176,   707,   324,   325,   182,   134,
1498     135,   561,   136,   280,   465,   326,   562,   563,   137,   138,
1499     564,   830,   139,   565,   566,  1090,   343,   183,   184,   570,
1500     571,   850,   851,   141,   572,   852,  1097,   185,   186,   386,
1501     387,   187,  1529,  1106,   388,   651,   948,  1184,   648,   944,
1502    1180,  1181,  1182,   188,   189,   190,   191,   192,   368,   629,
1503     630,   631,   193,   587,  1347,   878,   879,  1113,   902,   194,
1504     923,  1159,  1160,   195,  1167,  1373,   196,  1163,  1370,   197,
1505     632,   633,   634,   635,  1168,  1169,  1031,  1032,  1033,  1261,
1506    1262,  1573,   198,   603,   604,   199,   595,   596,   200,  1351,
1507    1639,   352,   892,   893,   377,    21,   331,   152,    22,    66,
1508     578,  1512,  1103,  1333,   153,   332,   333,   334,    54,   329,
1509      55,  1331,  1688,   575,  1625,    23,    56,    24,    65,   612,
1510     613,  1530,  1150,  1360,   855,  1101,  1329,  1626,  1627,  1628,
1511    1629,   530,   145,   283,   284,   146,   471,   472,   270,   695,
1512     201,   390,   949,   654,  1389,   202,   638,   271,   954,   955,
1513     956,    25,    26,    27,    28,    29,   658,  1547,   207,   959,
1514    1392,  1393,   660,  1650,  1194,    30,    31,   657,   205,   662,
1515    1548,  1196,   392,   656,   960,   961,   962,   203,   154,   576,
1516     349,  1086,  1592,   608
1517};
1518
1519  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1520     positive, shift that token.  If negative, reduce the rule whose
1521     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1522static const yytype_int16 yytable[] =
1523{
1524      43,   398,   363,   488,   702,   491,   131,   103,   641,   290,
1525     701,   150,   404,   642,   477,   355,   357,   327,   951,   105,
1526     335,   742,   362,   336,   105,   481,  1151,  1003,   723,   105,
1527     105,  1105,   490,   400,   328,   553,   269,   813,   911,   143,
1528    1235,    98,  1237,   485,   312,   509,    98,   363,   414,   142,
1529     416,    98,    98,  1214,   131,   103,   729,  1128,  1129,   951,
1530     118,   105,   239,  1330,  1164,   973,   849,   105,   724,   429,
1531    1260,   105,   430,   432,   545,  1170,  1170,  1114,  1115,  1116,
1532    1177,   897,   314,    98,  1121,  1381,  -182,   143,   376,    98,
1533     907,  1452,   418,    98,   421,  1457,  1630,   142,  1463,   212,
1534    1023,  1448,  -525,   219,  1327,   668,   808,  1007,   118,   810,
1535     277,  -195,   460,   431,   291,   933,  1172,  1459,   522,   151,
1536    1447,   468,   637,  1586,   492,   711,   492,   758,   803,    32,
1537    1657,     4,  -195,     4,   937,  1263,  1272,  1372,   557,   105,
1538    1449,   903,     4,    47,   909,  -412,     4,  -413,     4,     4,
1539    1657,   913,     4,    34,   492,     4,     4,     4,     4,   508,
1540     558,    98,   934,   934,   414,   981,   416,   414,   703,   416,
1541     704,     8,  -195,     8,  1026,     4,  1362,  1024,  1123,  1138,
1542      35,   433,     8,   269,   829,  -412,     8,  -413,     8,     8,
1543    1188,   665,     8,  1322,  1198,     8,     8,     8,     8,   335,
1544    1200,  1188,   336,  1224,   594,  1288,  1260,   602,   418,  1367,
1545    -732,   418,   681,  1382,  1401,     8,   414,  1433,   416,   913,
1546    1518,  1699,   346,    49,   573,  1579,   413,   646,   765,   957,
1547     555,   679,   432,  -542,   508,   508,   508,   977,  1658,   685,
1548     474,   376,   685,  1672,   475,   432,   517,   227,   228,  -476,
1549    1561,  -542,   534,   227,   228,  1301,   783,  1296,  1658,  1460,
1550     418,   474,  -766,  1268,   991,   475,  -266,   503,   464,  1328,
1551    -339,   385,   213,   516,  1448,   302,   220,  1630,  1206,   614,
1552     310,   652,   546,    98,   647,   516,   422,   531,   532,   302,
1553     376,  1544,   105,  1447,  -525,   862,  1005,   669,   809,  -525,
1554    1348,   811,  -766,  -195,  1441,    12,  -195,    12,   727,   412,
1555     730,   728,  1380,  1449,    98,   862,    12,    48,   148,  -412,
1556      12,  -413,    12,    12,   863,  1027,    12,  1345,  1335,    12,
1557      12,    12,    12,   904,    73,   756,   910,    42,   640,   577,
1558     433,   105,   413,   914,   863,   413,  1096,    74,   607,    12,
1559     132,   105,   741,   688,   935,   936,   649,   982,    92,    93,
1560     927,    95,   269,    98,   973,    42,  1122,  1580,   506,  1025,
1561    1124,  1139,  1127,    98,  1241,  1130,   574,  1336,    75,  1136,
1562     766,  -197,  1189,   269,   269,  -542,  1199,   318,  1448,   274,
1563    1661,   281,  1201,  1208,   413,  1225,  1561,  1289,   132,   302,
1564     958,  1368,   659,   661,  1335,  1383,  1402,  1675,  1448,  1434,
1565     239,  1504,  1519,  1700,    42,  1269,    89,   235,   745,   747,
1566      42,   236,   287,    42,   133,   204,   105,   236,   282,     4,
1567     488,   140,   491,  1352,   319,    89,  -766,   230,   877,   891,
1568     894,    97,   843,   506,   506,   506,   144,   639,   699,   905,
1569    1009,   967,   481,  1336,   517,   970,   971,  1013,   969,   490,
1570      97,  1563,   105,   105,   731,   853,   462,   463,     4,     8,
1571     485,  1553,   133,  1632,   508,   285,   818,   919,  1523,   140,
1572     920,  1260,  1353,  1352,    98,    98,   726,   610,   234,   976,
1573     751,   730,   430,  1587,   144,  1588,     4,   363,     4,  1044,
1574     429,   363,   363,   430,    42,   147,     4,   206,     8,  1513,
1575      64,  1170,  -466,   533,   828,   824,   235,   285,   105,   483,
1576     236,   794,   846,   783,   347,    76,  1513,   105,   702,  1223,
1577     348,   742,  1353,   741,   701,   742,     8,     4,     8,     4,
1578      98,    42,    11,    98,   431,   -89,     8,   838,   -89,    98,
1579     498,   499,   951,   147,  1015,  1014,   484,   833,   105,   105,
1580     236,   399,  1292,  1072,   833,  1074,  1234,   105,   105,    58,
1581     729,    59,  1533,   498,   499,   699,  1354,     8,    42,     8,
1582      98,    98,   434,   435,   436,   437,   438,   439,   440,    98,
1583      98,    47,   105,   556,   557,   699, -1022,   344, -1022,   496,
1584    1659,  1563,   -90,    12,   301,   -90,   105,  1563,     4,  1151,
1585     500,   227,   228,  1673,    98,  1674,   558,   302,   497,     4,
1586    1659,     4,   310,   825,    89,  -236,  -236,   939,    98,   269,
1587     151,     4,   302,   500,   426,   427,   945,  1011,  -541,  -935,
1588      89,  1105,    12,   950,   302,  1478,  1479,  1366,     8,    97,
1589   -1022,   -61, -1022,   895,     9,   230,  1012,    92,    93,     8,
1590      95,     8,   906,  1006,    42,    97,  1048,   974,    11,  -541,
1591      12,     8,    12,   357,  1080,   686,   315,    42,   687,   294,
1592      12,   155,    60,   506,   950,   930,   931,   932,   321, -1023,
1593     105, -1023,   703, -1022,   704, -1022,   569,  1215,  1095,  1394,
1594     -93,  1395,   988,   -93,   492,  1093,   234,  1325,     9,   411,
1595    1000,    12,    98,    12,   316,    92,    93,   230,    95,  -510,
1596     317,   304,    42,  -510,  1119,  1091,   305,   516,   322,   306,
1597     453,   454,   441,   442,   443,   444,    60,  1131,   534,   -92,
1598      11,   330,  1471,    82,    83,  1098,  1571,     9,   412,  1151,
1599    -137,     9,    57,  1407,   594,   337,  1045,    62,   307,    63,
1600     602,  1453,  1454,  1455,   369,    48,   445,   446,   234,   991,
1601    1071,   546,   338,   546,  1158,    60,  1376,    92,    93,    60,
1602      95,   235,    12,   919,    42,   236,   920,  1378,   508,  1539,
1603      11,  -276,   105,    12,    11,    12,   350,  1241,   351,  1622,
1604     358,   641,   674,   675,  -946,    12,   642,    36,    37,    38,
1605      39,    89,  1021,   640,    98,    40,   862,   359,  1233,   370,
1606     416,    41,   727,    42,   730,   728,   105,   385,    92,    93,
1607     389,    95,   391,    11,  1117,    42,    97,    11,    11,  -277,
1608     414,   393,   416,   105,   396,   863,   411,  -947,    98,   105,
1609     105,   105,   105,   862,   105,   412,   105,   105,   756,  1475,
1610     569,   848,   741,  1483,   420,    98,   741,  1173,  1174,  1680,
1611    1681,    98,    98,    98,    98,  -223,    98,  1152,    98,    98,
1612     424, -1022,   863, -1022,   418,   208,   209,  1161,   449,   105,
1613     451,    82,    83,  1038,  1039,    89,   414,   457,   416,   394,
1614     395,   458,  1146,   105,   105,     5, -1022,     6, -1022,   560,
1615     567,    98,    92,    93,     7,    95,   512,   282,   470,    42,
1616      97,   473,   639,  1040,   482,    98,    98,    36,    37,    38,
1617      39,  1041,   513,   227,   228,    40,   602,  1120,   527,     9,
1618     418,    41,   551,   554,   556,   569,   702,   516,   588,  1426,
1619     105,  1135,   701,   -97,   -97,    42,   -97,   653,   616,   663,
1620     -97,  1203,   664,   -97,     9,   666,   667,    60,   672,   269,
1621    -100,  -100,   699,  -100,   877,   673,  -234,  -100,   731,  -229,
1622    -100,   678,   680,  -224,   742,  1153,   210,   211,   694,   891,
1623     696,   683,    10,   706,   708,   239,  1228,   506,  1294,   239,
1624     726,   273,  1044,   713,   641,   278,  1364,   714,   715,   642,
1625     718,   289,   720,   751,  1429,   227,   228,   721,   413,   760,
1626     761,   -99,   -99,  1476,   -99,    11,   763,  1476,   -99,   304,
1627     764,   -99,   768,   784,   305,  -138,   788,   378,  1431,   230,
1628     730,   430,   789,   105,  1152,   791,   792,   379,   805,   380,
1629      11,   794,   381,   382,    92,    93,   105,    95,   802,   807,
1630     363,    42,   815,   294,   231,    98,   307,   821,   819,   820,
1631     847,   383,   546,   854,  1316,    77,   607,   856,    98,   345,
1632     232,   233,   741,   858,    92,    93,   859,    95,   860,   360,
1633     234,   308,   915,   105,   400,   924,   699,   922,   921,    92,
1634      93,   941,    95,   235,   742,   928,    42,   236,   237,   947,
1635     703,   748,   704,   965,   966,    98,   238,   968,   226,   972,
1636     105,   230,    92,    93,   105,    95,   227,   228,   749,    42,
1637     440,   640,  -230,   699,  1481,    93,   980,    95,   159,   983,
1638     984,    42,    98,  -197,   105,   993,    98,   992,   161,   162,
1639     994,   163,   825,  1006,   164,   997,  1007,   822,   166,   823,
1640    1010,  -449,   232,   233,    92,    93,    98,    95,  1016,  1034,
1641    1050,    42,   234,  1165,  1051,  1052,  1386,   950,  1054,  1058,
1642    1059,    92,    93,  1423,    95,   235,  1062,  1064,    42,   236,
1643    1227,  1068,  1076,  1079,  1082,  1087,   461,    89,   216,   217,
1644     218,   466,   224,   307,   469,  1099,  1100,   988,  1102,  1109,
1645    1107,   478,  1144,  1118,    92,    93,  1430,    95,  1158,  1365,
1646    1126,    42,    97,  1149,  1187,   502,   304,  1190,   511,  1191,
1647    1192,   305,   230,  1423,  1361,  1193,  1197,  1217,  1423,  1195,
1648     639,  1202,  1423,  1207,   379,  1423,   380,  1216,   991,   381,
1649     382,  1218,  1226,  1250,  1071,  1723,  1252,   231,  1280,  1283,
1650    1267,  1045,   750,   307,   583,   584,  1266,   585,   383,  1270,
1651    1287,  1290,  1291,   232,   233,  1323,   597,  1332,   605,  1340,
1652    1359,   105,  1349,   234,  1357,   105,  1358,  1363,  1263,   609,
1653    1372,   611,    92,    93,  1375,    95,   235,  1384,  1391,    42,
1654     236,   237,   105,    98,  1397,  1396,  1071,    98,  1398,   238,
1655    1399,   655,   230,  1403,   305,  1432,  1437,  1088,  1439,   105,
1656    -524,  1440,  1442,  1464,    98,  1465,  1474,   379,  1477,   380,
1657    1480,  1506,   381,   382,   640,  1508,  1469,   231,  1652,   105,
1658    1472,    98,  1509,  1653,  1510,  1505,   307,   105,  1515,  1516,
1659    1527,   383,  1521,   232,   233,  1668,  1526,  1546,  1550,  1551,
1660    1554,    98,  1552,   234,  1555,  1556,  1557,  1559,   105,    98,
1661    1558,  1560,    92,    93,  1565,    95,   235,  1564,  -382,    42,
1662     236,   237,  1423,  1567,   363,  1576,  1577,  1583,   709,   238,
1663     699,  1578,   712,  1584,  1585,  1590,  -255,   123,   225,  1646,
1664    1645,   363,   123,   719,  1624,   226,  1423,   123,   123,  1631,
1665    1654,  1665,  1328,   227,   228,   229,  1648,  1656,  1445,  1476,
1666     744,   746,   239,   640,   757,  1532,  1664,   105,  1669,  1203,
1667     759,  1670,  1689,  1671,  1692,  1694,   105,  1695,  1697,   299,
1668    1698,  1702,  1715,   639,  1709,   123,  1710,   790,  1703,   299,
1669    1711,  1718,  1721,  1725,  1722,  1728,   804,  1731,    98,  1733,
1670    1152,    78,  1676,  1729,  1231,   806,  1148,   402,  1232,   303,
1671     677,   996,   105,   814,  1450,  1427,    50,   770,   817,  1451,
1672    1444,   546,   105,  1575,  1458,    45,  1236,  1717,   403,   682,
1673    1569,  1568,  1277,   105,    98,   423,  1662,   857,  1056,   670,
1674    1663,  1666,  1562,  1057,    98,   725,  1239,  1001,  1249,  1211,
1675    1286,  1067,  1716,  1405,   269,    98,   705,   123,  1667,   230,
1676    1423,  1423,  1423,  1466,   816,  1221,  1255,  1137,  1423,   826,
1677    1636,  1640,   639,   363,  1525,  1638,  1339,  1520,   827,  1641,
1678    1423,  1423,   689,   456,   231,   690,   691,   105,  1037,  1073,
1679     692,   544,  1075,  1069,  1423,   693,   844,   568,   938,   845,
1680     232,   233,   831,  1543,   650,   832,   926,  1125,   825,   946,
1681     234,   834,  1346,     2,     3,   908,   835,   836,   963,    92,
1682      93,  1677,    95,   235,   837,   929,    42,   236,   237,  1162,
1683    1534,  1537,  1140,  1171,   636,  1572,   238,     4,   839,  1142,
1684    1152,     5, -1022,     6, -1022,  1350,   579,   840,   149,   841,
1685       7,   467,   105,  1713,   225,   987,   710,  1696,   979,   842,
1686     940,   226,  1388,  1387,    61,   964,  1390,  1549,  1320,   227,
1687     228,   229,  1701,     0,    98,     0,     0,     8,  1019,     0,
1688       0,     0,     0,  1004,     0,   226,     0,     0,     0,     0,
1689       0,     0,     0,   227,   228,     0,     0,     0,     0,     0,
1690       9,     0,     0,   538,     0,     0,  1017,     0,  1018,     0,
1691     123,     0,     0,     0,     0,     0,     0,   105,  1724,     0,
1692       0,  1726,     0,  1036,     0,     0,   988,     0,    10,  1049,
1693       0,     0,     0,     0,  1734,     0,     0,     0,     0,    98,
1694       0,     0,     0,     0,     0,     0,     0,     0,  1153,  1691,
1695       0,     0,     0,     0,     0,     0,     0,     0,     0,   123,
1696       0,     0,  1063,     0,     0,   538,   538,     0,     0,   299,
1697       0,     0,     0,     0,  1077,   230,     0,     0,     0,  1078,
1698    1178,  1081,     0,     0,     0,     0,    11,   226,     0,  -202,
1699    -202,  -202,  -202,     0,     0,   227,   228,  -202,     0,   230,
1700     231,     0,     0,  -202,     0,     0,     0,     0,     0,  1094,
1701       0,    12,     0,     0,     0,     0,   232,   233,     0,     0,
1702    1104,     0,     0,     0,   231,     0,   234,     0,     0,     0,
1703       0,     0,     0,     0,     0,    92,    93,     0,    95,   235,
1704     232,   233,    42,   236,   237,     0,     0,     0,     0,     0,
1705     234,     0,   238,     0,     0,     0,     0,     0,     0,    92,
1706      93,     0,    95,   235,   342,  1141,    42,   236,   237,     0,
1707       0,  1143,     0,     0,     0,   361,   238,     0,     0,     0,
1708     299,   299,   740,     0,     0,     0,     0,     0,     0,     0,
1709       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1710       0,   230,     0,     0,     0,     0,  1183,     0,     0,  1185,
1711    1186,     0,  1256,     0,     0,     0,     0,     0,     0,   226,
1712       0,     0,     0,     0,     0,     0,   231,   227,   228,     0,
1713       0,     0,     0,     0,     0,     0,   299,     0,   410,     0,
1714       0,     0,   232,   233,   419,   299,     0,     0,     0,     0,
1715       0,     0,   234,     0,     0,     0,     0,     0,     0,   410,
1716       0,    92,    93,     0,    95,   235,     0,     0,    42,   236,
1717     237,     0,     0,     0,  1408,     0,   299,   299,   238,     0,
1718       0,   226,     0,     0,     0,   299,   299,     0,     0,   227,
1719     228,     0,  1264,     0,     0,  1265,     0,     0,     0,     0,
1720       0,     0,     0,     0,   538,     0,     0,  1273,     0,  1274,
1721     299,     0,   507,   510,  1278,     0,     0,     0,     0,     0,
1722       0,  1284,  1285,     0,   299,   541,     0,     0,   552,     0,
1723       0,     0,     0,   230,     0,     0,     0,     0,     0,   538,
1724    1293,  1295,     0,     0,   580,   582,     0,     0,     0,     0,
1725    1445,     0,     0,     0,  1324,     0,  1326,   226,   231,     0,
1726     593,     0,     0,   593,     0,   227,   228,  1334,     0,     0,
1727       0,     0,     0,     0,   232,   233,     0,     0,     0,     0,
1728     538,     0,     0,     0,   234,   615,     0,   361,   361,   507,
1729       0,     0,     0,    92,    93,   230,    95,   235,     0,     0,
1730      42,   236,   237,     0,     0,     0,     0,     0,   299,     0,
1731     238,     0,   671,     0,     0,     0,     0,     0,     0,     0,
1732     231,     0,     0,     0,  1369,     0,     0,     0,  1371,     0,
1733       0,     0,  1374,     0,  1377,  1379,   232,   233,     0,     0,
1734       0,     0,     0,     0,     0,  1385,   234,     0,     0,     0,
1735       0,     0,     0,     0,     0,    92,    93,     0,    95,   235,
1736       0,     0,    42,   236,   237,     0,     0,     0,     0,     0,
1737       0,   230,   238,  1400,     0,     0,     0,     0,     0,     0,
1738    1406,     0,     0,  1425,  1660,     0,  1428,     0,     0,     0,
1739       0,   226,     0,     0,     0,     0,   231,     0,     0,   227,
1740     228,     0,     0,     0,     0,   743,     0,   300,   755,     0,
1741     299,  1435,   232,   233,     0,     0,     0,   309,     0,     0,
1742     762,     0,   234,     0,     0,     0,     0,     0,     0,     0,
1743       0,    92,    93,     0,    95,   235,     0,     0,    42,   236,
1744     237,     0,     0,     0,   299,     0,     0,     0,   238,     0,
1745       0,     0,     0,  1467,     0,  1468,     0,     0,     0,     0,
1746       0,   299,     0,     0,  1704,     0,     0,   299,   299,   299,
1747     299,   226,   299,     0,   299,   299,     0,     0,     0,   227,
1748     228,     0,     0,     0,     0,     0,  1507,     0,     0,     0,
1749       0,     0,  1511,     0,     0,     0,     0,     0,     0,     0,
1750       0,     0,     0,     0,     0,   230,     0,   123,  1522,     0,
1751       0,     0,  1524,     0,     0,     0,     0,     0,     0,   538,
1752       0,   299,   299,     0,   771,     0,     0,   507,     0,  1535,
1753     231,  1536,     0,     0,  1538,     0,  1540,  1541,     0,  1542,
1754       0,     0,  1719,     0,     0,     0,   232,   233,     0,   226,
1755    1545,     0,     0,     0,     0,     0,   234,   227,   228,     0,
1756       0,   953,     0,     0,     0,    92,    93,     0,    95,   235,
1757       0,     0,    42,   236,   237,     0,     0,     0,     0,     0,
1758     410,     0,   238,     0,     0,   230,     0,     0,     0,     0,
1759       0,     0,   740,     0,     0,   538,   740,     0,    82,    83,
1760     772,   773,   953,  1574,     0,     0,     0,     0,  1613,     0,
1761     231,     0,     0,   985,   226,   986,     0,     0,     0,     0,
1762       0,     0,   227,   228,     0,  1614,   232,   233,     0,     0,
1763     774,   540,   775,   776,   777,     0,   234,   778,   779,     0,
1764     780,   781,     0,     0,     0,    92,    93,     0,    95,   235,
1765       0,     0,    42,   236,   237,  1020,     0,  1022,     0,     0,
1766       0,   299,   238,   230,     0,  1030,     0,  1623,  1035,     0,
1767       0,     0,     0,  1633,   123,     0,     0,     0,  1637,     0,
1768       0,     0,     0,     0,     0,     0,     0,     0,   231,  1642,
1769    1643,  1644,     0,   627,   627,     0,     0,     0,     0,     0,
1770    1647,  1596,     0,     0,   232,   233,     0,   226,  1649,     0,
1771    1651,   299,     0,     0,   234,   227,   228,     0,     0,     0,
1772       0,     0,     0,    92,    93,     0,    95,   235,   230,     0,
1773      42,   236,   237,     0,     0,     0,     0,     0,   299,     0,
1774     238,     0,   299,     0,     0,     0,     0,     0,     0,     0,
1775       0,     0,     0,   231,  1092,     0,     0,     0,     0,     0,
1776       0,     0,   299,     0,     0,     0,     0,     0,     0,   232,
1777     233,     0,   538,   538,   507,   507,   507,   507,     0,   234,
1778       0,     0,   507,  1687,     0,     0,     0,   507,    92,    93,
1779       0,    95,   235,     0,     0,    42,   236,   237,     0,     0,
1780    1690,     0,     0,     0,     0,   238,     0,     0,   300,   300,
1781       0,  1693,     0,     0,     0,     0,     0,     0,     0,     0,
1782       0,   230,  1147,  1618,     0,     0,     0,     0,     0,   226,
1783       0,     0,     0,     0,     0,     0,     0,   227,   228,     0,
1784       0,   361,  1030,     0,     0,     0,   231,     0,   580,  1712,
1785       0,  1179,  1714,     0,     0,     0,     0,     0,     0,     0,
1786    1620,     0,   232,   233,   812,     0,   226,     0,     0,     0,
1787       0,     0,   234,     0,   227,   228,     0,     0,     0,   410,
1788       0,    92,    93,     0,    95,   235,     0,  1209,    42,   236,
1789     237,     0,     0,     0,     0,     0,     0,     0,   238,     0,
1790     226,     0,     0,     0,   896,   899,     0,     0,   227,   228,
1791       0,     0,     0,   896,   899,     0,     0,  1246,     0,     0,
1792     299,     0,     0,     0,     0,     0,  1251,     0,     0,     0,
1793    1254,   755,   627,  1257,  1258,     0,  1259,   299,   896,     0,
1794       0,     0,     0,   230,     0,     0,  1154,  1155,     0,     0,
1795       0,     0,   309,     0,  1156,     0,  1157,   299,     0,     0,
1796       0,     0,     0,     0,     0,   299,     0,   952,   231,     0,
1797       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1798     230,     0,     0,     0,   232,   233,     0,     0,     0,   580,
1799       0,     0,  1319,     0,   234,  1321,     0,     0,     0,     0,
1800       0,     0,     0,    92,    93,   231,    95,   235,   952,     0,
1801      42,   236,   237,     0,   230,     0,     0,   538,   538,     0,
1802     238,   232,   233,     0,     0,   507,     0,     0,     0,     0,
1803       0,   234,     0,     0,     0,     0,   300,     0,     0,   231,
1804      92,    93,     0,    95,   235,  1589,     0,    42,   236,   237,
1805       0,     0,     0,     0,   299,   232,   233,   238,     0,     0,
1806       0,     0,     0,     0,     0,   234,     0,     0,     0,     0,
1807       0,     0,  1030,     0,    92,    93,     0,    95,   235,     0,
1808       0,    42,   236,   237,     0,  1179,     0,     0,     0,     0,
1809     123,   238,     0,     0,   953,   953,     0,     0,     0,     0,
1810     299,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1811       0,   299,     0,     0,     0,     0,     0,     0,     0,  -225,
1812    -225,  -225,     0,  -225,  1404,  -225,  -225,  -225,  -225,  -225,
1813    -225,  -225,  -225,  -225,  -225,  -225,  -225,  -225,   309,  1484,
1814    1485,  1486,  1487,  1488,  1489,     0,  1490,  1491,  1492,  1493,
1815    1494,  1495,     0,  1496,  1497,  1498,  1499,  1500,     0,  1436,
1816       0,     0,     0,  1438,     0,  1589,     0,     0,     0,     0,
1817    1030,     0,     0,     0,     0,     0,     0,  -225,     0,     0,
1818       0,     0,     0,     0,     0,     0,     0,     0,     0,   896,
1819       0,     0,     0,     0,     0,   896,   899,   899,   896,     0,
1820    1132,     0,   896,  1132,  1470,     0,     0,     0,     0,     0,
1821       0,     0,     0,     0,     0,     0,     0,     0,  1473,     0,
1822       0,     0,     0,     0,     0,   -88,   -88,   -88,     0,   -88,
1823     123,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
1824     -88,   -88,   -88,   -88,     0,     0,     0,   627,     0,  1166,
1825    1166,     0,     0,     0,     0,     0,  1030,     0,     0,     0,
1826       0,     0,     0,     0,     0,     0,     0,     0,  1531,     0,
1827     507,     0,     0,     0,     0,  -225,  -225,  -225,  -225,     0,
1828       0,     0,     0,   -88,     0,     0,     0,     0,     0,  1179,
1829       0,  1179,     0,     0,     0,     0,     0,     0,     0,     0,
1830       0,     0,     0,     0,     0,     0,  -225,     0,     0,  -225,
1831    -225,  -225,     0,   226,   412,     0,     0,     0,     0,     0,
1832       0,   227,   228,  1245,     0,     0,     0,     0,     0,   680,
1833    1501,  1502,     0,     0,     0,     0,     0,     0,     0,  1246,
1834    1246,     0,     0,     0,     0,     0,  1570,  1030,     0,     0,
1835       0,   880,     0,   881,   882,   883,   884,     0,   885,     0,
1836     886,   887,     0,     0,     0,     0,  1209,   888,     0,   889,
1837       0,   890,     0,     0,     0,     0,     0,     0,     0,     0,
1838       0,   -88,   -88,   -88,   -88,     0,     0,     0,     0,   812,
1839       0,  1598,  1599,  1600,  1601,  1602,  1603,  1604,  1605,  1606,
1840    1607,  1608,  1609,  1610,  1611,  1612,  1616,  1617,  1619,  1621,
1841       0,     0,   -88,   -88,     0,   -88,   -88,   -88,     0,   -88,
1842       0,     0,     0,     0,     0,   226,     0,   230,     0,     0,
1843       0,     0,     0,   227,   228,   617,     0,     0,     0,   899,
1844       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1845       0,     0,   231,     0,     0,     0,     0,     0,     0,     0,
1846       0,  1655,     0,     0,   618,     0,   309,     0,   232,   233,
1847     896,     0,   619,     0,   620,   621,   622,   623,   234,   624,
1848       0,   625,     0,     0,     0,     0,  1209,    92,    93,     0,
1849      95,   235,     0,     0,    42,   236,   237,     0,   226,     0,
1850     952,   952,     0,  1682,   238,     0,   227,   228,     0,     0,
1851       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1852    1683,  1684,     0,     0,     0,  1685,     0,  1686,     0,     0,
1853       0,     0,     0,     0,     0,     0,   867,     0,     0,   230,
1854     868,   869,   870,   871,   872,   873,     0,     0,     0,     0,
1855       0,     0,   874,   875,   876,     0,     0,     0,     0,     0,
1856       0,     0,     0,     0,   231,     0,     0,     0,     0,     0,
1857       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1858     232,   233,    89,     0,     0,  1708,     0,  1297,     0,     0,
1859     234,     0,     0,     0,     0,  1298,  1299,     0,     0,    92,
1860      93,     0,    95,   235,     0,     0,   626,   505,   237,     0,
1861       0,  1720,   230,     0,     0,     0,   238,     0,     0,     0,
1862    1300,     0,     0,     0,     0,     0,  1727,     0,  1708,  1730,
1863       0,     0,     0,     0,   598,  1732,     0,   231,     0,     0,
1864    1735,   599,     0,   600,   601,     0,     0,     0,   899,     0,
1865       0,     0,   226,   232,   233,     0,     0,     0,     0,     0,
1866     227,   228,     0,   234,     0,   899,     0,     0,     0,     0,
1867       0,     0,    92,    93,     0,    95,   235,     0,     0,    42,
1868     236,   237,     0,     0,     0,  1166,  1301,     0,     0,   238,
1869     880,     0,   881,     0,   883,   884,     0,   885,     0,   886,
1870     887,   230,     0,     0,     0,     0,   888,     0,   889,     0,
1871     890,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1872       0,     0,     0,     0,     0,     0,   231,   226,     0,     0,
1873       0,     0,  1302,     0,     0,   227,   228,     0,     0,     0,
1874       0,     0,  1303,  1304,     0,  1245,  1245,     0,     0,     0,
1875       0,     0,   234,     0,     0,     0,     0,     0,     0,     0,
1876       0,  1305,  1306,     0,  1307,  1308,   230,   226,    42,  1309,
1877     237,     0,     0,     0,   589,   227,   228,     0,   238,     0,
1878       0,   590,     0,   591,   592,     0,     0,     0,     0,     0,
1879       0,   231,     0,     0,     0,     0,     0,   226,     0,     0,
1880       0,     0,     0,     0,     0,   227,   228,   232,   233,     0,
1881    -765,     0,     0,     0,   598,     0,     0,   234,     0,     0,
1882       0,   599,     0,   600,   601,     0,    92,    93,   896,    95,
1883     235,     0,     0,    42,   236,   237,     0,     0,     0,   896,
1884       0,   230,     0,   238,     0,     0,   226,     0,     0,     0,
1885    -765,     0,     0,     0,   227,   228,     0,     0,     0,     4,
1886       0,     0,     0,     0,     0,     0,   231,     0,     0,     0,
1887       0,     0,     0,     0,     0,     0,     0,     0,     0,   226,
1888       0,   230,   232,   233,     0,     0,     0,   227,   228,   504,
1889       0,     0,   234,     0,     0,     0,     0,     0,     0,     8,
1890       0,    92,    93,     0,    95,   235,   231,     0,    42,   236,
1891     237,   230,   226,     0,     0,     0,     0,     0,   238,     0,
1892     227,   228,   232,   233,     0,     0,     0,     0,     0,     0,
1893       0,     0,   234,     0,     0,     0,   231,     0,     0,     0,
1894       0,    92,    93,     0,    95,   235,     0,     0,    42,   236,
1895     237,     0,   232,   233,     0,     0,     0,   226,   238,     0,
1896     230,     0,   234,     0,     0,   227,   228,   925,   226,     0,
1897       0,    92,    93,     0,    95,   235,   227,   228,   339,   236,
1898     237,     0,     0,     0,  -765,   231,     0,     0,   238,     0,
1899       0,     0,     0,   230,     0,   397,     0,     0,     0,     0,
1900       0,   232,   233,     0,     0,   226,     0,     0,     0,     0,
1901       0,   234,     0,   227,   228,  1253,     0,     0,   231,     0,
1902      92,    93,     0,    95,   235,     0,   230,    42,   236,   237,
1903       0,     0,     0,    12,   232,   233,    89,   238,     0,   226,
1904       0,     0,     0,     0,   234,     0,     0,   227,   228,  -395,
1905     226,   231,     0,    92,    93,     0,    95,   235,   227,   228,
1906      42,   505,   237,     0,     0,     0,     0,   232,   233,     0,
1907     238,   230,     0,     0,     0,     0,     0,   234,     0,     0,
1908       0,     0,   230,     0,     0,     0,    92,    93,     0,    95,
1909     235,     0,     0,    42,   236,   237,   231,   226,     0,     0,
1910       0,     0,     0,   238,     0,   227,   228,   231,     0,     0,
1911       0,     0,   232,   233,     0,     0,     0,     0,     0,   230,
1912       0,   226,   234,   232,   233,     0,     0,     0,     0,   227,
1913     228,    92,    93,   234,    95,   235,     0,     0,    42,   236,
1914     237,     0,    92,    93,   231,    95,   235,     0,   238,   537,
1915     236,   237,  1240,   230,   226,     0,     0,     0,     0,   238,
1916     232,   233,   227,   228,   230,     0,     0,     0,     0,     0,
1917     234,     0,     0,     0,     0,     0,     0,     0,   231,    92,
1918      93,     0,    95,   235,     0,     0,    42,   236,   237,   231,
1919       0,   226,     0,     0,   232,   233,   238,     0,     0,   227,
1920     228,     0,     0,     0,   234,   232,   233,     0,     0,     0,
1921       0,   230,     0,    92,    93,   234,    95,   235,     0,     0,
1922      42,   236,   237,     0,    92,    93,     0,    95,   235,     0,
1923     238,    42,   236,   353,     0,   230,   231,   226,     0,     0,
1924       0,   238,     0,     0,     0,   227,   228,     0,   226,     0,
1925       0,     0,   232,   233,     0,     0,   227,   228,     0,     0,
1926     231,     0,   234,     0,     0,     0,     0,     0,   230,     0,
1927       0,    92,    93,     0,    95,   235,   232,   233,    42,   236,
1928     356,     0,     0,     0,     0,     0,   234,     0,   238,     0,
1929       0,     0,     0,   231,     0,    92,    93,     0,    95,   235,
1930       0,     0,    42,   236,   405,   230,     0,     0,     0,   232,
1931     233,     0,   238,     0,     0,     0,     0,     0,     0,   234,
1932       0,     0,     0,     0,     0,     0,     0,     0,    92,    93,
1933     231,    95,   235,     0,    79,    42,   236,   237,     0,     0,
1934       0,    80,     0,     0,     0,   238,   232,   233,     0,     0,
1935       0,   230,     0,     0,     0,     0,   234,     0,     0,     0,
1936       0,     0,   230,     0,     0,    92,    93,     0,    95,   235,
1937       0,     0,   537,   236,   237,     0,   231,     0,     0,     0,
1938       0,     0,   238,     0,     0,     0,     0,   231,     0,     0,
1939       0,    81,   232,   233,     0,     0,     0,     0,     0,     0,
1940       0,     0,   234,   232,   233,     0,     0,     0,    82,    83,
1941       0,    92,    93,   234,    95,   235,     0,     0,    42,   236,
1942    1029,    84,    92,    93,     0,    95,   235,     0,   238,  1083,
1943    1084,  1085,     0,     0,     0,     0,     0,     0,     0,   238,
1944    -450,     0,    85,    80,    86,    87,     0,     0,     0,   155,
1945    -463,     0,  -476,     0,     0,     0,     0,    88,  -708,   156,
1946       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1947       0,     0,     0,     0,     0,     0,     0,    89,     0,     0,
1948      90,    91,  -334,     0,     0,  -334,  -334,  -334,  -334,   157,
1949       0,     0,     0,  -334,    92,    93,    94,    95,     0,  -334,
1950       0,    96,    97,     0,   158,     0,     0,     0,     0,     0,
1951       0,     0,     0,     0,     0,     0,  -708,  -708,  -708,     0,
1952     159,     0,     0,    84,     0,  -708,     0,   160,    80,     0,
1953     161,   162,     0,   163,   155,     0,   164,     0,     0,   165,
1954     166,   167,     0,  -708,   156,     0,     0,     0,     0,     0,
1955       0,     0,     0,     0,     0,     0,    80,     0,     0,     0,
1956       0,     0,   155,     0,     0,   168,     0,     0,     0,     0,
1957       0,     0,   156,     0,   157,     0,     0,     0,     0,    89,
1958    -708,  -708,    90,     0,     0,     0,     0,     0,     0,   158,
1959       0,     0,     0,     0,     0,     0,    92,    93,     0,    95,
1960       0,     0,   157,   169,    97,   159,     0,     0,    84,  -128,
1961       0,     0,   160,     0,     0,   161,   162,   158,   163,     0,
1962       0,   164,     0,     0,   165,   166,   167,     0,     0,     0,
1963       0,     0,     0,   159,     0,     0,    84,  -129,     0,     0,
1964     160,     0,     0,   161,   162,     0,   163,   155,     0,   164,
1965     168,     0,   165,   166,   167,     0,     0,   156,     0,     0,
1966       0,     0,     0,     0,    89,     0,     0,    90,     0,     0,
1967       0,     0,     0,     0,     0,   821,     0,     0,   168,  -128,
1968       0,    92,    93,     0,    95,     0,     0,   157,   169,    97,
1969       0,     0,    89,     0,     0,    90,     0,     0,     0,     0,
1970       0,     0,   158,     0,     0,     0,     0,  -129,     0,    92,
1971      93,     0,    95,     0,     0,   157,   169,    97,   159,     0,
1972       0,    84,  -125,     0,     0,   160,     0,     0,   161,   162,
1973     158,   163,     0,     0,   164,     0,     0,   165,   166,   167,
1974       0,  1034,     0,     0,     0,     0,   159,     0,     0,     0,
1975       0,     0,     0,   160,     0,     0,   161,   162,     0,   163,
1976     821,     0,   164,   168,     0,   165,   166,   167,     0,     0,
1977       0,     0,     0,     0,     0,     0,     0,    89,     0,     0,
1978      90,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1979       0,   168,  -125,     0,    92,    93,     0,    95,     0,     0,
1980     157,   169,    97,     0,     0,    89,     0,     0,     0,     0,
1981       0,     0,     0,     0,     0,   158,     0,     0,     0,     0,
1982       0,     0,    92,    93,     0,    95,     0,     0,     0,    42,
1983      97,   159,     0,     0,     0,     0,     0,     0,   160,     0,
1984       0,   161,   162,     0,   163,     0,     0,   164,     0,     0,
1985     165,   166,   167,     0,     0,     0,     0,     0,     0,     0,
1986       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1987       0,     0,     0,     0,     0,     0,   168,     0,     0,     0,
1988       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1989      89,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1990       0,     0,     0,     0,     0,     0,     0,    92,    93,     0,
1991      95,     0,     0,     0,    42,    97
1992};
1993
1994static const yytype_int16 yycheck[] =
1995{
1996      11,   213,   168,   294,   459,   294,    52,    52,   384,    90,
1997     459,    56,   220,   384,   288,   164,   165,   136,   654,    52,
1998     154,   497,   168,   154,    57,   291,   922,   721,   494,    62,
1999      63,   859,   294,   219,   141,   322,    73,   551,   606,    52,
2000    1007,    52,  1007,   294,   109,   305,    57,   213,   237,    52,
2001     237,    62,    63,   983,   100,   100,   497,   883,   884,   695,
2002      52,    94,    73,  1100,   935,   673,   570,   100,   495,   258,
2003    1029,   104,   258,   259,   319,   936,   937,   868,   869,   870,
2004     943,   591,   110,    94,   875,  1178,     5,   100,   172,   100,
2005     600,  1275,   237,   104,     3,  1279,  1508,   100,  1282,    21,
2006       5,  1270,     3,    21,    27,     3,     3,    21,   100,     3,
2007       3,     3,     3,   258,     3,   625,   941,     5,     3,    56,
2008    1270,     3,   382,  1459,     3,     3,     3,     3,     3,   185,
2009    1557,    24,    24,    24,     3,     3,     3,     3,   170,   172,
2010    1270,     3,    24,    24,     3,    24,    24,    24,    24,    24,
2011    1577,     3,    24,   192,     3,    24,    24,    24,    24,   305,
2012     192,   172,     3,     3,   353,     3,   353,   356,   459,   356,
2013     459,    64,    64,    64,     4,    24,     3,     3,     3,     3,
2014     192,   259,    64,   220,   560,    64,    64,    64,    64,    64,
2015       3,   399,    64,  1089,     3,    64,    64,    64,    64,   333,
2016       3,     3,   333,     3,   353,     3,  1165,   356,   353,     3,
2017       5,   356,   420,     3,     3,    64,   405,     3,   405,     3,
2018       3,     3,   159,    24,     3,     5,   237,   137,     3,    21,
2019     325,   418,   418,     3,   380,   381,   382,   678,  1558,   425,
2020      18,   325,   428,  1579,    22,   431,   311,    19,    20,   161,
2021    1419,    21,   317,    19,    20,   110,   522,  1082,  1578,   147,
2022     405,    18,    24,     3,   713,    22,   155,   304,   279,   192,
2023     155,    47,   194,   310,  1443,   194,   194,  1689,   972,   374,
2024     194,   388,   319,   294,   194,   322,   195,   315,   316,   194,
2025     374,  1384,   325,  1443,   195,   586,   723,   195,   195,   200,
2026    1126,   195,    64,   195,  1263,   198,   198,   198,   497,   201,
2027     497,   497,  1175,  1443,   325,   606,   198,   198,   161,   198,
2028     198,   198,   198,   198,   586,   155,   198,  1118,    97,   198,
2029     198,   198,   198,   195,   194,   501,   195,   192,   384,   331,
2030     418,   374,   353,   195,   606,   356,   850,   195,   359,   198,
2031      52,   384,   497,   431,   195,   195,   132,   195,   185,   186,
2032     620,   188,   399,   374,   972,   192,   876,   147,   305,   195,
2033     195,   195,   882,   384,  1010,   885,   155,   146,   195,   889,
2034     155,   114,   195,   420,   421,   155,   195,   147,  1557,   194,
2035    1559,   155,   195,   195,   405,   195,  1565,   195,   100,   194,
2036     192,   195,   394,   395,    97,   195,   195,  1591,  1577,   195,
2037     421,   195,   195,   195,   192,   155,   168,   189,   499,   500,
2038     192,   193,    22,   192,    52,   192,   459,   193,   192,    24,
2039     721,    52,   721,    97,   194,   168,   198,   125,   587,   588,
2040     589,   193,   561,   380,   381,   382,    52,   384,   459,   598,
2041     731,   663,   718,   146,   519,   667,   668,   738,   666,   721,
2042     193,  1419,   495,   496,   497,   572,   117,   118,    24,    64,
2043     721,  1401,   100,  1510,   620,   155,   557,   611,  1349,   100,
2044     611,  1440,   146,    97,   495,   496,   497,    48,   176,   678,
2045     501,   678,   678,  1460,   100,  1460,    24,   663,    24,   765,
2046     689,   667,   668,   689,   192,    52,    24,   192,    64,  1335,
2047      33,  1372,   192,   144,   560,   560,   189,   155,   551,   155,
2048     193,   532,   567,   789,   192,    48,  1352,   560,   983,   995,
2049     198,  1007,   146,   678,   983,  1011,    64,    24,    64,    24,
2050     551,   192,   173,   554,   689,   192,    64,   560,   195,   560,
2051     111,   112,  1188,   100,   741,   741,   192,   560,   591,   592,
2052     193,   194,  1076,   808,   567,   810,  1007,   600,   601,    29,
2053    1011,    31,  1363,   111,   112,   586,  1144,    64,   192,    64,
2054     591,   592,    12,    13,    14,    15,    16,    17,    18,   600,
2055     601,    24,   625,   169,   170,   606,    29,   192,    31,     3,
2056    1558,  1559,   192,   198,     4,   195,   639,  1565,    24,  1505,
2057     171,    19,    20,  1580,   625,  1580,   192,   194,    22,    24,
2058    1578,    24,   194,   560,   168,   175,   175,   638,   639,   666,
2059     567,    24,   194,   171,    21,    22,   192,     3,   200,   183,
2060     168,  1469,   198,   654,   194,   194,   195,  1157,    64,   193,
2061      29,   200,    31,   590,    87,   125,    22,   185,   186,    64,
2062     188,    64,   599,   194,   192,   193,   192,   678,   173,   200,
2063     198,    64,   198,   822,   192,   425,   131,   192,   428,   194,
2064     198,    38,   115,   620,   695,   622,   623,   624,     5,    29,
2065     723,    31,   983,    29,   983,    31,   105,   984,   107,  1194,
2066     192,  1196,   713,   195,     3,   192,   176,   192,    87,   201,
2067     721,   198,   723,   198,   141,   185,   186,   125,   188,    18,
2068     143,   103,   192,    22,   873,   844,   108,   764,   194,   111,
2069       6,     7,   162,   163,   164,   165,   115,   886,   803,   192,
2070     173,   113,   195,    99,   100,   852,  1440,    87,   201,  1645,
2071     183,    87,    24,  1219,   903,   194,   767,    29,   140,    31,
2072     909,   158,   159,   160,     4,   198,   196,   197,   176,  1218,
2073     807,   808,   194,   810,   923,   115,   192,   185,   186,   115,
2074     188,   189,   198,   917,   192,   193,   917,   192,   934,   192,
2075     173,   174,   825,   198,   173,   198,   194,  1433,   194,   192,
2076     194,  1177,   192,   193,   183,   198,  1177,   176,   177,   178,
2077     179,   168,   749,   859,   825,   184,  1107,   194,  1007,   113,
2078    1007,   190,  1011,   192,  1011,  1011,   859,    47,   185,   186,
2079     194,   188,   194,   173,   871,   192,   193,   173,   173,   174,
2080    1029,   194,  1029,   876,   193,  1107,   201,   183,   859,   882,
2081     883,   884,   885,  1144,   887,   201,   889,   890,  1024,  1314,
2082     105,   106,  1007,  1318,     5,   876,  1011,    40,    41,  1594,
2083    1595,   882,   883,   884,   885,   175,   887,   922,   889,   890,
2084      23,    29,  1144,    31,  1029,    62,    63,   924,    10,   922,
2085       8,    99,   100,   101,   102,   168,  1085,   194,  1085,   208,
2086     209,   194,   913,   936,   937,    28,    29,    30,    31,   326,
2087     327,   922,   185,   186,    37,   188,     4,   192,   192,   192,
2088     193,   192,   859,   131,   192,   936,   937,   176,   177,   178,
2089     179,   139,     5,    19,    20,   184,  1085,   874,   192,    87,
2090    1085,   190,   147,   200,   169,   105,  1401,   984,   194,  1223,
2091     983,   888,  1401,   185,   186,   192,   188,   195,   194,     5,
2092     192,   972,   195,   195,    87,     5,     5,   115,   151,  1006,
2093     185,   186,   983,   188,  1123,     3,   175,   192,  1011,   175,
2094     195,   175,   195,   175,  1460,   922,    65,    66,   195,  1138,
2095     192,   203,   115,   194,     5,  1006,  1007,   934,  1079,  1010,
2096    1011,    80,  1268,    22,  1380,    84,  1155,   192,   192,  1380,
2097       3,    90,   194,  1024,  1226,    19,    20,     3,  1029,   195,
2098     111,   185,   186,  1314,   188,   173,   195,  1318,   192,   103,
2099       4,   195,   174,   192,   108,   183,   155,   111,  1227,   125,
2100    1227,  1227,     3,  1076,  1089,     3,   192,   121,   200,   123,
2101     173,  1062,   126,   127,   185,   186,  1089,   188,   194,     4,
2102    1226,   192,   195,   194,   150,  1076,   140,    38,     4,   114,
2103     194,   145,  1109,   135,  1085,   198,  1087,   192,  1089,   158,
2104     166,   167,  1227,   183,   185,   186,   195,   188,   195,   168,
2105     176,   192,   194,  1126,  1280,     5,  1107,   195,   183,   185,
2106     186,    39,   188,   189,  1580,   192,   192,   193,   194,   192,
2107    1401,     4,  1401,   183,   183,  1126,   202,   195,    11,     3,
2108    1153,   125,   185,   186,  1157,   188,    19,    20,    21,   192,
2109      18,  1177,   175,  1144,   185,   186,     5,   188,   109,     3,
2110     194,   192,  1153,   114,  1177,   194,  1157,    22,   119,   120,
2111       3,   122,  1089,   194,   125,   192,    21,   128,   129,   130,
2112     194,    21,   166,   167,   185,   186,  1177,   188,   195,   104,
2113     194,   192,   176,   194,   194,     3,  1187,  1188,   194,   194,
2114       3,   185,   186,  1220,   188,   189,     3,   192,   192,   193,
2115     194,   192,   147,   170,   194,   194,   275,   168,    68,    69,
2116      70,   280,    72,   140,   283,   155,     3,  1218,   115,   194,
2117       3,   290,     3,     5,   185,   186,  1227,   188,  1367,  1156,
2118       5,   192,   193,    30,     5,   304,   103,   195,   307,     3,
2119     195,   108,   125,  1270,   111,    31,   195,     3,  1275,    29,
2120    1177,   195,  1279,   195,   121,  1282,   123,   195,  1697,   126,
2121     127,     3,     5,   104,  1291,  1710,     4,   150,    21,   192,
2122     194,  1272,   155,   140,   343,   344,   195,   346,   145,   194,
2123      20,     4,     4,   166,   167,   195,   355,   192,   357,   195,
2124     192,  1314,   195,   176,   195,  1318,   195,     5,     3,   368,
2125       3,   370,   185,   186,   195,   188,   189,     4,    26,   192,
2126     193,   194,  1335,  1314,    73,    94,  1343,  1318,   195,   202,
2127       5,   390,   125,   195,   108,     5,  1253,   111,     4,  1352,
2128     200,     3,   104,   194,  1335,   192,   200,   121,   194,   123,
2129     192,   104,   126,   127,  1380,     4,   195,   150,  1550,  1372,
2130     195,  1352,   147,  1551,     3,   195,   140,  1380,     5,     3,
2131       3,   145,     4,   166,   167,  1567,     5,   194,     5,     5,
2132       3,  1372,  1399,   176,    22,   195,     3,     3,  1401,  1380,
2133       4,     3,   185,   186,     3,   188,   189,    21,     4,   192,
2134     193,   194,  1419,     3,  1550,   195,     3,   195,   467,   202,
2135    1401,     4,   471,   195,   195,   195,   194,    52,     4,     3,
2136     195,  1567,    57,   482,   192,    11,  1443,    62,    63,   192,
2137       3,    21,   192,    19,    20,    21,   192,   192,     4,  1710,
2138     499,   500,  1433,  1469,   503,  1362,     4,  1460,     5,  1440,
2139     509,   195,     3,   195,   195,   195,  1469,   195,    22,    94,
2140       4,   195,     3,  1380,   195,   100,   195,   526,   194,   104,
2141     195,     3,     3,   195,     4,     4,   535,     3,  1469,     4,
2142    1505,    49,  1592,  1721,  1007,   544,   917,    73,  1007,   100,
2143     412,   718,  1505,   552,  1271,  1224,    20,   519,   557,  1272,
2144    1268,  1518,  1515,  1443,  1280,    11,  1007,  1699,    94,   421,
2145    1433,  1432,  1052,  1526,  1505,   252,  1559,   576,   789,   405,
2146    1560,  1565,  1419,   791,  1515,   496,  1007,   721,  1011,   981,
2147    1062,   803,  1697,  1218,  1551,  1526,   460,   172,  1566,   125,
2148    1557,  1558,  1559,  1288,   554,   994,  1024,   890,  1565,   560,
2149    1516,  1526,  1469,  1699,  1352,  1518,  1107,  1343,   560,  1527,
2150    1577,  1578,   447,   266,   150,   448,   450,  1580,   764,   808,
2151     452,   318,   810,   805,  1591,   455,   565,   327,   637,   565,
2152     166,   167,   560,  1382,   386,   560,   619,   880,  1505,   648,
2153     176,   560,  1123,     0,     1,   601,   560,   560,   657,   185,
2154     186,  1592,   188,   189,   560,   621,   192,   193,   194,   934,
2155    1367,  1372,   903,   937,   381,  1440,   202,    24,   560,   909,
2156    1645,    28,    29,    30,    31,  1138,   333,   560,    54,   560,
2157      37,   281,  1645,  1689,     4,   711,   468,  1654,   695,   560,
2158     638,    11,  1188,  1187,    26,   658,  1191,  1395,  1087,    19,
2159      20,    21,  1669,    -1,  1645,    -1,    -1,    64,     4,    -1,
2160      -1,    -1,    -1,   722,    -1,    11,    -1,    -1,    -1,    -1,
2161      -1,    -1,    -1,    19,    20,    -1,    -1,    -1,    -1,    -1,
2162      87,    -1,    -1,   318,    -1,    -1,   745,    -1,   747,    -1,
2163     325,    -1,    -1,    -1,    -1,    -1,    -1,  1710,  1715,    -1,
2164      -1,  1718,    -1,   762,    -1,    -1,  1697,    -1,   115,   768,
2165      -1,    -1,    -1,    -1,  1731,    -1,    -1,    -1,    -1,  1710,
2166      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1645,  1646,
2167      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   374,
2168      -1,    -1,   801,    -1,    -1,   380,   381,    -1,    -1,   384,
2169      -1,    -1,    -1,    -1,   813,   125,    -1,    -1,    -1,   818,
2170       4,   820,    -1,    -1,    -1,    -1,   173,    11,    -1,   176,
2171     177,   178,   179,    -1,    -1,    19,    20,   184,    -1,   125,
2172     150,    -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,   848,
2173      -1,   198,    -1,    -1,    -1,    -1,   166,   167,    -1,    -1,
2174     859,    -1,    -1,    -1,   150,    -1,   176,    -1,    -1,    -1,
2175      -1,    -1,    -1,    -1,    -1,   185,   186,    -1,   188,   189,
2176     166,   167,   192,   193,   194,    -1,    -1,    -1,    -1,    -1,
2177     176,    -1,   202,    -1,    -1,    -1,    -1,    -1,    -1,   185,
2178     186,    -1,   188,   189,   157,   904,   192,   193,   194,    -1,
2179      -1,   910,    -1,    -1,    -1,   168,   202,    -1,    -1,    -1,
2180     495,   496,   497,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2181      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2182      -1,   125,    -1,    -1,    -1,    -1,   945,    -1,    -1,   948,
2183     949,    -1,     4,    -1,    -1,    -1,    -1,    -1,    -1,    11,
2184      -1,    -1,    -1,    -1,    -1,    -1,   150,    19,    20,    -1,
2185      -1,    -1,    -1,    -1,    -1,    -1,   551,    -1,   231,    -1,
2186      -1,    -1,   166,   167,   237,   560,    -1,    -1,    -1,    -1,
2187      -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,    -1,   252,
2188      -1,   185,   186,    -1,   188,   189,    -1,    -1,   192,   193,
2189     194,    -1,    -1,    -1,     4,    -1,   591,   592,   202,    -1,
2190      -1,    11,    -1,    -1,    -1,   600,   601,    -1,    -1,    19,
2191      20,    -1,  1031,    -1,    -1,  1034,    -1,    -1,    -1,    -1,
2192      -1,    -1,    -1,    -1,   619,    -1,    -1,  1046,    -1,  1048,
2193     625,    -1,   305,   306,  1053,    -1,    -1,    -1,    -1,    -1,
2194      -1,  1060,  1061,    -1,   639,   318,    -1,    -1,   321,    -1,
2195      -1,    -1,    -1,   125,    -1,    -1,    -1,    -1,    -1,   654,
2196    1079,  1080,    -1,    -1,   337,   338,    -1,    -1,    -1,    -1,
2197       4,    -1,    -1,    -1,  1093,    -1,  1095,    11,   150,    -1,
2198     353,    -1,    -1,   356,    -1,    19,    20,  1106,    -1,    -1,
2199      -1,    -1,    -1,    -1,   166,   167,    -1,    -1,    -1,    -1,
2200     695,    -1,    -1,    -1,   176,   378,    -1,   380,   381,   382,
2201      -1,    -1,    -1,   185,   186,   125,   188,   189,    -1,    -1,
2202     192,   193,   194,    -1,    -1,    -1,    -1,    -1,   723,    -1,
2203     202,    -1,   405,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2204     150,    -1,    -1,    -1,  1163,    -1,    -1,    -1,  1167,    -1,
2205      -1,    -1,  1171,    -1,  1173,  1174,   166,   167,    -1,    -1,
2206      -1,    -1,    -1,    -1,    -1,  1184,   176,    -1,    -1,    -1,
2207      -1,    -1,    -1,    -1,    -1,   185,   186,    -1,   188,   189,
2208      -1,    -1,   192,   193,   194,    -1,    -1,    -1,    -1,    -1,
2209      -1,   125,   202,  1212,    -1,    -1,    -1,    -1,    -1,    -1,
2210    1219,    -1,    -1,  1222,     4,    -1,  1225,    -1,    -1,    -1,
2211      -1,    11,    -1,    -1,    -1,    -1,   150,    -1,    -1,    19,
2212      20,    -1,    -1,    -1,    -1,   498,    -1,    94,   501,    -1,
2213     825,  1250,   166,   167,    -1,    -1,    -1,   104,    -1,    -1,
2214     513,    -1,   176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2215      -1,   185,   186,    -1,   188,   189,    -1,    -1,   192,   193,
2216     194,    -1,    -1,    -1,   859,    -1,    -1,    -1,   202,    -1,
2217      -1,    -1,    -1,  1292,    -1,  1294,    -1,    -1,    -1,    -1,
2218      -1,   876,    -1,    -1,     4,    -1,    -1,   882,   883,   884,
2219     885,    11,   887,    -1,   889,   890,    -1,    -1,    -1,    19,
2220      20,    -1,    -1,    -1,    -1,    -1,  1325,    -1,    -1,    -1,
2221      -1,    -1,  1331,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2222      -1,    -1,    -1,    -1,    -1,   125,    -1,   922,  1347,    -1,
2223      -1,    -1,  1351,    -1,    -1,    -1,    -1,    -1,    -1,   934,
2224      -1,   936,   937,    -1,    25,    -1,    -1,   620,    -1,  1368,
2225     150,  1370,    -1,    -1,  1373,    -1,  1375,  1376,    -1,  1378,
2226      -1,    -1,     4,    -1,    -1,    -1,   166,   167,    -1,    11,
2227    1389,    -1,    -1,    -1,    -1,    -1,   176,    19,    20,    -1,
2228      -1,   654,    -1,    -1,    -1,   185,   186,    -1,   188,   189,
2229      -1,    -1,   192,   193,   194,    -1,    -1,    -1,    -1,    -1,
2230     673,    -1,   202,    -1,    -1,   125,    -1,    -1,    -1,    -1,
2231      -1,    -1,  1007,    -1,    -1,  1010,  1011,    -1,    99,   100,
2232     101,   102,   695,  1442,    -1,    -1,    -1,    -1,     5,    -1,
2233     150,    -1,    -1,   706,    11,   708,    -1,    -1,    -1,    -1,
2234      -1,    -1,    19,    20,    -1,    22,   166,   167,    -1,    -1,
2235     131,   318,   133,   134,   135,    -1,   176,   138,   139,    -1,
2236     141,   142,    -1,    -1,    -1,   185,   186,    -1,   188,   189,
2237      -1,    -1,   192,   193,   194,   748,    -1,   750,    -1,    -1,
2238      -1,  1076,   202,   125,    -1,   758,    -1,  1506,   761,    -1,
2239      -1,    -1,    -1,  1512,  1089,    -1,    -1,    -1,  1517,    -1,
2240      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   150,  1528,
2241    1529,  1530,    -1,   380,   381,    -1,    -1,    -1,    -1,    -1,
2242    1539,     5,    -1,    -1,   166,   167,    -1,    11,  1547,    -1,
2243    1549,  1126,    -1,    -1,   176,    19,    20,    -1,    -1,    -1,
2244      -1,    -1,    -1,   185,   186,    -1,   188,   189,   125,    -1,
2245     192,   193,   194,    -1,    -1,    -1,