Coverage Report

Created: 2025-06-13 06:18

/src/proj/src/wkt2_generated_parser.c
Line
Count
Source (jump to first uncovered line)
1
/* A Bison parser, made by GNU Bison 3.5.1.  */
2
3
/* Bison implementation for Yacc-like parsers in C
4
5
   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
6
   Inc.
7
8
   This program is free software: you can redistribute it and/or modify
9
   it under the terms of the GNU General Public License as published by
10
   the Free Software Foundation, either version 3 of the License, or
11
   (at your option) any later version.
12
13
   This program is distributed in the hope that it will be useful,
14
   but WITHOUT ANY WARRANTY; without even the implied warranty of
15
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
   GNU General Public License for more details.
17
18
   You should have received a copy of the GNU General Public License
19
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20
21
/* As a special exception, you may create a larger work that contains
22
   part or all of the Bison parser skeleton and distribute that work
23
   under terms of your choice, so long as that work isn't itself a
24
   parser generator using the skeleton or a modified version thereof
25
   as a parser skeleton.  Alternatively, if you modify or redistribute
26
   the parser skeleton itself, you may (at your option) remove this
27
   special exception, which will cause the skeleton and the resulting
28
   Bison output files to be licensed under the GNU General Public
29
   License without this special exception.
30
31
   This special exception was added by the Free Software Foundation in
32
   version 2.2 of Bison.  */
33
34
/* C LALR(1) parser skeleton written by Richard Stallman, by
35
   simplifying the original so-called "semantic" parser.  */
36
37
/* All symbols defined below should begin with yy or YY, to avoid
38
   infringing on user name space.  This should be done even for local
39
   variables, as they might otherwise be expanded by user macros.
40
   There are some unavoidable exceptions within include files to
41
   define necessary library symbols; they are noted "INFRINGES ON
42
   USER NAME SPACE" below.  */
43
44
/* Undocumented macros, especially those whose name start with YY_,
45
   are private implementation details.  Do not rely on them.  */
46
47
/* Identify Bison output.  */
48
#define YYBISON 1
49
50
/* Bison version.  */
51
#define YYBISON_VERSION "3.5.1"
52
53
/* Skeleton name.  */
54
#define YYSKELETON_NAME "yacc.c"
55
56
/* Pure parsers.  */
57
#define YYPURE 1
58
59
/* Push parsers.  */
60
#define YYPUSH 0
61
62
/* Pull parsers.  */
63
#define YYPULL 1
64
65
66
/* Substitute the variable and function names.  */
67
#define yyparse         pj_wkt2_parse
68
0
#define yylex           pj_wkt2_lex
69
0
#define yyerror         pj_wkt2_error
70
#define yydebug         pj_wkt2_debug
71
#define yynerrs         pj_wkt2_nerrs
72
73
/* First part of user prologue.  */
74
75
/******************************************************************************
76
 * Project:  PROJ
77
 * Purpose:  WKT2 parser grammar
78
 * Author:   Even Rouault, <even.rouault at spatialys.com>
79
 *
80
 ******************************************************************************
81
 * Copyright (c) 2018 Even Rouault, <even.rouault at spatialys.com>
82
 *
83
 * Permission is hereby granted, free of charge, to any person obtaining a
84
 * copy of this software and associated documentation files (the "Software"),
85
 * to deal in the Software without restriction, including without limitation
86
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
87
 * and/or sell copies of the Software, and to permit persons to whom the
88
 * Software is furnished to do so, subject to the following conditions:
89
 *
90
 * The above copyright notice and this permission notice shall be included
91
 * in all copies or substantial portions of the Software.
92
 *
93
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
94
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
95
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
96
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
97
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
98
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
99
 * DEALINGS IN THE SOFTWARE.
100
 ****************************************************************************/
101
102
#include "wkt2_parser.h"
103
104
105
106
# ifndef YY_CAST
107
#  ifdef __cplusplus
108
#   define YY_CAST(Type, Val) static_cast<Type> (Val)
109
#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
110
#  else
111
0
#   define YY_CAST(Type, Val) ((Type) (Val))
112
#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
113
#  endif
114
# endif
115
# ifndef YY_NULLPTR
116
#  if defined __cplusplus
117
#   if 201103L <= __cplusplus
118
#    define YY_NULLPTR nullptr
119
#   else
120
#    define YY_NULLPTR 0
121
#   endif
122
#  else
123
0
#   define YY_NULLPTR ((void*)0)
124
#  endif
125
# endif
126
127
/* Enabling verbose error messages.  */
128
#ifdef YYERROR_VERBOSE
129
# undef YYERROR_VERBOSE
130
# define YYERROR_VERBOSE 1
131
#else
132
# define YYERROR_VERBOSE 1
133
#endif
134
135
/* Use api.header.include to #include this header
136
   instead of duplicating it here.  */
137
#ifndef YY_PJ_WKT2_WKT2_GENERATED_PARSER_H_INCLUDED
138
# define YY_PJ_WKT2_WKT2_GENERATED_PARSER_H_INCLUDED
139
/* Debug traces.  */
140
#ifndef YYDEBUG
141
# define YYDEBUG 0
142
#endif
143
#if YYDEBUG
144
extern int pj_wkt2_debug;
145
#endif
146
147
/* Token type.  */
148
#ifndef YYTOKENTYPE
149
# define YYTOKENTYPE
150
  enum yytokentype
151
  {
152
    END = 0,
153
    T_PROJECTION = 258,
154
    T_DATUM = 259,
155
    T_SPHEROID = 260,
156
    T_PRIMEM = 261,
157
    T_UNIT = 262,
158
    T_AXIS = 263,
159
    T_PARAMETER = 264,
160
    T_GEODCRS = 265,
161
    T_LENGTHUNIT = 266,
162
    T_ANGLEUNIT = 267,
163
    T_SCALEUNIT = 268,
164
    T_TIMEUNIT = 269,
165
    T_ELLIPSOID = 270,
166
    T_CS = 271,
167
    T_ID = 272,
168
    T_PROJCRS = 273,
169
    T_BASEGEODCRS = 274,
170
    T_MERIDIAN = 275,
171
    T_BEARING = 276,
172
    T_ORDER = 277,
173
    T_ANCHOR = 278,
174
    T_ANCHOREPOCH = 279,
175
    T_CONVERSION = 280,
176
    T_METHOD = 281,
177
    T_REMARK = 282,
178
    T_GEOGCRS = 283,
179
    T_BASEGEOGCRS = 284,
180
    T_SCOPE = 285,
181
    T_AREA = 286,
182
    T_BBOX = 287,
183
    T_CITATION = 288,
184
    T_URI = 289,
185
    T_VERTCRS = 290,
186
    T_VDATUM = 291,
187
    T_GEOIDMODEL = 292,
188
    T_COMPOUNDCRS = 293,
189
    T_PARAMETERFILE = 294,
190
    T_COORDINATEOPERATION = 295,
191
    T_SOURCECRS = 296,
192
    T_TARGETCRS = 297,
193
    T_INTERPOLATIONCRS = 298,
194
    T_OPERATIONACCURACY = 299,
195
    T_CONCATENATEDOPERATION = 300,
196
    T_STEP = 301,
197
    T_BOUNDCRS = 302,
198
    T_ABRIDGEDTRANSFORMATION = 303,
199
    T_DERIVINGCONVERSION = 304,
200
    T_TDATUM = 305,
201
    T_CALENDAR = 306,
202
    T_TIMEORIGIN = 307,
203
    T_TIMECRS = 308,
204
    T_VERTICALEXTENT = 309,
205
    T_TIMEEXTENT = 310,
206
    T_USAGE = 311,
207
    T_DYNAMIC = 312,
208
    T_FRAMEEPOCH = 313,
209
    T_MODEL = 314,
210
    T_VELOCITYGRID = 315,
211
    T_ENSEMBLE = 316,
212
    T_MEMBER = 317,
213
    T_ENSEMBLEACCURACY = 318,
214
    T_DERIVEDPROJCRS = 319,
215
    T_BASEPROJCRS = 320,
216
    T_EDATUM = 321,
217
    T_ENGCRS = 322,
218
    T_PDATUM = 323,
219
    T_PARAMETRICCRS = 324,
220
    T_PARAMETRICUNIT = 325,
221
    T_BASEVERTCRS = 326,
222
    T_BASEENGCRS = 327,
223
    T_BASEPARAMCRS = 328,
224
    T_BASETIMECRS = 329,
225
    T_EPOCH = 330,
226
    T_COORDEPOCH = 331,
227
    T_COORDINATEMETADATA = 332,
228
    T_POINTMOTIONOPERATION = 333,
229
    T_VERSION = 334,
230
    T_AXISMINVALUE = 335,
231
    T_AXISMAXVALUE = 336,
232
    T_RANGEMEANING = 337,
233
    T_exact = 338,
234
    T_wraparound = 339,
235
    T_DEFININGTRANSFORMATION = 340,
236
    T_GEODETICCRS = 341,
237
    T_GEODETICDATUM = 342,
238
    T_PROJECTEDCRS = 343,
239
    T_PRIMEMERIDIAN = 344,
240
    T_GEOGRAPHICCRS = 345,
241
    T_TRF = 346,
242
    T_VERTICALCRS = 347,
243
    T_VERTICALDATUM = 348,
244
    T_VRF = 349,
245
    T_TIMEDATUM = 350,
246
    T_TEMPORALQUANTITY = 351,
247
    T_ENGINEERINGDATUM = 352,
248
    T_ENGINEERINGCRS = 353,
249
    T_PARAMETRICDATUM = 354,
250
    T_AFFINE = 355,
251
    T_CARTESIAN = 356,
252
    T_CYLINDRICAL = 357,
253
    T_ELLIPSOIDAL = 358,
254
    T_LINEAR = 359,
255
    T_PARAMETRIC = 360,
256
    T_POLAR = 361,
257
    T_SPHERICAL = 362,
258
    T_VERTICAL = 363,
259
    T_TEMPORAL = 364,
260
    T_TEMPORALCOUNT = 365,
261
    T_TEMPORALMEASURE = 366,
262
    T_ORDINAL = 367,
263
    T_TEMPORALDATETIME = 368,
264
    T_NORTH = 369,
265
    T_NORTHNORTHEAST = 370,
266
    T_NORTHEAST = 371,
267
    T_EASTNORTHEAST = 372,
268
    T_EAST = 373,
269
    T_EASTSOUTHEAST = 374,
270
    T_SOUTHEAST = 375,
271
    T_SOUTHSOUTHEAST = 376,
272
    T_SOUTH = 377,
273
    T_SOUTHSOUTHWEST = 378,
274
    T_SOUTHWEST = 379,
275
    T_WESTSOUTHWEST = 380,
276
    T_WEST = 381,
277
    T_WESTNORTHWEST = 382,
278
    T_NORTHWEST = 383,
279
    T_NORTHNORTHWEST = 384,
280
    T_UP = 385,
281
    T_DOWN = 386,
282
    T_GEOCENTRICX = 387,
283
    T_GEOCENTRICY = 388,
284
    T_GEOCENTRICZ = 389,
285
    T_COLUMNPOSITIVE = 390,
286
    T_COLUMNNEGATIVE = 391,
287
    T_ROWPOSITIVE = 392,
288
    T_ROWNEGATIVE = 393,
289
    T_DISPLAYRIGHT = 394,
290
    T_DISPLAYLEFT = 395,
291
    T_DISPLAYUP = 396,
292
    T_DISPLAYDOWN = 397,
293
    T_FORWARD = 398,
294
    T_AFT = 399,
295
    T_PORT = 400,
296
    T_STARBOARD = 401,
297
    T_CLOCKWISE = 402,
298
    T_COUNTERCLOCKWISE = 403,
299
    T_TOWARDS = 404,
300
    T_AWAYFROM = 405,
301
    T_FUTURE = 406,
302
    T_PAST = 407,
303
    T_UNSPECIFIED = 408,
304
    T_STRING = 409,
305
    T_UNSIGNED_INTEGER_DIFFERENT_ONE_TWO_THREE = 410
306
  };
307
#endif
308
309
/* Value type.  */
310
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
311
typedef int YYSTYPE;
312
# define YYSTYPE_IS_TRIVIAL 1
313
# define YYSTYPE_IS_DECLARED 1
314
#endif
315
316
317
318
int pj_wkt2_parse (pj_wkt2_parse_context *context);
319
320
#endif /* !YY_PJ_WKT2_WKT2_GENERATED_PARSER_H_INCLUDED  */
321
322
323
324
#ifdef short
325
# undef short
326
#endif
327
328
/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
329
   <limits.h> and (if available) <stdint.h> are included
330
   so that the code can choose integer types of a good width.  */
331
332
#ifndef __PTRDIFF_MAX__
333
# include <limits.h> /* INFRINGES ON USER NAME SPACE */
334
# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
335
#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
336
#  define YY_STDINT_H
337
# endif
338
#endif
339
340
/* Narrow types that promote to a signed type and that can represent a
341
   signed or unsigned integer of at least N bits.  In tables they can
342
   save space and decrease cache pressure.  Promoting to a signed type
343
   helps avoid bugs in integer arithmetic.  */
344
345
#ifdef __INT_LEAST8_MAX__
346
typedef __INT_LEAST8_TYPE__ yytype_int8;
347
#elif defined YY_STDINT_H
348
typedef int_least8_t yytype_int8;
349
#else
350
typedef signed char yytype_int8;
351
#endif
352
353
#ifdef __INT_LEAST16_MAX__
354
typedef __INT_LEAST16_TYPE__ yytype_int16;
355
#elif defined YY_STDINT_H
356
typedef int_least16_t yytype_int16;
357
#else
358
typedef short yytype_int16;
359
#endif
360
361
#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
362
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
363
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
364
       && UINT_LEAST8_MAX <= INT_MAX)
365
typedef uint_least8_t yytype_uint8;
366
#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
367
typedef unsigned char yytype_uint8;
368
#else
369
typedef short yytype_uint8;
370
#endif
371
372
#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
373
typedef __UINT_LEAST16_TYPE__ yytype_uint16;
374
#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
375
       && UINT_LEAST16_MAX <= INT_MAX)
376
typedef uint_least16_t yytype_uint16;
377
#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
378
typedef unsigned short yytype_uint16;
379
#else
380
typedef int yytype_uint16;
381
#endif
382
383
#ifndef YYPTRDIFF_T
384
# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
385
0
#  define YYPTRDIFF_T __PTRDIFF_TYPE__
386
#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
387
# elif defined PTRDIFF_MAX
388
#  ifndef ptrdiff_t
389
#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
390
#  endif
391
#  define YYPTRDIFF_T ptrdiff_t
392
#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
393
# else
394
#  define YYPTRDIFF_T long
395
#  define YYPTRDIFF_MAXIMUM LONG_MAX
396
# endif
397
#endif
398
399
#ifndef YYSIZE_T
400
# ifdef __SIZE_TYPE__
401
#  define YYSIZE_T __SIZE_TYPE__
402
# elif defined size_t
403
#  define YYSIZE_T size_t
404
# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
405
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
406
#  define YYSIZE_T size_t
407
# else
408
#  define YYSIZE_T unsigned
409
# endif
410
#endif
411
412
#define YYSIZE_MAXIMUM                                  \
413
0
  YY_CAST (YYPTRDIFF_T,                                 \
414
           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
415
            ? YYPTRDIFF_MAXIMUM                         \
416
            : YY_CAST (YYSIZE_T, -1)))
417
418
0
#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
419
420
/* Stored state numbers (used for stacks). */
421
typedef yytype_int16 yy_state_t;
422
423
/* State numbers in computations.  */
424
typedef int yy_state_fast_t;
425
426
#ifndef YY_
427
# if defined YYENABLE_NLS && YYENABLE_NLS
428
#  if ENABLE_NLS
429
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
430
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
431
#  endif
432
# endif
433
# ifndef YY_
434
0
#  define YY_(Msgid) Msgid
435
# endif
436
#endif
437
438
#ifndef YY_ATTRIBUTE_PURE
439
# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
440
#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
441
# else
442
#  define YY_ATTRIBUTE_PURE
443
# endif
444
#endif
445
446
#ifndef YY_ATTRIBUTE_UNUSED
447
# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
448
#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
449
# else
450
#  define YY_ATTRIBUTE_UNUSED
451
# endif
452
#endif
453
454
/* Suppress unused-variable warnings by "using" E.  */
455
#if ! defined lint || defined __GNUC__
456
0
# define YYUSE(E) ((void) (E))
457
#else
458
# define YYUSE(E) /* empty */
459
#endif
460
461
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
462
/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
463
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
464
    _Pragma ("GCC diagnostic push")                                     \
465
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
466
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
467
# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
468
    _Pragma ("GCC diagnostic pop")
469
#else
470
0
# define YY_INITIAL_VALUE(Value) Value
471
#endif
472
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
473
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
474
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
475
#endif
476
#ifndef YY_INITIAL_VALUE
477
# define YY_INITIAL_VALUE(Value) /* Nothing. */
478
#endif
479
480
#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
481
# define YY_IGNORE_USELESS_CAST_BEGIN                          \
482
    _Pragma ("GCC diagnostic push")                            \
483
    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
484
# define YY_IGNORE_USELESS_CAST_END            \
485
    _Pragma ("GCC diagnostic pop")
486
#endif
487
#ifndef YY_IGNORE_USELESS_CAST_BEGIN
488
# define YY_IGNORE_USELESS_CAST_BEGIN
489
# define YY_IGNORE_USELESS_CAST_END
490
#endif
491
492
493
0
#define YY_ASSERT(E) ((void) (0 && (E)))
494
495
#if ! defined yyoverflow || YYERROR_VERBOSE
496
497
/* The parser invokes alloca or malloc; define the necessary symbols.  */
498
499
# ifdef YYSTACK_USE_ALLOCA
500
#  if YYSTACK_USE_ALLOCA
501
#   ifdef __GNUC__
502
#    define YYSTACK_ALLOC __builtin_alloca
503
#   elif defined __BUILTIN_VA_ARG_INCR
504
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
505
#   elif defined _AIX
506
#    define YYSTACK_ALLOC __alloca
507
#   elif defined _MSC_VER
508
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
509
#    define alloca _alloca
510
#   else
511
#    define YYSTACK_ALLOC alloca
512
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
513
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
514
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
515
#     ifndef EXIT_SUCCESS
516
#      define EXIT_SUCCESS 0
517
#     endif
518
#    endif
519
#   endif
520
#  endif
521
# endif
522
523
# ifdef YYSTACK_ALLOC
524
   /* Pacify GCC's 'empty if-body' warning.  */
525
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
526
#  ifndef YYSTACK_ALLOC_MAXIMUM
527
    /* The OS might guarantee only one guard page at the bottom of the stack,
528
       and a page size can be as small as 4096 bytes.  So we cannot safely
529
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
530
       to allow for a few compiler-allocated temporary stack slots.  */
531
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
532
#  endif
533
# else
534
#  define YYSTACK_ALLOC YYMALLOC
535
0
#  define YYSTACK_FREE YYFREE
536
#  ifndef YYSTACK_ALLOC_MAXIMUM
537
0
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
538
#  endif
539
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
540
       && ! ((defined YYMALLOC || defined malloc) \
541
             && (defined YYFREE || defined free)))
542
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
543
#   ifndef EXIT_SUCCESS
544
#    define EXIT_SUCCESS 0
545
#   endif
546
#  endif
547
#  ifndef YYMALLOC
548
#   define YYMALLOC malloc
549
#   if ! defined malloc && ! defined EXIT_SUCCESS
550
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
551
#   endif
552
#  endif
553
#  ifndef YYFREE
554
0
#   define YYFREE free
555
#   if ! defined free && ! defined EXIT_SUCCESS
556
void free (void *); /* INFRINGES ON USER NAME SPACE */
557
#   endif
558
#  endif
559
# endif
560
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
561
562
563
#if (! defined yyoverflow \
564
     && (! defined __cplusplus \
565
         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
566
567
/* A type that is properly aligned for any stack member.  */
568
union yyalloc
569
{
570
  yy_state_t yyss_alloc;
571
  YYSTYPE yyvs_alloc;
572
};
573
574
/* The size of the maximum gap between one aligned stack and the next.  */
575
0
# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
576
577
/* The size of an array large to enough to hold all stacks, each with
578
   N elements.  */
579
# define YYSTACK_BYTES(N) \
580
     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
581
      + YYSTACK_GAP_MAXIMUM)
582
583
# define YYCOPY_NEEDED 1
584
585
/* Relocate STACK from its old location to the new one.  The
586
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
587
   elements in the stack, and YYPTR gives the new location of the
588
   stack.  Advance YYPTR to a properly aligned location for the next
589
   stack.  */
590
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
591
0
    do                                                                  \
592
0
      {                                                                 \
593
0
        YYPTRDIFF_T yynewbytes;                                         \
594
0
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
595
0
        Stack = &yyptr->Stack_alloc;                                    \
596
0
        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
597
0
        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
598
0
      }                                                                 \
599
0
    while (0)
600
601
#endif
602
603
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
604
/* Copy COUNT objects from SRC to DST.  The source and destination do
605
   not overlap.  */
606
# ifndef YYCOPY
607
#  if defined __GNUC__ && 1 < __GNUC__
608
#   define YYCOPY(Dst, Src, Count) \
609
0
      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
610
#  else
611
#   define YYCOPY(Dst, Src, Count)              \
612
      do                                        \
613
        {                                       \
614
          YYPTRDIFF_T yyi;                      \
615
          for (yyi = 0; yyi < (Count); yyi++)   \
616
            (Dst)[yyi] = (Src)[yyi];            \
617
        }                                       \
618
      while (0)
619
#  endif
620
# endif
621
#endif /* !YYCOPY_NEEDED */
622
623
/* YYFINAL -- State number of the termination state.  */
624
0
#define YYFINAL  106
625
/* YYLAST -- Last index in YYTABLE.  */
626
0
#define YYLAST   4007
627
628
/* YYNTOKENS -- Number of terminals.  */
629
0
#define YYNTOKENS  171
630
/* YYNNTS -- Number of nonterminals.  */
631
#define YYNNTS  375
632
/* YYNRULES -- Number of rules.  */
633
#define YYNRULES  750
634
/* YYNSTATES -- Number of states.  */
635
#define YYNSTATES  1533
636
637
0
#define YYUNDEFTOK  2
638
0
#define YYMAXUTOK   410
639
640
641
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
642
   as returned by yylex, with out-of-bounds checking.  */
643
#define YYTRANSLATE(YYX)                                                \
644
0
  (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
645
646
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
647
   as returned by yylex.  */
648
static const yytype_uint8 yytranslate[] =
649
{
650
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
651
       2,     2,     2,     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
     167,   169,     2,   161,   170,   162,   156,     2,     2,   158,
655
     159,   160,     2,     2,     2,     2,     2,     2,   163,     2,
656
       2,     2,     2,     2,     2,     2,     2,     2,     2,   157,
657
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
658
       2,     2,     2,     2,   164,     2,     2,     2,     2,     2,
659
     165,   166,     2,   168,     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,     2,     2,     2,     2,
671
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
672
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
673
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
674
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
675
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
676
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
677
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
678
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
679
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
680
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
681
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
682
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
683
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
684
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
685
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
686
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
687
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
688
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
689
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
690
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
691
     155
692
};
693
694
#if YYDEBUG
695
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
696
static const yytype_int16 yyrline[] =
697
{
698
       0,   214,   214,   214,   214,   214,   214,   214,   215,   215,
699
     215,   216,   219,   219,   220,   220,   220,   221,   223,   223,
700
     227,   231,   231,   233,   235,   237,   237,   239,   239,   241,
701
     243,   245,   247,   249,   249,   251,   251,   253,   253,   253,
702
     253,   255,   255,   259,   261,   265,   266,   267,   269,   269,
703
     271,   273,   275,   277,   281,   282,   285,   286,   288,   290,
704
     292,   295,   296,   297,   299,   301,   303,   303,   305,   308,
705
     309,   311,   311,   316,   316,   318,   318,   320,   322,   324,
706
     328,   329,   332,   333,   334,   336,   336,   337,   340,   341,
707
     345,   346,   347,   351,   352,   353,   354,   356,   360,   362,
708
     365,   367,   370,   371,   372,   373,   374,   375,   376,   377,
709
     378,   379,   380,   381,   382,   383,   384,   387,   388,   389,
710
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
711
     400,   401,   405,   407,   409,   413,   418,   420,   422,   424,
712
     426,   430,   435,   436,   438,   440,   442,   446,   450,   452,
713
     452,   454,   454,   459,   464,   465,   466,   467,   468,   469,
714
     470,   472,   474,   476,   476,   478,   478,   480,   482,   484,
715
     486,   488,   490,   494,   496,   500,   500,   503,   506,   511,
716
     511,   511,   511,   511,   514,   519,   519,   519,   519,   522,
717
     526,   527,   529,   545,   549,   550,   552,   552,   554,   554,
718
     560,   560,   562,   564,   571,   571,   571,   571,   573,   575,
719
     582,   589,   590,   591,   592,   594,   595,   598,   600,   603,
720
     604,   605,   606,   607,   609,   610,   611,   612,   614,   621,
721
     622,   623,   624,   626,   633,   640,   641,   642,   644,   646,
722
     646,   646,   646,   646,   646,   646,   646,   646,   648,   648,
723
     650,   650,   652,   652,   652,   654,   659,   665,   670,   673,
724
     676,   677,   678,   679,   680,   681,   682,   683,   684,   687,
725
     688,   689,   690,   691,   692,   693,   694,   697,   698,   699,
726
     700,   701,   702,   703,   704,   707,   708,   711,   712,   713,
727
     714,   715,   719,   720,   721,   722,   723,   724,   725,   726,
728
     727,   730,   731,   732,   733,   736,   737,   738,   739,   742,
729
     743,   746,   747,   748,   753,   754,   757,   758,   759,   760,
730
     761,   764,   765,   766,   767,   768,   769,   770,   771,   772,
731
     773,   774,   775,   776,   777,   778,   779,   780,   781,   782,
732
     783,   784,   785,   786,   787,   788,   789,   790,   791,   792,
733
     793,   794,   795,   796,   797,   798,   799,   801,   804,   806,
734
     808,   810,   812,   815,   816,   817,   818,   820,   821,   822,
735
     823,   824,   826,   827,   829,   830,   832,   833,   834,   834,
736
     836,   852,   852,   854,   862,   863,   865,   866,   868,   876,
737
     877,   879,   881,   883,   888,   889,   891,   893,   895,   897,
738
     899,   901,   903,   908,   912,   914,   917,   920,   921,   922,
739
     924,   925,   927,   932,   933,   935,   935,   937,   941,   941,
740
     941,   943,   943,   945,   953,   962,   970,   980,   981,   983,
741
     985,   985,   987,   987,   990,   991,   995,  1001,  1002,  1003,
742
    1005,  1005,  1007,  1009,  1011,  1015,  1020,  1020,  1022,  1025,
743
    1026,  1031,  1032,  1034,  1039,  1039,  1039,  1041,  1043,  1044,
744
    1045,  1046,  1047,  1048,  1049,  1050,  1052,  1055,  1057,  1059,
745
    1062,  1064,  1064,  1064,  1068,  1074,  1074,  1078,  1078,  1079,
746
    1079,  1081,  1086,  1087,  1088,  1089,  1090,  1092,  1098,  1103,
747
    1109,  1111,  1113,  1115,  1119,  1125,  1126,  1127,  1129,  1131,
748
    1133,  1137,  1137,  1139,  1141,  1146,  1147,  1148,  1150,  1152,
749
    1154,  1156,  1160,  1160,  1162,  1168,  1175,  1175,  1178,  1185,
750
    1186,  1187,  1188,  1189,  1191,  1192,  1193,  1195,  1199,  1201,
751
    1203,  1203,  1207,  1212,  1212,  1212,  1216,  1221,  1221,  1223,
752
    1227,  1227,  1229,  1230,  1231,  1232,  1236,  1241,  1243,  1247,
753
    1247,  1251,  1256,  1258,  1262,  1263,  1264,  1265,  1266,  1268,
754
    1268,  1270,  1273,  1275,  1275,  1277,  1279,  1281,  1285,  1291,
755
    1292,  1293,  1294,  1296,  1298,  1302,  1307,  1309,  1312,  1318,
756
    1319,  1320,  1322,  1326,  1332,  1332,  1332,  1332,  1332,  1332,
757
    1336,  1341,  1343,  1348,  1348,  1349,  1351,  1351,  1353,  1360,
758
    1360,  1362,  1369,  1369,  1371,  1378,  1385,  1390,  1391,  1392,
759
    1394,  1400,  1405,  1413,  1419,  1421,  1423,  1434,  1435,  1436,
760
    1438,  1440,  1440,  1441,  1441,  1445,  1451,  1451,  1453,  1458,
761
    1464,  1469,  1475,  1480,  1485,  1491,  1496,  1501,  1507,  1512,
762
    1517,  1523,  1523,  1524,  1524,  1525,  1525,  1526,  1526,  1527,
763
    1527,  1528,  1528,  1531,  1531,  1533,  1534,  1535,  1537,  1539,
764
    1543,  1546,  1546,  1549,  1550,  1551,  1553,  1557,  1558,  1560,
765
    1562,  1562,  1563,  1563,  1564,  1564,  1564,  1565,  1566,  1566,
766
    1567,  1567,  1568,  1568,  1570,  1570,  1571,  1571,  1572,  1573,
767
    1573,  1577,  1581,  1582,  1585,  1590,  1591,  1592,  1593,  1594,
768
    1595,  1596,  1598,  1600,  1602,  1605,  1607,  1609,  1611,  1613,
769
    1615,  1617,  1619,  1621,  1623,  1628,  1632,  1633,  1636,  1641,
770
    1642,  1643,  1644,  1645,  1647,  1652,  1657,  1658,  1661,  1667,
771
    1667,  1667,  1667,  1669,  1670,  1671,  1672,  1674,  1676,  1681,
772
    1687,  1689,  1694,  1695,  1698,  1706,  1707,  1708,  1709,  1711,
773
    1713
774
};
775
#endif
776
777
#if YYDEBUG || YYERROR_VERBOSE || 1
778
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
779
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
780
static const char *const yytname[] =
781
{
782
  "\"end of string\"", "error", "$undefined", "\"PROJECTION\"",
783
  "\"DATUM\"", "\"SPHEROID\"", "\"PRIMEM\"", "\"UNIT\"", "\"AXIS\"",
784
  "\"PARAMETER\"", "\"GEODCRS\"", "\"LENGTHUNIT\"", "\"ANGLEUNIT\"",
785
  "\"SCALEUNIT\"", "\"TIMEUNIT\"", "\"ELLIPSOID\"", "\"CS\"", "\"ID\"",
786
  "\"PROJCRS\"", "\"BASEGEODCRS\"", "\"MERIDIAN\"", "\"BEARING\"",
787
  "\"ORDER\"", "\"ANCHOR\"", "\"ANCHOREPOCH\"", "\"CONVERSION\"",
788
  "\"METHOD\"", "\"REMARK\"", "\"GEOGCRS\"", "\"BASEGEOGCRS\"",
789
  "\"SCOPE\"", "\"AREA\"", "\"BBOX\"", "\"CITATION\"", "\"URI\"",
790
  "\"VERTCRS\"", "\"VDATUM\"", "\"GEOIDMODEL\"", "\"COMPOUNDCRS\"",
791
  "\"PARAMETERFILE\"", "\"COORDINATEOPERATION\"", "\"SOURCECRS\"",
792
  "\"TARGETCRS\"", "\"INTERPOLATIONCRS\"", "\"OPERATIONACCURACY\"",
793
  "\"CONCATENATEDOPERATION\"", "\"STEP\"", "\"BOUNDCRS\"",
794
  "\"ABRIDGEDTRANSFORMATION\"", "\"DERIVINGCONVERSION\"", "\"TDATUM\"",
795
  "\"CALENDAR\"", "\"TIMEORIGIN\"", "\"TIMECRS\"", "\"VERTICALEXTENT\"",
796
  "\"TIMEEXTENT\"", "\"USAGE\"", "\"DYNAMIC\"", "\"FRAMEEPOCH\"",
797
  "\"MODEL\"", "\"VELOCITYGRID\"", "\"ENSEMBLE\"", "\"MEMBER\"",
798
  "\"ENSEMBLEACCURACY\"", "\"DERIVEDPROJCRS\"", "\"BASEPROJCRS\"",
799
  "\"EDATUM\"", "\"ENGCRS\"", "\"PDATUM\"", "\"PARAMETRICCRS\"",
800
  "\"PARAMETRICUNIT\"", "\"BASEVERTCRS\"", "\"BASEENGCRS\"",
801
  "\"BASEPARAMCRS\"", "\"BASETIMECRS\"", "\"EPOCH\"", "\"COORDEPOCH\"",
802
  "\"COORDINATEMETADATA\"", "\"POINTMOTIONOPERATION\"", "\"VERSION\"",
803
  "\"AXISMINVALUE\"", "\"AXISMAXVALUE\"", "\"RANGEMEANING\"", "\"exact\"",
804
  "\"wraparound\"", "\"DEFININGTRANSFORMATION\"", "\"GEODETICCRS\"",
805
  "\"GEODETICDATUM\"", "\"PROJECTEDCRS\"", "\"PRIMEMERIDIAN\"",
806
  "\"GEOGRAPHICCRS\"", "\"TRF\"", "\"VERTICALCRS\"", "\"VERTICALDATUM\"",
807
  "\"VRF\"", "\"TIMEDATUM\"", "\"TEMPORALQUANTITY\"",
808
  "\"ENGINEERINGDATUM\"", "\"ENGINEERINGCRS\"", "\"PARAMETRICDATUM\"",
809
  "\"affine\"", "\"Cartesian\"", "\"cylindrical\"", "\"ellipsoidal\"",
810
  "\"linear\"", "\"parametric\"", "\"polar\"", "\"spherical\"",
811
  "\"vertical\"", "\"temporal\"", "\"temporalCount\"",
812
  "\"temporalMeasure\"", "\"ordinal\"", "\"temporalDateTime\"",
813
  "\"north\"", "\"northNorthEast\"", "\"northEast\"", "\"eastNorthEast\"",
814
  "\"east\"", "\"eastSouthEast\"", "\"southEast\"", "\"southSouthEast\"",
815
  "\"south\"", "\"southSouthWest\"", "\"southWest\"", "\"westSouthWest\"",
816
  "\"west\"", "\"westNorthWest\"", "\"northWest\"", "\"northNorthWest\"",
817
  "\"up\"", "\"down\"", "\"geocentricX\"", "\"geocentricY\"",
818
  "\"geocentricZ\"", "\"columnPositive\"", "\"columnNegative\"",
819
  "\"rowPositive\"", "\"rowNegative\"", "\"displayRight\"",
820
  "\"displayLeft\"", "\"displayUp\"", "\"displayDown\"", "\"forward\"",
821
  "\"aft\"", "\"port\"", "\"starboard\"", "\"clockwise\"",
822
  "\"counterClockwise\"", "\"towards\"", "\"awayFrom\"", "\"future\"",
823
  "\"part\"", "\"unspecified\"", "\"string\"", "\"unsigned integer\"",
824
  "'.'", "'E'", "'1'", "'2'", "'3'", "'+'", "'-'", "':'", "'T'", "'Z'",
825
  "'['", "'('", "']'", "')'", "','", "$accept", "input", "datum", "crs",
826
  "period", "number", "signed_numeric_literal_with_sign",
827
  "signed_numeric_literal", "unsigned_numeric_literal", "opt_sign",
828
  "approximate_numeric_literal", "mantissa", "exponent", "signed_integer",
829
  "exact_numeric_literal", "opt_period_unsigned_integer",
830
  "unsigned_integer", "sign", "colon", "hyphen", "datetime",
831
  "opt_24_hour_clock", "year", "month", "day", "_24_hour_clock",
832
  "opt_colon_minute_colon_second_time_zone_designator",
833
  "opt_colon_second_time_zone_designator", "time_designator", "hour",
834
  "minute", "second_time_zone_designator", "seconds_integer",
835
  "seconds_fraction", "time_zone_designator", "utc_designator",
836
  "local_time_zone_designator", "opt_colon_minute", "left_delimiter",
837
  "right_delimiter", "wkt_separator", "quoted_latin_text",
838
  "quoted_unicode_text", "opt_separator_scope_extent_identifier_remark",
839
  "no_opt_separator_scope_extent_identifier_remark",
840
  "opt_identifier_list_remark",
841
  "scope_extent_opt_identifier_list_opt_remark",
842
  "scope_extent_opt_identifier_list_remark",
843
  "usage_list_opt_identifier_list_remark", "usage", "usage_keyword",
844
  "scope", "scope_keyword", "scope_text_description", "extent",
845
  "extent_opt_identifier_list_remark", "area_description",
846
  "area_description_keyword", "area_text_description",
847
  "geographic_bounding_box", "geographic_bounding_box_keyword",
848
  "lower_left_latitude", "lower_left_longitude", "upper_right_latitude",
849
  "upper_right_longitude", "vertical_extent", "opt_separator_length_unit",
850
  "vertical_extent_keyword", "vertical_extent_minimum_height",
851
  "vertical_extent_maximum_height", "temporal_extent",
852
  "temporal_extent_keyword", "temporal_extent_start",
853
  "temporal_extent_end", "identifier",
854
  "opt_version_authority_citation_uri", "identifier_keyword",
855
  "authority_name", "authority_unique_identifier", "version",
856
  "authority_citation", "citation_keyword", "citation", "id_uri",
857
  "uri_keyword", "uri", "remark", "remark_keyword", "unit", "spatial_unit",
858
  "angle_or_length_or_parametric_or_scale_unit",
859
  "angle_or_length_or_parametric_or_scale_unit_keyword",
860
  "angle_or_length_or_scale_unit", "angle_or_length_or_scale_unit_keyword",
861
  "angle_unit", "opt_separator_identifier_list", "length_unit",
862
  "time_unit", "opt_separator_conversion_factor_identifier_list",
863
  "angle_unit_keyword", "length_unit_keyword", "time_unit_keyword",
864
  "unit_name", "conversion_factor",
865
  "coordinate_system_scope_extent_identifier_remark",
866
  "coordinate_system_defining_transformation_scope_extent_identifier_remark",
867
  "spatial_cs_scope_extent_identifier_remark",
868
  "spatial_cs_defining_transformation_scope_extent_identifier_remark",
869
  "opt_separator_spatial_axis_list_opt_separator_cs_unit_scope_extent_identifier_remark",
870
  "opt_defining_transformation_separator_scope_extent_identifier_remark",
871
  "defining_transformation", "defining_transformation_name",
872
  "no_opt_defining_transformation_separator_scope_extent_identifier_remark",
873
  "opt_separator_spatial_axis_list_opt_defining_transformation_opt_separator_cs_unit_scope_extent_identifier_remark",
874
  "wkt2015temporal_cs_scope_extent_identifier_remark",
875
  "opt_separator_cs_unit_scope_extent_identifier_remark",
876
  "temporalcountmeasure_cs_scope_extent_identifier_remark",
877
  "ordinaldatetime_cs_scope_extent_identifier_remark",
878
  "opt_separator_ordinaldatetime_axis_list_scope_extent_identifier_remark",
879
  "cs_keyword", "spatial_cs_type", "temporalcountmeasure_cs_type",
880
  "ordinaldatetime_cs_type", "dimension", "spatial_axis",
881
  "temporalcountmeasure_axis", "ordinaldatetime_axis", "axis_keyword",
882
  "axis_name_abbrev",
883
  "axis_direction_opt_axis_order_spatial_unit_identifier_list",
884
  "north_south_options_spatial_unit",
885
  "clockwise_counter_clockwise_options_spatial_unit",
886
  "axis_direction_except_n_s_cw_ccw_opt_axis_spatial_unit_identifier_list",
887
  "axis_direction_except_n_s_cw_ccw_opt_axis_spatial_unit_identifier_list_options",
888
  "axis_direction_opt_axis_order_identifier_list", "north_south_options",
889
  "clockwise_counter_clockwise_options",
890
  "axis_direction_except_n_s_cw_ccw_opt_axis_identifier_list",
891
  "axis_direction_except_n_s_cw_ccw_opt_axis_identifier_list_options",
892
  "opt_separator_axis_time_unit_identifier_list",
893
  "axis_direction_except_n_s_cw_ccw_opt_axis_time_unit_identifier_list_options",
894
  "axis_direction_except_n_s_cw_ccw", "meridian", "meridian_keyword",
895
  "bearing", "bearing_keyword", "axis_order", "axis_order_keyword",
896
  "axis_range_opt_separator_identifier_list",
897
  "opt_separator_axis_range_opt_separator_identifier_list",
898
  "axis_minimum_value", "axis_minimum_value_keyword", "axis_maximum_value",
899
  "axis_maximum_value_keyword", "axis_range_meaning",
900
  "axis_range_meaning_keyword", "axis_range_meaning_value", "cs_unit",
901
  "datum_ensemble", "geodetic_datum_ensemble_without_pm",
902
  "datum_ensemble_member_list_ellipsoid_accuracy_identifier_list",
903
  "opt_separator_datum_ensemble_identifier_list",
904
  "vertical_datum_ensemble",
905
  "datum_ensemble_member_list_accuracy_identifier_list",
906
  "datum_ensemble_keyword", "datum_ensemble_name", "datum_ensemble_member",
907
  "opt_datum_ensemble_member_identifier_list",
908
  "datum_ensemble_member_keyword", "datum_ensemble_member_name",
909
  "datum_ensemble_member_identifier", "datum_ensemble_accuracy",
910
  "datum_ensemble_accuracy_keyword", "accuracy",
911
  "datum_ensemble_identifier", "dynamic_crs", "dynamic_crs_keyword",
912
  "frame_reference_epoch", "frame_reference_epoch_keyword",
913
  "reference_epoch", "opt_separator_deformation_model_id",
914
  "deformation_model_id", "opt_separator_identifier",
915
  "deformation_model_id_keyword", "deformation_model_name", "geodetic_crs",
916
  "geographic_crs", "static_geodetic_crs", "dynamic_geodetic_crs",
917
  "static_geographic_crs", "dynamic_geographic_crs",
918
  "opt_prime_meridian_coordinate_system_defining_transformation_scope_extent_identifier_remark",
919
  "crs_name", "geodetic_crs_keyword", "geographic_crs_keyword",
920
  "geodetic_reference_frame_or_geodetic_datum_ensemble_without_pm",
921
  "ellipsoid", "opt_separator_length_unit_identifier_list",
922
  "ellipsoid_keyword", "ellipsoid_name", "semi_major_axis",
923
  "inverse_flattening", "prime_meridian", "prime_meridian_keyword",
924
  "prime_meridian_name", "irm_longitude_opt_separator_identifier_list",
925
  "geodetic_reference_frame_with_opt_pm",
926
  "geodetic_reference_frame_without_pm",
927
  "geodetic_reference_frame_keyword", "datum_name",
928
  "opt_separator_datum_anchor_anchor_epoch_identifier_list",
929
  "datum_anchor", "datum_anchor_keyword", "datum_anchor_description",
930
  "datum_anchor_epoch", "datum_anchor_epoch_keyword", "anchor_epoch",
931
  "projected_crs", "projected_crs_keyword", "base_geodetic_crs",
932
  "base_static_geodetic_crs",
933
  "opt_separator_pm_ellipsoidal_cs_unit_opt_separator_identifier_list",
934
  "base_dynamic_geodetic_crs", "base_static_geographic_crs",
935
  "base_dynamic_geographic_crs", "base_geodetic_crs_keyword",
936
  "base_geographic_crs_keyword", "base_crs_name", "ellipsoidal_cs_unit",
937
  "map_projection", "opt_separator_parameter_list_identifier_list",
938
  "map_projection_keyword", "map_projection_name", "map_projection_method",
939
  "map_projection_method_keyword", "map_projection_method_name",
940
  "map_projection_parameter", "opt_separator_param_unit_identifier_list",
941
  "parameter_keyword", "parameter_name", "parameter_value",
942
  "map_projection_parameter_unit", "vertical_crs", "static_vertical_crs",
943
  "dynamic_vertical_crs",
944
  "vertical_reference_frame_or_vertical_datum_ensemble",
945
  "vertical_cs_opt_geoid_model_id_scope_extent_identifier_remark",
946
  "opt_separator_cs_unit_opt_geoid_model_id_scope_extent_identifier_remark",
947
  "opt_geoid_model_id_list_opt_separator_scope_extent_identifier_remark",
948
  "geoid_model_id", "geoid_model_keyword", "geoid_model_name",
949
  "vertical_crs_keyword", "vertical_reference_frame",
950
  "vertical_reference_frame_keyword", "engineering_crs",
951
  "engineering_crs_keyword", "engineering_datum",
952
  "engineering_datum_keyword",
953
  "opt_separator_datum_anchor_identifier_list", "parametric_crs",
954
  "parametric_crs_keyword", "parametric_datum", "parametric_datum_keyword",
955
  "temporal_crs", "temporal_crs_keyword", "temporal_datum",
956
  "opt_separator_temporal_datum_end", "temporal_datum_keyword",
957
  "temporal_origin", "temporal_origin_keyword",
958
  "temporal_origin_description", "calendar", "calendar_keyword",
959
  "calendar_identifier", "deriving_conversion",
960
  "opt_separator_parameter_or_parameter_file_identifier_list",
961
  "deriving_conversion_keyword", "deriving_conversion_name",
962
  "operation_method", "operation_method_keyword", "operation_method_name",
963
  "operation_parameter", "opt_separator_parameter_unit_identifier_list",
964
  "parameter_unit", "length_or_angle_or_scale_or_time_or_parametric_unit",
965
  "length_or_angle_or_scale_or_time_or_parametric_unit_keyword",
966
  "operation_parameter_file", "parameter_file_keyword",
967
  "parameter_file_name", "derived_geodetic_crs", "derived_geographic_crs",
968
  "derived_static_geod_crs",
969
  "base_static_geod_crs_or_base_static_geog_crs",
970
  "derived_dynamic_geod_crs",
971
  "base_dynamic_geod_crs_or_base_dynamic_geog_crs",
972
  "derived_static_geog_crs", "derived_dynamic_geog_crs",
973
  "base_static_geod_crs", "opt_separator_pm_opt_separator_identifier_list",
974
  "base_dynamic_geod_crs", "base_static_geog_crs", "base_dynamic_geog_crs",
975
  "derived_projected_crs", "derived_projected_crs_keyword",
976
  "derived_crs_name", "base_projected_crs",
977
  "base_projected_crs_opt_separator_cs_identifier",
978
  "base_projected_crs_keyword", "base_geodetic_geographic_crs",
979
  "derived_vertical_crs", "base_vertical_crs", "base_static_vertical_crs",
980
  "base_dynamic_vertical_crs", "base_vertical_crs_keyword",
981
  "derived_engineering_crs", "base_engineering_crs",
982
  "base_engineering_crs_keyword", "derived_parametric_crs",
983
  "base_parametric_crs", "base_parametric_crs_keyword",
984
  "derived_temporal_crs", "base_temporal_crs", "base_temporal_crs_keyword",
985
  "compound_crs", "single_crs", "single_crs_or_bound_crs",
986
  "opt_wkt_separator_single_crs_list_opt_separator_scope_extent_identifier_remark",
987
  "compound_crs_keyword", "compound_crs_name", "metadata_coordinate_epoch",
988
  "coordinate_epoch_keyword", "coordinate_epoch", "coordinate_metadata",
989
  "coordinate_metadata_crs", "coordinate_metadata_keyword",
990
  "static_crs_coordinate_metadata", "dynamic_crs_coordinate_metadata",
991
  "coordinate_operation", "coordinate_operation_next",
992
  "coordinate_operation_end",
993
  "opt_parameter_or_parameter_file_list_opt_interpolation_crs_opt_operation_accuracy_opt_separator_scope_extent_identifier_remark",
994
  "operation_keyword", "operation_name", "operation_version",
995
  "operation_version_keyword", "operation_version_text", "source_crs",
996
  "source_crs_keyword", "target_crs", "target_crs_keyword",
997
  "interpolation_crs", "interpolation_crs_keyword", "operation_accuracy",
998
  "operation_accuracy_keyword", "point_motion_operation",
999
  "point_motion_operation_next", "point_motion_operation_end",
1000
  "opt_parameter_or_parameter_file_list_opt_operation_accuracy_opt_separator_scope_extent_identifier_remark",
1001
  "point_motion_keyword", "concatenated_operation",
1002
  "concatenated_operation_next", "concatenated_operation_end", "step",
1003
  "opt_concatenated_operation_end", "concatenated_operation_keyword",
1004
  "step_keyword", "bound_crs", "bound_crs_keyword",
1005
  "abridged_coordinate_transformation",
1006
  "abridged_coordinate_transformation_next",
1007
  "abridged_coordinate_transformation_end",
1008
  "opt_end_abridged_coordinate_transformation",
1009
  "abridged_transformation_keyword", "abridged_transformation_parameter", YY_NULLPTR
1010
};
1011
#endif
1012
1013
# ifdef YYPRINT
1014
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
1015
   (internal) symbol number NUM (which must be that of a token).  */
1016
static const yytype_int16 yytoknum[] =
1017
{
1018
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1019
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1020
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1021
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1022
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1023
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1024
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1025
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1026
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1027
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1028
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1029
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1030
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1031
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1032
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1033
     405,   406,   407,   408,   409,   410,    46,    69,    49,    50,
1034
      51,    43,    45,    58,    84,    90,    91,    40,    93,    41,
1035
      44
1036
};
1037
# endif
1038
1039
0
#define YYPACT_NINF (-1313)
1040
1041
#define yypact_value_is_default(Yyn) \
1042
0
  ((Yyn) == YYPACT_NINF)
1043
1044
#define YYTABLE_NINF (-691)
1045
1046
#define yytable_value_is_error(Yyn) \
1047
0
  0
1048
1049
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1050
     STATE-NUM.  */
1051
static const yytype_int16 yypact[] =
1052
{
1053
    2384, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313,
1054
   -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313,
1055
   -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313,
1056
   -1313, -1313, -1313, -1313, -1313, -1313, -1313,   144, -1313, -1313,
1057
   -1313,   395, -1313, -1313, -1313,   395, -1313, -1313, -1313, -1313,
1058
   -1313, -1313,   395,   395, -1313,   395, -1313,    35,   395, -1313,
1059
     395, -1313,   395, -1313, -1313, -1313,   395, -1313,   395, -1313,
1060
     395, -1313,   395, -1313,   395, -1313,   395, -1313,   395, -1313,
1061
     395, -1313, -1313, -1313, -1313, -1313, -1313, -1313,   395, -1313,
1062
   -1313, -1313, -1313, -1313, -1313,   395, -1313,   395, -1313,   395,
1063
   -1313,   395, -1313,   395, -1313,   395, -1313, -1313, -1313,    63,
1064
      63,    63,    63,    63, -1313,    81,    63,    63,    63,    63,
1065
      63,    63,    63,    63,    63,    63,    63,    63,    63,   959,
1066
      63,    63,    63,   187, -1313, -1313,    35, -1313,    35, -1313,
1067
      35,    35, -1313,    35, -1313, -1313, -1313,   395, -1313,    35,
1068
      35, -1313,    35,    35,    35,    35,    35,    35,    35,    35,
1069
      35, -1313,    35, -1313,    35, -1313, -1313, -1313, -1313,   157,
1070
   -1313, -1313, -1313, -1313, -1313,   199,   221,   242, -1313, -1313,
1071
   -1313, -1313,   414, -1313,    35, -1313,    35,    35,    35, -1313,
1072
      35,   395,  1210,   243,    82,    82,   755,    63,   305,   349,
1073
     127,   313,   492,   414,   194,   203,   414,   148,   414,    62,
1074
     146,   414,   200,  1129, -1313, -1313, -1313,   520,    73, -1313,
1075
   -1313,    73, -1313, -1313,    73, -1313, -1313,   379,   959, -1313,
1076
   -1313, -1313, -1313, -1313, -1313, -1313,   555, -1313, -1313, -1313,
1077
   -1313,   296,   312,   284,   755, -1313,    35, -1313,    35,   395,
1078
   -1313, -1313, -1313, -1313,   395,    35,   395,    35, -1313,   395,
1079
     395,    35,    35, -1313, -1313, -1313, -1313,    35,    35,    35,
1080
      35, -1313,    35, -1313,    35,    35,    35, -1313, -1313, -1313,
1081
   -1313,   395,   395, -1313, -1313,    35,   395, -1313, -1313,   395,
1082
      35,    35, -1313,    35, -1313, -1313,   395, -1313, -1313,    35,
1083
      35,   395,    35,   395, -1313, -1313,    35,    35,   395,    35,
1084
      35, -1313, -1313,    35,    35,   395, -1313, -1313,    35,    35,
1085
     395, -1313, -1313,    35,    35,   395,    35,   395, -1313, -1313,
1086
      35,   395, -1313,    35, -1313, -1313, -1313, -1313,   395, -1313,
1087
      35,   395,    35,    35,    35,    35,    35, -1313,    35,   395,
1088
     414, -1313,   437,   555, -1313, -1313,   365,   414,   304,   414,
1089
     414,    63,    63,    95,   423,   100,    63,    63,   450,   450,
1090
      95,   100,   450,   450,   755,   437,   414,   497,    63,    63,
1091
     133,   414,    63,    63,    72,   522,   450,    63,   528, -1313,
1092
     247,    63,   528,   555,   522,   450,    63, -1313,   528,   522,
1093
     450,    63,   522,   450,    63, -1313, -1313,   653,   103, -1313,
1094
      63,   450,    63,  1129,   555,   187, -1313,    63,   379,   187,
1095
   -1313,   541,   187, -1313,   379,   502,   959, -1313,   555, -1313,
1096
   -1313, -1313, -1313, -1313, -1313, -1313, -1313,    35,    35,   395,
1097
   -1313,   395, -1313, -1313,    35,    35,   395,    35, -1313, -1313,
1098
   -1313,    35,    35,    35, -1313,    35,   395, -1313, -1313, -1313,
1099
     395,   414,    35, -1313,    35,    35, -1313,    35,   395,    35,
1100
      35,   414,    35,    35, -1313,    35,    35,   755,   414, -1313,
1101
      35,    35,    35, -1313,    35,    35,   395, -1313, -1313,    35,
1102
      35,    35,   395,   414,    35,    35,    35,    35,    35, -1313,
1103
     414,    35,   284,   414,   414, -1313, -1313, -1313, -1313,   395,
1104
      35,    35,    35,   414,    35,    35,   414,    35,    35, -1313,
1105
   -1313,   268, -1313,   414,    35, -1313,   414,    35,    35,    35,
1106
     284,   414, -1313,   414,    35, -1313,    35,   395,    35, -1313,
1107
      35,   395,   414, -1313,   537,   539,    63,    63, -1313, -1313,
1108
     528, -1313,  1258,   527,   528,   414,   243,   100,   543,   414,
1109
     555,  1303, -1313,   522,    90,    90,   522,    63,   522,   100,
1110
   -1313,   522,   522,   183,   414,   396, -1313, -1313, -1313,   522,
1111
      90,    90, -1313, -1313,    63,   414,   243,   522,  1303, -1313,
1112
     522,   261, -1313, -1313,   528, -1313, -1313,   555, -1313, -1313,
1113
    1289,   522,    67, -1313, -1313,   522,   135, -1313,   522,    88,
1114
   -1313, -1313,   555, -1313, -1313,   555, -1313, -1313, -1313,   522,
1115
     349,   873,   414,   555, -1313, -1313,   541,   983,   414,    63,
1116
     562,  1320,   414,    63, -1313,    35, -1313, -1313,   414, -1313,
1117
     414, -1313,    35, -1313,   414,    35, -1313,    35, -1313,    35,
1118
     414, -1313, -1313, -1313,   395, -1313,   284,   414, -1313, -1313,
1119
   -1313, -1313, -1313, -1313, -1313, -1313, -1313,    35, -1313,    35,
1120
      35,    35,    35,   414, -1313,    35,   414,   414,   414,   414,
1121
   -1313, -1313,    35,    35,   395, -1313, -1313, -1313,    35,   395,
1122
     414,    35,    35,    35,    35, -1313,    35, -1313,    35,   414,
1123
      35,   414,    35,    35,    35, -1313,    35, -1313, -1313, -1313,
1124
   -1313,    35,    35,    35,   414,    35,   414,    35,   414,    35,
1125
     327,   478, -1313,   990,   414, -1313, -1313, -1313, -1313,    35,
1126
   -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313,
1127
   -1313,    35,   395,    35,   395, -1313,    35,   395,    35,   395,
1128
      35,   395,    35,   395,    35, -1313,   395,    35, -1313, -1313,
1129
      35, -1313, -1313, -1313,   395,    35,    35,   395,    35,   395,
1130
   -1313, -1313,    35, -1313,   395, -1313, -1313,    35,   539, -1313,
1131
   -1313, -1313, -1313, -1313, -1313,   126, -1313,    63,   555, -1313,
1132
     370,    95,   107,   414,    95,   414, -1313,   541, -1313, -1313,
1133
   -1313, -1313, -1313, -1313,    63, -1313,    63, -1313,    95,   142,
1134
     414,    95,   414,   437,   565, -1313,   370, -1313,    72,   414,
1135
   -1313,   370,   370,   370,   370, -1313,   414, -1313,   414, -1313,
1136
     414, -1313,   555, -1313, -1313,   555,   555, -1313,   482, -1313,
1137
   -1313, -1313, -1313,   497,   346,   648,   760, -1313,    63,   453,
1138
   -1313,    63,   213, -1313,  1258,   105, -1313,  1258,   408, -1313,
1139
     653, -1313,   526, -1313,  1170,   414,    63, -1313, -1313,    63,
1140
   -1313,  1258,   528,   414,   406,   101, -1313, -1313, -1313,    35,
1141
   -1313,    35, -1313, -1313, -1313, -1313,    35,    35,    35,    35,
1142
   -1313,    35, -1313,    35, -1313,    35,    35,    35,    35, -1313,
1143
      35,    35, -1313,    35, -1313, -1313,    35,    35,    35,    35,
1144
   -1313,    35,    35,    35,    35, -1313, -1313, -1313, -1313,   518,
1145
     482, -1313,   990,   555, -1313,    35, -1313,    35, -1313,    35,
1146
   -1313,    35, -1313, -1313,   414,    35,    35,    35, -1313,   414,
1147
      35,    35, -1313,    35,    35, -1313,    35, -1313, -1313,    35,
1148
   -1313,   414, -1313, -1313,    35,    35,    35,   395,    35, -1313,
1149
      35,    35,   414, -1313, -1313, -1313, -1313, -1313, -1313,   414,
1150
      35,    35,   414,   414,   414, -1313, -1313,   414,   283,   414,
1151
     755,   755,   414, -1313,   396, -1313, -1313,   414,   865,   414,
1152
     414,   414,   414,   414,   414,   414, -1313, -1313,   555, -1313,
1153
   -1313, -1313,  1105,   414, -1313,   479, -1313, -1313,   213, -1313,
1154
     105, -1313, -1313, -1313,   105, -1313, -1313,  1258, -1313,  1258,
1155
     653, -1313, -1313, -1313,   976, -1313,   959, -1313,   437,    63,
1156
   -1313,    35,   662,   414,   541, -1313, -1313,    35, -1313, -1313,
1157
      35,    35,    35, -1313, -1313,    35,    35, -1313,    35, -1313,
1158
   -1313, -1313, -1313, -1313,    35, -1313,   395,    35, -1313,    35,
1159
   -1313,    35,    35,    35,    35, -1313, -1313,  1222, -1313, -1313,
1160
     395, -1313,   414,    35,    35,    35, -1313,    35,    35,    35,
1161
      35, -1313,    35, -1313,    35, -1313, -1313,   414,    35,   414,
1162
      35, -1313,    35,   562, -1313,   395,    35,    35, -1313,   683,
1163
   -1313, -1313, -1313,   414,   414, -1313, -1313,    63, -1313,   683,
1164
     683,   683,   683,   683,   459, -1313,  1303, -1313,   262,   580,
1165
     641,   105, -1313, -1313, -1313, -1313,  1258,   398,   414, -1313,
1166
   -1313, -1313,   761,   414,   414,   395,    63, -1313, -1313, -1313,
1167
      35,   395, -1313, -1313,    35,    35,    35,   395,    35,    35,
1168
      35,   395,   289,   459, -1313,    35,    35, -1313,    35, -1313,
1169
   -1313,    35, -1313,    35, -1313, -1313, -1313, -1313, -1313, -1313,
1170
   -1313, -1313,    35,    35, -1313,   395, -1313, -1313,   406,    35,
1171
     599, -1313,    63,   755,   725, -1313,   734, -1313,    63,   811,
1172
   -1313, -1313,   843, -1313,    63, -1313,   580,   641,   641, -1313,
1173
    1258, -1313, -1313,    63,   414,   437, -1313, -1313, -1313, -1313,
1174
   -1313, -1313,   395, -1313, -1313,    35, -1313, -1313, -1313, -1313,
1175
     395, -1313,   395,    35, -1313,    35,    35, -1313,    35,    35,
1176
   -1313, -1313,    35,    35,   395, -1313,    35,    35, -1313,    35,
1177
      35, -1313,    35,    35,    35, -1313, -1313, -1313, -1313,   414,
1178
      35,    35,    35,    63, -1313,    63,    63,   832, -1313,   832,
1179
   -1313,  2474,   414,  1267, -1313,  1267, -1313,    63,  1320,  1481,
1180
   -1313, -1313, -1313,  3262,   641, -1313,   755,   414,  1031,   414,
1181
     414, -1313,    35,    35,    35, -1313, -1313,    35, -1313, -1313,
1182
   -1313, -1313, -1313, -1313, -1313,    35, -1313, -1313, -1313, -1313,
1183
   -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313,
1184
   -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313,
1185
      35,    35, -1313, -1313, -1313, -1313, -1313,   414, -1313,    35,
1186
   -1313,    35, -1313,    35, -1313,    35, -1313,    35,    35,    35,
1187
      35,    35,   414, -1313,    35, -1313,    35, -1313, -1313,    35,
1188
     395, -1313, -1313,   414,   755,   414,   330,   330,   655,   655,
1189
   -1313,   552, -1313, -1313,   414,   476,   414,   538,   330,   496,
1190
     496, -1313,    87, -1313, -1313,   406, -1313,    35, -1313, -1313,
1191
   -1313,    35,    35, -1313,    35,   395,    35,   395, -1313, -1313,
1192
      35,    35, -1313,    35,   395,    35, -1313, -1313, -1313,    35,
1193
      35, -1313,    35, -1313,    35,   395,    35,   395, -1313,    35,
1194
      35, -1313,    35, -1313, -1313,    35, -1313,    35,    35, -1313,
1195
      35, -1313,    35,    35, -1313,    35, -1313,    35, -1313,   414,
1196
     414, -1313, -1313,   639, -1313,  1258,   317, -1313,   555, -1313,
1197
   -1313,   639, -1313,  1258,   317, -1313, -1313,   557, -1313,   524,
1198
   -1313,    93, -1313,  1258, -1313,  1258, -1313, -1313,   192, -1313,
1199
   -1313,   323, -1313, -1313, -1313,   323, -1313, -1313, -1313, -1313,
1200
      35, -1313,    35,    35,    35,    35,   414,    35,    35,   414,
1201
      35,    35,    35,    35,    35,   414,   414,    35,    35,    35,
1202
   -1313, -1313,   317, -1313,   432, -1313, -1313, -1313,   317, -1313,
1203
   -1313, -1313,    93, -1313, -1313, -1313,    79, -1313, -1313, -1313,
1204
   -1313, -1313, -1313,    35,   414,    35,    35, -1313,    35,   395,
1205
   -1313, -1313, -1313,    79, -1313, -1313,   575,    35, -1313, -1313,
1206
     414, -1313, -1313
1207
};
1208
1209
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1210
     Performed when YYTABLE does not specify something else to do.  Zero
1211
     means the default is an error.  */
1212
static const yytype_int16 yydefact[] =
1213
{
1214
       0,   454,   441,   430,   440,   161,   475,   498,   432,   530,
1215
     533,   658,   702,   737,   740,   559,   552,   391,   614,   540,
1216
     537,   549,   547,   669,   724,   431,   456,   476,   433,   455,
1217
     531,   535,   534,   560,   541,   538,   550,     0,     4,     5,
1218
       2,     0,    13,   381,   382,     0,   641,   420,   418,   419,
1219
     421,   422,     0,     0,     3,     0,    12,   451,     0,   643,
1220
       0,    11,     0,   645,   512,   513,     0,    14,     0,   647,
1221
       0,    15,     0,   649,     0,    16,     0,   651,     0,    17,
1222
       0,   642,   595,   593,   594,   596,   597,   644,     0,   646,
1223
     648,   650,   652,    19,    18,     0,     7,     0,     8,     0,
1224
       9,     0,    10,     0,     6,     0,     1,    73,    74,     0,
1225
       0,     0,     0,     0,    77,     0,     0,     0,     0,     0,
1226
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1227
       0,     0,     0,     0,    78,   162,     0,   392,     0,   429,
1228
       0,     0,   442,     0,   446,   447,   452,     0,   457,     0,
1229
       0,   499,     0,     0,   458,     0,   542,     0,   542,     0,
1230
     554,   615,     0,   659,     0,   670,   684,   671,   685,   672,
1231
     673,   687,   674,   675,   676,   677,   678,   679,   680,   681,
1232
     682,   683,     0,   667,     0,   703,     0,     0,     0,   708,
1233
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1234
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1235
       0,     0,     0,     0,    75,    76,   666,     0,     0,   691,
1236
     693,     0,   715,   717,     0,   725,   727,     0,     0,    40,
1237
      20,    37,    38,    39,    41,    42,     0,   163,    21,    22,
1238
      26,     0,    25,    35,     0,   164,   154,   396,     0,     0,
1239
     490,   491,   404,   435,     0,     0,     0,     0,   434,     0,
1240
       0,     0,     0,   599,   602,   600,   603,     0,     0,     0,
1241
       0,   443,     0,   448,     0,   458,     0,   477,   478,   479,
1242
     480,     0,     0,   502,   501,   495,     0,   630,   517,     0,
1243
       0,     0,   516,     0,   626,   627,     0,   467,   470,   190,
1244
     459,     0,   460,     0,   532,   633,     0,     0,     0,   190,
1245
     543,   539,   636,     0,     0,     0,   548,   639,     0,     0,
1246
       0,   566,   562,   190,   190,     0,   190,     0,   553,   620,
1247
       0,     0,   653,     0,   654,   661,   662,   668,     0,   705,
1248
       0,     0,     0,     0,     0,     0,     0,   710,     0,     0,
1249
       0,    34,    27,     0,    33,    23,     0,     0,     0,     0,
1250
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1251
       0,     0,     0,     0,     0,    27,     0,     0,     0,     0,
1252
       0,     0,     0,     0,     0,     0,     0,     0,     0,   462,
1253
       0,     0,     0,     0,     0,     0,     0,   544,     0,     0,
1254
       0,     0,     0,     0,     0,   558,   557,     0,     0,   555,
1255
       0,     0,     0,     0,     0,     0,   692,     0,     0,     0,
1256
     716,     0,     0,   726,     0,     0,     0,   707,     0,    29,
1257
      31,    28,    36,   168,   171,   165,   166,   155,   158,     0,
1258
     160,     0,   153,   400,     0,   386,     0,     0,   383,   388,
1259
     397,   394,     0,     0,   406,   410,     0,   238,   428,   208,
1260
       0,     0,     0,   492,     0,     0,   573,     0,     0,     0,
1261
       0,     0,     0,     0,   444,   437,   190,     0,     0,   453,
1262
       0,     0,     0,   508,   190,   495,     0,   494,   503,   190,
1263
       0,     0,     0,     0,     0,     0,   190,   190,   461,   468,
1264
       0,   190,   471,     0,     0,   204,   205,   206,   207,     0,
1265
       0,     0,   190,     0,     0,     0,     0,     0,     0,    50,
1266
     563,    48,   564,     0,   190,   567,     0,     0,     0,   655,
1267
     663,     0,   706,     0,     0,   576,   719,     0,     0,   749,
1268
      80,     0,     0,    32,     0,     0,     0,     0,   385,   390,
1269
       0,   389,     0,     0,     0,     0,     0,     0,     0,     0,
1270
       0,     0,   423,     0,     0,     0,     0,     0,     0,     0,
1271
     425,     0,     0,     0,     0,     0,   450,    24,   445,     0,
1272
       0,     0,   496,   497,     0,     0,     0,     0,     0,   514,
1273
       0,     0,   191,   464,     0,   466,   463,   472,   469,   536,
1274
       0,     0,     0,   545,   546,     0,     0,   551,     0,     0,
1275
      44,    58,     0,    45,    49,     0,   561,   556,   565,     0,
1276
       0,     0,     0,   664,   660,   704,     0,     0,     0,     0,
1277
       0,     0,     0,     0,   709,   156,   159,   169,     0,   172,
1278
       0,   402,   386,   401,     0,   386,   398,   394,   393,     0,
1279
       0,   415,   416,   411,     0,   403,   407,     0,   239,   240,
1280
     241,   242,   243,   244,   245,   246,   247,     0,   427,     0,
1281
     607,     0,   607,     0,   574,     0,     0,     0,     0,     0,
1282
     199,   198,   190,   190,     0,   436,   197,   196,   190,     0,
1283
       0,     0,   482,     0,   482,   509,     0,   500,     0,     0,
1284
       0,     0,     0,   190,   190,   473,     0,   248,   249,   250,
1285
     251,     0,     0,     0,     0,   190,     0,   190,     0,   190,
1286
      48,     0,    59,     0,     0,   621,   622,   623,   624,     0,
1287
     174,   100,   133,   136,   144,   148,    98,   657,    82,    88,
1288
      89,    93,     0,    85,     0,    92,    85,     0,    85,     0,
1289
      85,     0,    85,     0,    85,    84,     0,   655,   640,   665,
1290
     695,   591,   714,   723,     0,   719,   719,     0,    80,     0,
1291
     718,   577,   413,   738,     0,    81,   739,     0,     0,   167,
1292
     170,   387,   399,   384,   395,     0,   424,     0,   408,   405,
1293
       0,     0,     0,     0,     0,     0,   598,     0,   601,   426,
1294
     604,   605,   439,   438,     0,   449,     0,   474,     0,     0,
1295
       0,     0,     0,    27,     0,   515,     0,   625,     0,     0,
1296
     465,     0,     0,     0,     0,   631,     0,   634,     0,   637,
1297
       0,    46,     0,    43,    68,     0,     0,    53,    71,    55,
1298
      66,    67,   613,     0,     0,     0,     0,    91,     0,     0,
1299
     117,     0,     0,   118,     0,     0,   119,     0,     0,   120,
1300
       0,    83,     0,   656,     0,     0,     0,   720,   721,     0,
1301
     722,     0,     0,     0,     0,     0,   741,   743,   157,     0,
1302
     417,   413,   409,   252,   253,   254,   190,   607,   190,   190,
1303
     606,   607,   611,   569,   202,     0,     0,   482,   190,   493,
1304
     190,   190,   481,   482,   488,   510,   505,     0,   190,   190,
1305
     628,   190,   190,   190,   190,   632,   635,   638,    52,    48,
1306
      71,    60,     0,     0,    70,   617,    96,    85,    94,     0,
1307
      90,    85,    87,   101,     0,    85,    85,    85,   134,     0,
1308
      85,    85,   137,     0,    85,   145,     0,   149,   150,     0,
1309
      79,     0,   712,   701,   695,   695,    80,     0,    80,   694,
1310
       0,     0,     0,   414,   575,   731,   732,   729,   730,     0,
1311
     745,     0,     0,     0,     0,   609,   608,     0,     0,     0,
1312
       0,     0,     0,   486,     0,   483,   485,     0,     0,     0,
1313
       0,     0,     0,     0,     0,     0,    47,    69,     0,    54,
1314
      57,    72,     0,     0,    95,     0,    86,    99,     0,   121,
1315
       0,   122,   123,   132,     0,   124,   125,     0,   126,     0,
1316
       0,   173,   696,   697,     0,   698,     0,   700,    27,     0,
1317
     713,     0,     0,     0,     0,   742,   412,     0,   610,   612,
1318
     190,   569,   569,   568,   203,   190,   190,   487,   190,   489,
1319
     188,   186,   185,   187,   190,   511,     0,   190,   504,     0,
1320
     629,     0,     0,     0,     0,    64,    56,     0,   619,   618,
1321
       0,   616,     0,   102,   103,   104,   105,    85,    85,    85,
1322
      85,   138,     0,   146,   142,   151,   152,     0,    80,     0,
1323
     579,   592,   413,     0,   748,     0,   745,   745,   744,     0,
1324
     572,   570,   571,     0,     0,   484,   506,     0,   507,     0,
1325
       0,     0,     0,     0,     0,    63,     0,    97,     0,     0,
1326
       0,     0,   127,   128,   129,   130,     0,     0,     0,   147,
1327
     699,   711,     0,     0,     0,     0,     0,   747,   746,   258,
1328
     224,     0,   192,   189,     0,   519,   229,     0,   211,    80,
1329
     235,     0,    65,     0,    61,   106,   107,   108,   109,   110,
1330
     111,    85,   139,     0,   143,   141,   589,   584,   585,   586,
1331
     587,   588,   190,   190,   582,     0,   578,   590,     0,     0,
1332
       0,   210,     0,     0,     0,   518,     0,   228,     0,     0,
1333
     209,   233,     0,   234,     0,    62,     0,     0,     0,   131,
1334
       0,   581,   580,     0,     0,    27,   183,   180,   179,   182,
1335
     200,   181,     0,   201,   221,    85,   223,   380,   175,   177,
1336
       0,   176,     0,   219,   227,   224,   215,   259,     0,   190,
1337
     528,   523,    80,   524,     0,   232,   230,     0,   214,   211,
1338
      80,   237,   235,     0,   112,   113,   114,   115,   140,     0,
1339
     194,   733,   190,     0,   222,     0,     0,     0,   226,     0,
1340
     225,     0,     0,     0,   520,     0,   522,     0,     0,     0,
1341
     213,   212,   236,     0,     0,   135,     0,     0,     0,     0,
1342
       0,   218,   413,     0,   194,   220,   216,   261,   321,   322,
1343
     323,   324,   325,   326,   327,   263,   328,   329,   330,   331,
1344
     332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
1345
     342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
1346
     265,   267,   352,   353,   354,   355,   356,     0,   260,   285,
1347
     184,   524,   526,   524,   529,   413,   231,   314,   293,   295,
1348
     297,   299,     0,   292,   309,   116,   190,   583,   736,    80,
1349
       0,   728,   750,     0,     0,     0,     0,     0,     0,     0,
1350
     255,     0,   521,   525,     0,     0,     0,     0,     0,     0,
1351
       0,   257,     0,   195,   735,     0,   217,   190,   193,   358,
1352
     362,   190,   190,   262,   190,     0,   190,     0,   264,   360,
1353
     190,   190,   266,   190,     0,   190,   268,   373,   375,   190,
1354
     367,   286,   367,   288,   190,     0,   190,     0,   527,   190,
1355
     367,   315,   367,   317,   256,   190,   294,   190,   190,   296,
1356
     190,   298,   190,   190,   300,   190,   310,   367,   313,     0,
1357
       0,   269,   276,     0,   273,     0,     0,   275,     0,   277,
1358
     284,     0,   281,     0,     0,   283,   287,     0,   291,     0,
1359
     289,     0,   363,     0,   364,     0,   316,   320,     0,   318,
1360
     301,     0,   303,   304,   305,     0,   307,   308,   311,   312,
1361
     733,   178,   190,   190,     0,   190,     0,   190,   190,     0,
1362
     190,   190,   190,   367,   190,     0,     0,   367,   190,   190,
1363
     734,   272,     0,   270,     0,   274,   361,   280,     0,   278,
1364
     359,   282,     0,   368,   369,   290,     0,   365,   372,   374,
1365
     319,   302,   306,   190,     0,   190,   190,   377,   190,     0,
1366
     271,   357,   279,     0,   370,   366,     0,   190,   378,   379,
1367
       0,   371,   376
1368
};
1369
1370
  /* YYPGOTO[NTERM-NUM].  */
1371
static const yytype_int16 yypgoto[] =
1372
{
1373
   -1313, -1313, -1313,  -216,  -240,  -124, -1313,   328,  -182,   353,
1374
   -1313, -1313, -1313, -1313, -1313, -1313,  -235,  -347,  -644,   -23,
1375
    -782,  -632, -1313, -1313, -1313, -1313, -1313, -1313, -1313,  -550,
1376
    -211, -1313, -1313, -1313,  -840, -1313, -1313,  -213,   -45,  1714,
1377
     798,  2740, -1313,  -757,  -605,  -629, -1024, -1313,  -123, -1313,
1378
   -1313,  -122, -1313, -1313, -1313,  -118,  -274, -1313, -1313,  -792,
1379
   -1313, -1313, -1313, -1313, -1313,  -786, -1313, -1313, -1313, -1313,
1380
    -760, -1313, -1313, -1313,   794, -1313, -1313, -1313, -1313, -1313,
1381
     190, -1313, -1313,  -494, -1313, -1313,  -785, -1313, -1313,  -856,
1382
   -1313, -1313, -1313, -1313,  -573,  1848,  -392, -1280,  -544, -1313,
1383
   -1313, -1313,  -761,  -928,  -215,   180,  -258, -1313,  -490, -1313,
1384
   -1313, -1313,  -753,  -475, -1313, -1313, -1313, -1313,  -489,  -345,
1385
    -426, -1313, -1313,    13, -1004,  -358,  -434,  -984,  -823, -1313,
1386
   -1223,  -600, -1313, -1313, -1313, -1313,  -610, -1313, -1313, -1313,
1387
   -1313,  -802,  -598, -1313,  -721, -1313,  -818, -1313, -1051, -1312,
1388
   -1030, -1313, -1029, -1313,  -752, -1313, -1313,  -618, -1313,   770,
1389
    -414,  -260,   581,  -425,    75,   -39,  -317,   129, -1313, -1313,
1390
   -1313,   230, -1313,   -87, -1313,  -104, -1313, -1313, -1313, -1313,
1391
   -1313, -1313,  -849, -1313, -1313, -1313, -1313,   657,   664,   667,
1392
     668,  -268,   727, -1313, -1313,  -102,    83, -1313, -1313, -1313,
1393
   -1313, -1313,  -109, -1313, -1313, -1313, -1313,     9, -1313,   422,
1394
     530,   596, -1313, -1313,   412, -1313, -1313,   680, -1313, -1313,
1395
   -1313,  -620, -1313, -1313, -1313,   617,   627,   714,  -151,     4,
1396
     355, -1313, -1313, -1313, -1313, -1313, -1313, -1313,  -362,  -797,
1397
    -948, -1313, -1313,   716,   724, -1313,   267, -1313,  -755,  -674,
1398
   -1313, -1313, -1313,  -177, -1313,   728, -1313,  -157, -1313,   698,
1399
     732, -1313,  -163, -1313,   739, -1313,  -175, -1313, -1313,   461,
1400
   -1313, -1313, -1313, -1313, -1313,   861,  -377, -1313, -1313,  -373,
1401
   -1313, -1313,  -787, -1313, -1313, -1313, -1313,  -783, -1313, -1313,
1402
     742, -1313, -1313,   685, -1313,   689, -1313, -1313,   265,  -588,
1403
     269,   272,   274,   767, -1313, -1313, -1313, -1313, -1313, -1313,
1404
     773, -1313, -1313, -1313, -1313,   777, -1313, -1313,   780, -1313,
1405
   -1313,   787, -1313, -1313,   790,  -167,  -342,   165, -1313, -1313,
1406
   -1313, -1313, -1313, -1313, -1313, -1313, -1313, -1313,   923, -1313,
1407
     584,  -280, -1313,   -94,  -185, -1313, -1313,   -84, -1313,   -35,
1408
   -1313, -1313, -1313,  -822, -1313, -1313, -1313,   582,   -80,   930,
1409
   -1313, -1313,   586, -1123,  -538, -1313, -1017,   933, -1313, -1313,
1410
   -1313,   -36,  -370, -1313, -1313
1411
};
1412
1413
  /* YYDEFGOTO[NTERM-NUM].  */
1414
static const yytype_int16 yydefgoto[] =
1415
{
1416
      -1,    37,    38,    39,   236,   643,   238,   905,   239,   477,
1417
     240,   241,   429,   430,   242,   354,   243,   244,   923,   612,
1418
     520,   613,   521,   721,   919,   614,   837,   999,   615,   838,
1419
     922,  1066,  1067,  1153,   839,   840,   841,   924,   109,   216,
1420
     388,   463,   951,   632,   775,   847,   738,   739,   740,   741,
1421
     742,   743,   744,   934,  1072,   745,   746,   747,   939,   748,
1422
     749,   943,  1082,  1163,  1249,   750,  1128,   751,   946,  1084,
1423
     752,   753,   949,  1087,   496,   357,    41,   136,   246,   437,
1424
     438,   439,   638,   440,   441,   640,   755,   756,  1217,  1218,
1425
    1219,  1220,  1055,  1056,   899,   389,   683,  1221,  1277,   689,
1426
     684,  1222,   895,  1045,   504,   458,   505,   459,  1190,  1260,
1427
    1223,  1282,  1224,  1181,   506,  1187,   507,   508,  1193,   509,
1428
     711,   712,   713,   886,  1140,  1146,  1150,  1141,  1228,  1327,
1429
    1383,  1392,  1328,  1401,  1342,  1416,  1421,  1343,  1426,  1366,
1430
    1411,  1329,  1384,  1385,  1393,  1394,  1386,  1387,  1403,  1448,
1431
    1404,  1405,  1406,  1407,  1518,  1519,  1530,  1226,    42,   253,
1432
     359,   551,    44,   360,   254,   138,   248,   555,   249,   451,
1433
     647,   445,   446,   644,   642,   255,   256,   455,   456,   657,
1434
     559,   653,   873,   654,   881,    46,    47,    48,    49,    50,
1435
      51,   461,   140,    52,    53,   257,   447,   574,    55,   143,
1436
     272,   475,   462,   147,   274,   478,    56,   258,    58,   149,
1437
     203,   300,   301,   500,   302,   303,   503,    59,    60,   276,
1438
     277,   810,   278,   279,   280,   259,   260,   464,   901,   965,
1439
     381,    62,   152,   285,   286,   489,   485,   989,   764,   696,
1440
     906,  1057,    63,    64,    65,   291,   493,  1185,  1266,  1233,
1441
    1234,  1335,    66,    67,    68,    69,    70,    71,    72,   206,
1442
      73,    74,    75,    76,    77,    78,    79,   211,    80,   324,
1443
     325,   523,   326,   327,   526,   966,   979,   468,   675,   970,
1444
     537,   772,   765,  1133,  1173,  1174,  1175,   766,   767,  1092,
1445
      81,    82,    83,   261,    84,   262,    85,    86,   263,   793,
1446
     264,   265,   266,    87,    88,   162,   330,  1003,   331,   729,
1447
      89,   293,   294,   295,   296,    90,   307,   308,    91,   314,
1448
     315,    92,   319,   320,    93,    94,   333,   622,    95,   164,
1449
     337,   338,   531,    96,   182,    97,   183,   184,   967,   219,
1450
     220,   865,    99,   186,   340,   341,   533,   342,   191,   348,
1451
     349,   956,   957,   768,   769,   100,   222,   223,   628,   968,
1452
     102,   225,   226,   969,  1279,   103,   774,   334,   105,   540,
1453
     876,   877,  1033,   541,  1097
1454
};
1455
1456
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1457
     positive, shift that token.  If negative, reduce the rule whose
1458
     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1459
static const yytype_int16 yytable[] =
1460
{
1461
     110,   351,   688,   353,    61,   431,   146,   111,   112,    57,
1462
     113,   870,   350,   116,   271,   117,   737,   118,   486,   549,
1463
     460,   119,   763,   120,   292,   121,   460,   122,   431,   123,
1464
     548,   124,   972,   125,   318,   126,   343,   187,   188,   345,
1465
     492,   444,   958,   127,   313,   896,   332,   306,   536,   190,
1466
     128,   636,   129,  1046,   130,  1204,   131,   935,   132,   928,
1467
     133,   932,   355,   936,   932,   723,   940,   932,   237,   960,
1468
     932,   529,   961,   932,   812,    45,  1135,   954,   947,   836,
1469
    1090,   955,  1000,    54,   795,  1410,     1,   144,   831,   937,
1470
    1450,   267,   941,   268,     1,   944,     5,   290,  1457,     1,
1471
    1459,   250,   197,   471,     5,  1145,   144,  1148,    10,  1380,
1472
       5,   251,    15,   144,   189,  1469,   457,   850,   432,   853,
1473
       5,   856,     5,   859,     5,   861,  1147,   535,  1147,  1151,
1474
     283,     2,   730,    19,  1388,   667,   317,   344,    15,   252,
1475
     346,     4,   483,    17,   106,  1419,   228,   252,   144,   686,
1476
       5,    17,   339,   284,   687,   322,  1214,    33,   502,     5,
1477
     735,  1517,   700,     5,    34,    31,    32,  1397,  1398,    26,
1478
     145,  1505,   519,    29,  1398,  1510,  1225,    26,  1487,   530,
1479
     339,    29,    26,    33,   513,  1239,    29,   516,   247,   145,
1480
     680,  1041,   474,   543,   681,  1042,   145,   321,   322,  1025,
1481
       5,  1027,  1088,    21,   361,   114,  1210,   491,  1151,   362,
1482
     542,   364,   460,  1074,   366,   367,    21,   134,   460,  1075,
1483
       5,   312,  1077,   932,   460,   932,   297,  1115,   189,   932,
1484
       5,   145,   435,  1214,    36,  1214,   378,   379,  1085,   649,
1485
     730,   382,   492,  1134,   383,  1076,   332,    36,  1078,  1096,
1486
    1079,   387,  1429,   760,  1080,  1229,   391,  1252,   393,   953,
1487
      19,  1350,   597,   396,     5,   329,   305,   734,   735,   698,
1488
     401,   298,  1397,  1398,  1154,   404,   289,   982,   998,   757,
1489
     407,   275,   410,   987,   878,   920,   412,   996,  1213,   650,
1490
     623,    34,   483,   414,   733,   577,   417,    10,  1004,   974,
1491
       5,   677,  1006,   977,   426,   247,  1009,  1011,  1012,     2,
1492
       2,  1015,  1016,  1195,  1413,  1018,   734,   735,   252,     4,
1493
       4,  1428,   761,   452,  1206,   656,  1155,  -686,  1207,  1208,
1494
    1209,  1130,  1156,  1158,     5,   344,   932,  1206,   346,  1179,
1495
       5,  1207,  1208,  1209,   490,  1380,  1144,     5,  1346,    10,
1496
    1379,   673,  1380,   676,    31,    32,   678,   679,  1157,  1159,
1497
    1160,  1161,   705,     5,   690,  1237,   247,   443,   250,  -688,
1498
     252,  1243,   453,   730,    17,   701,   835,   720,   251,   470,
1499
     722,   480,   781,   534,   287,   783,   714,  1211,   759,   538,
1500
     716,  -689,  1191,   718,   546,  1216,   547,  1068,   433,   434,
1501
    1211,   552,   736,   686,   724,   680,    31,    32,   687,   681,
1502
    1244,   560,  -690,     5,   703,   561,   788,  1481,  1482,  1481,
1503
    1482,   347,  1484,   567,   893,     5,  1377,  1094,  1481,  1482,
1504
     610,     7,   611,  1353,   719,   730,  1245,  1246,  1247,   686,
1505
     230,   584,  1250,   717,   687,   715,    12,   588,  1122,  1123,
1506
    1124,  1125,   -59,   352,   332,   466,  1349,   -59,   -59,   -59,
1507
     669,   671,   670,   672,   600,   548,   431,  1337,   879,   -30,
1508
       5,  1344,  1216,  1516,  1216,  1264,   691,   693,   692,   694,
1509
     730,   454,   549,  1271,    24,   733,  1364,   702,   722,   -51,
1510
    1210,   611,   629,     5,  1283,  1284,   633,   907,  1380,   466,
1511
    1382,  1382,  1391,  1391,  1285,  1400,  1286,   734,   735,     5,
1512
     732,   733,  1382,     5,  1345,   297,   298,  1389,  1380,   134,
1513
     229,   230,     7,   231,   232,   233,   234,   235,   883,   884,
1514
     885,  1206,  1199,   734,   735,  1207,  1208,  1209,   457,   777,
1515
    1395,  1395,   154,  1402,   156,     5,   158,  1412,   160,  1418,
1516
     539,  1423,  1423,   882,  1427,     5,  1397,  1398,  1379,  1206,
1517
    1380,   107,   108,  1207,  1208,  1209,  1232,   535,  1236,     5,
1518
     433,  1240,  1213,   434,  1380,   835,  1362,  1472,  1363,  1231,
1519
    1475,  1235,   214,   215,  1238,  1477,  1254,  1241,  1480,  1331,
1520
     443,  1333,  1374,  1483,  1211,   335,   336,   918,   234,   235,
1521
     722,   921,   651,   652,  1397,  1398,  1206,  1139,   773,   787,
1522
    1207,  1208,  1209,  1210,   229,  1473,     5,   231,   232,   233,
1523
     234,   235,  1211,  1478,   834,   519,   730,   247,   443,   731,
1524
     732,   733,  1397,  1398,   734,   735,  1513,  1397,  1398,   804,
1525
     610,   909,  1515,  1488,   806,   833,  1206,  1489,  1422,  1422,
1526
    1207,  1208,  1209,   734,   735,   736,     5,  1070,  1528,  1529,
1527
    1332,  1380,  1206,  1336,  1101,  1102,  1207,  1208,  1209,  1211,
1528
    1095,   483,     5,  1348,  1022,  1023,  1389,  1380,   731,     5,
1529
     950,   431,   611,   889,  1212,   867,   868,   722,   921,   730,
1530
     971,  1139,   731,   732,   733,  1213,   735,   845,   832,   848,
1531
     900,   761,   851,   476,   854,   428,   857,   997,   860,  1211,
1532
     229,   862,  1001,   231,   232,   233,   734,   735,   736,   866,
1533
     835,   926,   869,   929,   871,  1211,  1137,  1138,   930,   874,
1534
     942,  1073,  1206,   945,   635,  1164,  1207,  1208,  1209,  1210,
1535
    1355,  1206,     5,   668,  1069,  1207,  1208,  1209,  1210,  1270,
1536
    1258,     5,   730,  1272,  1149,   731,   732,   733,  1242,  1396,
1537
    1424,   730,  1230,  1065,   731,   732,   733,   835,  1166,  1417,
1538
      43,  1527,  1167,  1168,  1169,  1170,   784,     5,     5,   734,
1539
     735,   736,   288,   645,   962,   519,   165,   730,   734,   735,
1540
     736,   732,   733,   166,    40,  1211,   167,   168,  1044,  1044,
1541
     887,   310,   498,   891,  1211,   376,   835,   134,   229,   169,
1542
    1089,   231,   232,   233,   734,   735,   281,   897,  1206,  1139,
1543
     903,  1213,  1207,  1208,  1209,  1210,   282,  1114,     5,   908,
1544
    1213,  1171,   722,  1048,   911,   912,   913,   914,   730,   141,
1545
     583,   731,   732,   733,   150,   170,   153,   925,   155,     5,
1546
     157,  1139,   159,   171,   699,   115,   208,   172,   431,   730,
1547
       5,   173,   731,   732,   733,   734,   735,   736,   174,   524,
1548
     730,   175,  1050,   731,   732,   733,  1051,  1052,  1053,  1152,
1549
     269,  1211,     5,     3,   270,   725,   734,   735,   736,   726,
1550
       5,     6,   727,  1081,   728,  1083,   176,   734,   735,   736,
1551
     730,     8,   177,   731,   732,   733,   178,  1213,     9,   179,
1552
     229,   230,  1026,   231,   232,   233,   180,  1212,   722,   181,
1553
      14,  1514,   863,    98,   416,   420,    16,   734,   735,   736,
1554
     101,   423,  1490,   104,   192,  1035,   193,    18,   194,   195,
1555
      20,   196,    22,     0,     0,     0,     0,   198,   199,     0,
1556
     200,   201,   202,   204,   205,   207,   205,   209,   210,    25,
1557
     212,    27,   213,    28,     0,    30,     0,     0,     0,     3,
1558
       0,    35,     0,     0,     0,     0,     0,     6,     0,     0,
1559
       0,     0,   217,     0,   218,   221,   224,     8,   227,     0,
1560
       0,     0,   483,     5,     9,     0,   299,    11,     0,   309,
1561
       5,  1044,  1162,   730,   323,     0,   731,   732,   733,     0,
1562
     730,  1107,    16,   731,   732,   733,     0,     0,     0,     0,
1563
     762,     0,   761,    18,     0,  1116,    20,   762,    22,     0,
1564
     734,   735,   736,     0,     0,     0,     0,   734,   735,   736,
1565
       0,     0,     0,     0,   356,    25,   358,    27,     5,    28,
1566
    1136,    30,     0,   363,     0,   365,     0,    35,   730,   368,
1567
     369,   731,   732,   733,     0,   370,   371,   372,   373,     0,
1568
     374,     0,   375,   202,   377,   762,  1248,   773,     0,     0,
1569
       0,   465,     0,   380,     0,   734,   735,   736,   384,   385,
1570
    1178,   386,   481,   482,  1044,     0,  1182,     0,   390,     0,
1571
     392,   495,  1188,     0,   394,   395,  1194,     0,   398,     0,
1572
     511,   399,   400,     0,     0,   515,   402,   403,   518,     0,
1573
       0,   457,     5,     0,   408,     0,   528,     0,   411,     0,
1574
    1203,   413,   730,     0,     0,   731,   732,   733,   415,     3,
1575
     418,   419,   421,   422,   424,   229,   425,     6,   231,   232,
1576
     233,   234,   235,   833,     0,   834,     0,     8,     0,   734,
1577
     735,   736,     0,     0,     9,     0,     0,  1253,     0,     0,
1578
       0,     0,  1044,     0,   484,  1255,    14,  1256,     0,   483,
1579
       0,     0,    16,     0,   497,     0,   501,     5,     0,  1267,
1580
       0,     0,   512,    18,     0,     0,    20,   730,    22,     0,
1581
     731,   732,   733,  1476,     0,     0,     0,     0,     0,   761,
1582
       0,     0,     0,   952,   762,    25,     0,    27,     0,    28,
1583
       0,    30,     0,     0,   734,   735,   736,    35,     0,   467,
1584
     469,     0,     0,   472,   473,   544,   545,     0,     0,     0,
1585
       0,     0,   358,   550,     0,   553,     0,   494,     0,   554,
1586
     556,   557,     0,   558,     0,     0,   510,     0,     0,     0,
1587
     563,   514,   564,   565,   517,   566,     0,   568,   569,     0,
1588
     571,   572,   527,   573,   575,     0,     0,     0,   579,   580,
1589
     581,     0,     0,   380,     5,     0,     0,     0,   586,   587,
1590
       0,     0,   590,   591,   730,     0,   594,   731,   732,   733,
1591
       0,     0,     0,     0,  1230,  1375,     0,     0,   601,   602,
1592
       0,  1474,   605,   606,     0,   608,   609,     0,     0,  1479,
1593
       0,   734,   735,   736,     0,   619,   620,   621,     0,  1485,
1594
       0,  1486,   626,     0,   627,     0,   630,     5,   631,     0,
1595
    1435,     0,  1438,     0,   641,     0,     0,   730,   646,  1443,
1596
     731,   732,   733,     0,     0,     0,     0,     0,     0,     0,
1597
    1453,     0,  1455,     0,   134,   229,   230,   682,   231,   232,
1598
     233,   234,   235,     0,   734,   735,   736,   229,   230,     0,
1599
     231,   232,   233,   234,   235,     0,     0,   834,   704,   658,
1600
     659,   660,   661,   662,   663,   664,   665,   666,   706,   707,
1601
     708,   709,   710,   658,   659,   660,   661,   662,   663,   664,
1602
     665,   666,     0,   229,   230,   754,   231,   232,   233,   234,
1603
     235,   754,     0,     0,     0,   754,     0,     0,     0,     0,
1604
       0,     0,     0,   778,     0,     0,     0,     0,     0,     0,
1605
     550,     0,     0,   550,     0,   554,     0,   785,     0,     0,
1606
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1607
       0,     0,     0,     0,     0,   790,     0,   791,   792,   794,
1608
     792,     0,     0,   797,  1526,     0,     0,     0,     0,     0,
1609
       0,     0,     0,     0,     0,     0,     0,     0,     0,   808,
1610
     809,   811,   809,     0,   813,     0,   814,     0,   816,     0,
1611
     818,     0,     0,     0,   821,     0,     0,     0,     0,   822,
1612
     823,   824,     0,     0,     0,     0,     0,     0,     0,     0,
1613
       0,     0,     0,     0,     0,     0,     0,   843,     0,     0,
1614
       0,     0,     0,     0,     0,     0,     0,     0,     0,   844,
1615
       0,   846,     0,     0,   849,     0,   852,     0,   855,     0,
1616
     858,     0,   858,     0,     0,   621,     0,     0,   864,     0,
1617
       0,     0,     0,   627,   627,     0,   631,     0,     0,     0,
1618
     872,     0,     0,     0,     0,   875,     0,     0,     0,     0,
1619
       0,     0,     0,     0,     0,     0,   888,     0,     0,     0,
1620
       0,     0,     0,     0,     0,     0,  1288,  1289,  1290,  1291,
1621
    1292,  1293,  1294,   898,  1296,  1297,  1298,  1299,  1300,  1301,
1622
    1302,  1303,  1304,  1305,  1306,  1307,  1308,  1309,  1310,  1311,
1623
    1312,  1313,  1314,  1315,  1316,  1317,  1318,  1319,     0,     0,
1624
    1322,  1323,  1324,  1325,  1326,     0,     0,     0,   927,     0,
1625
     931,     0,     0,   931,     0,     0,   931,     0,     0,   931,
1626
       0,     0,   931,     0,     0,     0,     0,     0,   754,     0,
1627
       0,     0,     0,     0,     0,     0,   963,     0,     0,     0,
1628
       0,     0,     0,     0,     0,     0,     0,   785,     0,   872,
1629
       0,     0,     0,     0,     0,   792,     0,     0,     0,   792,
1630
       0,   978,     0,   980,   981,   809,     0,     0,   984,     0,
1631
       0,   809,     0,     0,   988,   814,     0,     0,     0,     0,
1632
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1633
       0,     0,     0,  1002,     0,   858,     0,  1005,     0,   858,
1634
       0,     0,     0,  1008,  1010,   858,     0,     0,  1014,   858,
1635
       0,  1017,   858,     0,  1019,     0,     0,  1020,     0,     0,
1636
       0,     0,   864,   864,  1024,     0,   631,     0,  1028,  1029,
1637
       0,     0,     0,     0,     0,     0,     0,     0,  1032,  1034,
1638
       0,     0,  1040,     0,     0,     0,     0,     0,     0,     0,
1639
       0,     0,  1054,     0,     0,     0,     0,     0,     0,     0,
1640
       0,     0,     0,     0,     0,     0,   754,     0,     0,     0,
1641
       0,     0,   931,     0,   931,     0,     0,     0,   931,     0,
1642
       0,     0,     0,     0,     0,     0,     0,     0,   754,     0,
1643
       0,     0,     0,     0,     0,     0,   754,     0,     0,  1093,
1644
       0,     0,     0,     0,     0,  1099,     0,     0,     0,   978,
1645
     978,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1646
       0,     0,     0,     0,     0,     0,     0,  1109,     0,  1110,
1647
    1111,  1112,  1113,     0,     0,     0,     0,     0,     0,     0,
1648
       0,  1118,  1119,  1120,     0,  1121,   858,   858,   858,     0,
1649
    1126,     0,  1127,     0,     0,     0,   631,     0,  1132,     0,
1650
     872,     0,     0,     0,  1032,  1032,     0,     0,     0,     0,
1651
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1652
       0,     0,     0,     0,     0,   931,     0,   304,     0,     0,
1653
     311,     0,   316,     0,     0,   328,  1172,     0,     0,     0,
1654
       0,     0,     0,     0,     0,     0,     0,     0,  1180,     0,
1655
       0,     0,  1183,  1184,  1186,     0,  1189,   631,  1192,     0,
1656
       0,     0,     0,  1196,  1197,     0,  1198,     0,     0,   858,
1657
       0,  1200,     0,     0,     0,     0,     0,     0,     0,     0,
1658
       0,     0,     0,     0,  1215,     0,     0,  1205,   754,     0,
1659
     754,     0,     0,   754,     0,     0,   754,     0,     0,     0,
1660
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1662
       0,     0,     0,   858,     0,     0,     0,     0,     0,     0,
1663
       0,  1257,     0,  1180,  1259,     0,  1261,     0,     0,     0,
1664
    1263,  1265,     0,     0,  1268,  1269,     0,  1189,   631,     0,
1665
    1192,  1273,  1274,     0,     0,     0,     0,     0,  1276,  1278,
1666
       0,  1215,     0,  1215,     0,     0,     0,   754,     0,   754,
1667
       0,     0,   754,     0,   427,     0,     0,     0,     0,     0,
1668
       0,   442,   754,   448,   449,     0,     0,     0,     0,     0,
1669
     872,  1354,  1276,     0,     0,  1356,     0,     0,     0,     0,
1670
     479,     0,     0,  1357,     0,   487,     0,     0,     0,     0,
1671
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1672
       0,     0,     0,     0,     0,     0,     0,     0,  1358,  1359,
1673
       0,     0,     0,     0,     0,     0,     0,  1361,     0,  1265,
1674
       0,  1265,     0,   872,     0,  1365,  1367,  1368,  1369,  1370,
1675
       0,     0,  1372,     0,     0,     0,     0,   631,     0,     0,
1676
    1381,  1381,  1390,  1390,     0,  1399,     0,   397,     0,  1409,
1677
       0,  1415,  1381,  1420,  1420,     0,  1425,     0,     0,     0,
1678
       0,   405,   406,     0,   409,   562,     0,     0,     0,     0,
1679
       0,     0,  1433,     0,  1436,   570,     0,     0,     0,     0,
1680
       0,  1441,   578,  1444,     0,     0,     0,     0,  1447,     0,
1681
    1449,     0,  1451,     0,     0,     0,     0,   589,  1447,     0,
1682
    1458,     0,     0,     0,   595,  1461,     0,   598,   599,     0,
1683
    1465,     0,     0,     0,     0,  1447,     0,   604,     0,     0,
1684
     607,     0,     0,     0,     0,     0,     0,   616,     0,     0,
1685
     618,     0,     0,     0,     0,   624,     0,   625,     0,     0,
1686
       0,     0,     0,     0,     0,     0,   634,     0,     0,     0,
1687
       0,     0,     0,     0,     0,     0,     0,     0,  1278,   648,
1688
       0,  1492,  1494,   655,     0,     0,  1498,     0,     0,  1502,
1689
       0,  1447,  1506,     0,     0,  1447,     0,     0,   685,     0,
1690
       0,     0,     0,     0,     0,     0,     0,     0,     0,   697,
1691
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1692
       0,     0,     0,     0,  1523,     0,     0,     0,     0,     0,
1693
       0,     0,     0,     0,   576,     0,     0,     0,     0,     0,
1694
       0,     0,   582,     0,     0,     0,   758,   585,     0,     0,
1695
       0,     0,   770,     0,   592,   593,   776,     0,     0,   596,
1696
       0,     0,   779,     0,   780,     0,     0,     0,   782,     0,
1697
     603,     0,     0,     0,   786,     0,     0,     0,     0,     0,
1698
       0,   789,   617,     0,     0,     0,     0,     0,     0,     0,
1699
       0,     0,     0,     0,     0,     0,     0,   796,     1,     2,
1700
     798,   799,   800,   801,     3,     0,     0,     0,     0,     4,
1701
       0,     5,     6,     0,   807,     0,     0,     0,     0,     7,
1702
       0,     0,     8,   815,     0,   817,     0,     0,     0,     9,
1703
      10,     0,    11,     0,    12,     0,     0,     0,   825,    13,
1704
     827,    14,   829,     0,    15,     0,     0,    16,   842,     0,
1705
       0,     0,     0,     0,     0,    17,     0,     0,    18,     0,
1706
      19,    20,    21,    22,     0,     0,     0,     0,     0,     0,
1707
       0,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1708
      25,    26,    27,     0,    28,    29,    30,    31,    32,    33,
1709
       0,    34,    35,    36,     0,     0,     0,     0,     0,     0,
1710
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1711
       0,     0,     0,     0,     0,     0,     0,   890,     0,   892,
1712
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1713
       0,     0,     0,     0,   902,     0,   904,     0,     0,     0,
1714
     802,   803,     0,   910,     0,     0,   805,     0,     0,     0,
1715
     915,     0,   916,     0,   917,     0,     0,     0,     0,     0,
1716
       0,   819,   820,     0,     0,     0,     0,     0,     0,     0,
1717
       0,     0,     0,   826,     0,   828,     0,   830,     0,     0,
1718
       0,     0,     0,     0,     0,     0,     0,     0,     0,   959,
1719
       0,     0,     0,     0,     0,     0,     0,   964,  1287,  1288,
1720
    1289,  1290,  1291,  1292,  1293,  1294,  1295,  1296,  1297,  1298,
1721
    1299,  1300,  1301,  1302,  1303,  1304,  1305,  1306,  1307,  1308,
1722
    1309,  1310,  1311,  1312,  1313,  1314,  1315,  1316,  1317,  1318,
1723
    1319,  1320,  1321,  1322,  1323,  1324,  1325,  1326,     0,     0,
1724
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1725
       0,     0,     0,     0,     0,     0,     0,     0,  1007,     0,
1726
       0,     0,     0,  1013,     0,     0,     0,     0,     0,     0,
1727
       0,     0,     0,     0,     0,  1021,     0,     0,     0,     0,
1728
       0,     0,     0,     0,     0,     0,  1030,     0,     0,     0,
1729
       0,     0,     0,  1031,     0,     0,  1036,  1037,  1038,     0,
1730
       0,  1039,     0,  1043,     0,     0,  1047,     0,     0,     0,
1731
       0,  1049,     0,  1058,  1059,  1060,  1061,  1062,  1063,  1064,
1732
       0,     0,     0,     0,     0,     0,     0,  1071,     0,     0,
1733
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1734
       0,     0,     0,     0,   973,     0,   975,   976,     0,     0,
1735
       0,     0,     0,     0,     0,     0,   983,  1098,   985,   986,
1736
       0,     0,     0,     0,     0,     0,   990,   991,     0,   992,
1737
     993,   994,   995,     0,     0,     0,     0,     0,     0,     0,
1738
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1739
       0,     0,     0,     0,     0,     0,  1117,     0,     0,     0,
1740
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1741
       0,  1129,     0,  1131,     0,     0,     0,     0,     0,     0,
1742
       0,     0,     0,     0,     0,     0,     0,  1142,  1143,     0,
1743
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1744
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1745
       0,     0,  1165,     0,     0,     0,     0,  1176,  1177,   135,
1746
     137,   139,   139,   142,     0,     0,   148,   139,   151,   139,
1747
     148,   139,   148,   139,   148,   139,   148,   161,   163,     0,
1748
     185,   185,   185,     0,     0,     0,     0,     0,     0,     0,
1749
       0,     0,     0,     0,     0,     0,     0,     0,  1100,     0,
1750
       0,     0,     0,  1103,  1104,     0,  1105,     0,     0,     0,
1751
       0,     0,  1106,     0,     0,  1108,     0,     0,     0,     0,
1752
       0,     0,     0,     0,     0,     0,     0,     0,  1251,     0,
1753
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1754
       0,     0,   245,     0,     0,     0,     0,   273,     0,     0,
1755
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1756
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1757
       0,     0,     0,  1275,     0,     0,     0,     0,     0,     0,
1758
       0,     0,     0,     0,     0,     0,  1330,     0,     0,     0,
1759
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1760
       0,  1347,     0,  1351,  1352,     0,     0,     0,     0,     0,
1761
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1762
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1763
    1201,  1202,     0,     0,     0,     0,     0,     0,     0,     0,
1764
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765
       0,  1360,     0,     0,     0,     0,     0,     0,     0,     0,
1766
       0,     0,     0,     0,     0,     0,  1371,     0,     0,     0,
1767
       0,     0,     0,     0,     0,     0,     0,  1376,     0,  1378,
1768
       0,     0,     0,     0,     0,     0,     0,  1262,  1408,     0,
1769
    1414,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1770
       0,     0,     0,     0,     0,     0,   436,     0,     0,     0,
1771
    1280,   450,   137,     0,     0,     0,     0,     0,     0,     0,
1772
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1773
       0,     0,   488,   137,     0,     0,     0,     0,     0,     0,
1774
       0,   499,     0,     0,     0,     0,     0,     0,     0,     0,
1775
       0,     0,     0,  1470,  1471,     0,     0,   522,     0,     0,
1776
     525,     0,     0,     0,     0,     0,     0,   532,     0,     0,
1777
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1778
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1779
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1780
    1496,     0,     0,  1500,  1373,     0,     0,     0,     0,  1508,
1781
    1509,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1782
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1783
       0,     0,     0,     0,     0,  1430,     0,     0,  1521,  1431,
1784
    1432,     0,  1434,     0,  1437,     0,     0,     0,  1439,  1440,
1785
       0,  1442,     0,  1445,  1532,     0,     0,  1446,     0,     0,
1786
       0,     0,  1452,     0,  1454,     0,     0,  1456,     0,     0,
1787
       0,     0,     0,  1460,     0,  1462,  1463,     0,  1464,     0,
1788
    1466,  1467,     0,  1468,     0,     0,     0,     0,     0,     0,
1789
       0,     0,     0,     0,     0,     0,   637,   639,     0,     0,
1790
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1791
       0,     0,     0,     0,     0,     0,     0,   674,     0,     0,
1792
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1793
    1491,  1493,     0,  1495,   695,  1497,  1499,     0,  1501,  1503,
1794
    1504,     0,  1507,     0,     0,     0,  1511,  1512,     0,     0,
1795
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1796
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1797
       0,  1520,     0,  1522,  1524,     0,  1525,     0,     0,   771,
1798
       0,     0,     0,   185,     0,  1531,  1338,  1288,  1289,  1290,
1799
    1291,  1292,  1293,  1294,  1339,  1296,  1297,  1298,  1299,  1300,
1800
    1301,  1302,  1303,  1304,  1305,  1306,  1307,  1308,  1309,  1310,
1801
    1311,  1312,  1313,  1314,  1315,  1316,  1317,  1318,  1319,  1340,
1802
    1341,  1322,  1323,  1324,  1325,  1326,     0,     0,     0,     0,
1803
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1804
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1805
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1806
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1807
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1808
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1809
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1810
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1811
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1812
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1813
       0,     0,     0,     0,     0,     0,     0,   880,     0,     0,
1814
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1815
       0,     0,     0,     0,   894,     0,   894,     0,     0,     0,
1816
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1817
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1818
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1819
       0,     0,     0,     0,     0,     0,     0,     0,   933,     0,
1820
       0,   938,     0,     0,     0,     0,     0,     0,     0,     0,
1821
     948,     0,     0,     0,     0,     0,   695,     0,     0,   695,
1822
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1823
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1825
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1826
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1827
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1828
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1829
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1830
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1831
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1832
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1833
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1834
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1835
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1836
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1837
    1086,     0,     0,     0,     0,     0,     0,     0,     0,  1091,
1838
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1839
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1840
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1841
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1842
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1843
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1844
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1845
       0,     0,     0,     0,     0,     0,     0,   894,     0,     0,
1846
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1847
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1848
       0,     0,     0,     0,     0,     0,   695,     0,     0,     0,
1849
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1850
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1851
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1852
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1853
       0,     0,  1227,     0,     0,     0,     0,     0,  1227,     0,
1854
       0,     0,     0,     0,  1227,     0,     0,     0,     0,     0,
1855
       0,     0,     0,   894,     0,     0,     0,     0,     0,     0,
1856
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1857
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1858
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1859
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1860
       0,     0,     0,  1281,     0,   894,   894,     0,     0,     0,
1861
       0,     0,     0,     0,     0,     0,     0,  1334
1862
};
1863
1864
static const yytype_int16 yycheck[] =
1865
{
1866
      45,   236,   575,   243,     0,   352,   115,    52,    53,     0,
1867
      55,   768,   228,    58,   196,    60,   621,    62,   380,   444,
1868
     365,    66,   627,    68,   201,    70,   371,    72,   375,    74,
1869
     444,    76,   881,    78,   209,    80,   221,   131,   132,   224,
1870
     385,   358,   864,    88,   207,   806,   213,   204,   421,   133,
1871
      95,   545,    97,   981,    99,  1178,   101,   849,   103,   844,
1872
     105,   846,   244,   849,   849,   615,   852,   852,   192,   866,
1873
     855,   413,   869,   858,   694,     0,  1093,   864,   860,   723,
1874
    1028,   864,   922,     0,   672,  1365,     4,     6,   720,   849,
1875
    1402,   195,   852,   195,     4,   855,    17,   201,  1410,     4,
1876
    1412,    19,   147,   371,    17,  1109,     6,  1111,    36,    22,
1877
      17,    29,    50,     6,    41,  1427,    16,   746,   353,   748,
1878
      17,   750,    17,   752,    17,   754,  1110,    26,  1112,  1113,
1879
       3,     5,    27,    66,  1357,   561,    74,   221,    50,    57,
1880
     224,    15,     9,    61,     0,  1368,   191,    57,     6,     7,
1881
      17,    61,    79,    26,    12,    52,  1180,    95,   393,    17,
1882
      55,    82,   588,    17,    97,    93,    94,    80,    81,    87,
1883
      89,  1483,   407,    91,    81,  1487,  1180,    87,  1458,   414,
1884
      79,    91,    87,    95,   399,  1189,    91,   402,    62,    89,
1885
       7,   978,   374,   428,    11,   978,    89,    51,    52,   956,
1886
      17,   958,  1024,    68,   249,   170,    14,   384,  1192,   254,
1887
     426,   256,   557,  1005,   259,   260,    68,   154,   563,  1005,
1888
      17,    73,  1008,  1008,   569,  1010,    23,  1067,    41,  1014,
1889
      17,    89,   356,  1257,    99,  1259,   281,   282,  1020,   556,
1890
      27,   286,   587,  1092,   289,  1005,   413,    99,  1008,  1032,
1891
    1010,   296,  1375,   626,  1014,  1183,   301,  1205,   303,   864,
1892
      66,  1278,   502,   308,    17,    65,    72,    54,    55,   586,
1893
     315,    24,    80,    81,  1114,   320,   201,   897,   922,   621,
1894
     325,   198,   327,   903,   778,   835,   331,   919,    96,   557,
1895
     530,    97,     9,   338,    32,   477,   341,    36,   927,   887,
1896
      17,   569,   931,   891,   349,    62,   935,   936,   937,     5,
1897
       5,   940,   941,  1153,  1365,   944,    54,    55,    57,    15,
1898
      15,  1372,    39,   362,     7,   560,  1118,   170,    11,    12,
1899
      13,  1088,  1118,  1119,    17,   419,  1121,     7,   422,  1136,
1900
      17,    11,    12,    13,   383,    22,  1107,    17,  1276,    36,
1901
      20,   566,    22,   568,    93,    94,   571,   572,  1118,  1119,
1902
    1120,  1121,   597,    17,   579,  1188,    62,    63,    19,   170,
1903
      57,  1194,   363,    27,    61,   590,   723,   612,    29,   370,
1904
     615,   377,   642,   418,    71,   645,   601,    70,   623,   424,
1905
     605,   170,  1149,   608,   439,  1180,   441,  1002,    33,    34,
1906
      70,   446,    56,     7,   619,     7,    93,    94,    12,    11,
1907
    1196,   456,   170,    17,   591,   460,   656,  1447,  1447,  1449,
1908
    1449,    42,  1451,   468,   797,    17,  1354,  1032,  1458,  1458,
1909
     162,    25,   164,  1282,   609,    27,  1196,  1197,  1198,     7,
1910
     156,   486,  1203,   606,    12,   602,    40,   492,  1077,  1078,
1911
    1079,  1080,   163,   157,   621,    49,  1278,   168,   169,   170,
1912
     564,   565,   564,   565,   509,   879,   813,  1269,   785,   157,
1913
      17,  1273,  1257,  1502,  1259,  1232,   580,   581,   580,   581,
1914
      27,    58,   907,  1240,    78,    32,  1335,   591,   723,   162,
1915
      14,   164,   537,    17,  1255,  1256,   541,   814,    22,    49,
1916
    1356,  1357,  1358,  1359,  1257,  1361,  1259,    54,    55,    17,
1917
      31,    32,  1368,    17,  1274,    23,    24,    21,    22,   154,
1918
     155,   156,    25,   158,   159,   160,   161,   162,   158,   159,
1919
     160,     7,  1161,    54,    55,    11,    12,    13,    16,   633,
1920
    1358,  1359,   120,  1361,   122,    17,   124,  1365,   126,  1367,
1921
      48,  1369,  1370,   788,  1372,    17,    80,    81,    20,     7,
1922
      22,   166,   167,    11,    12,    13,  1184,    26,  1186,    17,
1923
      33,  1189,    96,    34,    22,   922,  1331,  1433,  1333,  1184,
1924
    1436,  1186,   168,   169,  1189,  1441,  1215,  1192,  1444,  1263,
1925
      63,  1265,  1349,  1449,    70,    75,    76,   832,   161,   162,
1926
     835,   836,    59,    60,    80,    81,     7,     8,    46,   654,
1927
      11,    12,    13,    14,   155,  1433,    17,   158,   159,   160,
1928
     161,   162,    70,  1441,   165,   860,    27,    62,    63,    30,
1929
      31,    32,    80,    81,    54,    55,  1492,    80,    81,   684,
1930
     162,   818,  1498,  1461,   689,   163,     7,  1465,  1369,  1370,
1931
      11,    12,    13,    54,    55,    56,    17,  1002,    83,    84,
1932
    1265,    22,     7,  1268,  1041,  1042,    11,    12,    13,    70,
1933
    1032,     9,    17,  1278,   954,   955,    21,    22,    30,    17,
1934
     154,  1028,   164,   792,    85,   765,   766,   922,   923,    27,
1935
     875,     8,    30,    31,    32,    96,    55,   742,   721,   744,
1936
     809,    39,   747,   375,   749,   352,   751,   920,   753,    70,
1937
     155,   756,   923,   158,   159,   160,    54,    55,    56,   764,
1938
    1067,   844,   767,   845,   769,    70,  1096,  1097,   846,   774,
1939
     854,  1005,     7,   857,   544,  1127,    11,    12,    13,    14,
1940
    1284,     7,    17,   563,  1002,    11,    12,    13,    14,  1239,
1941
    1225,    17,    27,  1242,  1112,    30,    31,    32,  1192,  1359,
1942
    1370,    27,    37,   998,    30,    31,    32,  1114,     7,  1367,
1943
       0,  1523,    11,    12,    13,    14,   647,    17,    17,    54,
1944
      55,    56,   201,   553,   871,  1020,   129,    27,    54,    55,
1945
      56,    31,    32,   129,     0,    70,   129,   129,   980,   981,
1946
     791,   205,   390,   794,    70,   275,  1153,   154,   155,   129,
1947
    1026,   158,   159,   160,    54,    55,   199,   808,     7,     8,
1948
     811,    96,    11,    12,    13,    14,   199,  1067,    17,   816,
1949
      96,    70,  1067,   984,   821,   822,   823,   824,    27,   112,
1950
     485,    30,    31,    32,   117,   129,   119,   843,   121,    17,
1951
     123,     8,   125,   129,   587,    57,   158,   129,  1205,    27,
1952
      17,   129,    30,    31,    32,    54,    55,    56,   129,   408,
1953
      27,   129,     7,    30,    31,    32,    11,    12,    13,  1114,
1954
     195,    70,    17,    10,   195,   620,    54,    55,    56,   620,
1955
      17,    18,   620,  1017,   620,  1019,   129,    54,    55,    56,
1956
      27,    28,   129,    30,    31,    32,   129,    96,    35,   129,
1957
     155,   156,   957,   158,   159,   160,   129,    85,  1153,   129,
1958
      47,  1494,   757,     0,   340,   343,    53,    54,    55,    56,
1959
       0,   345,  1470,     0,   136,   971,   138,    64,   140,   141,
1960
      67,   143,    69,    -1,    -1,    -1,    -1,   149,   150,    -1,
1961
     152,   153,   154,   155,   156,   157,   158,   159,   160,    86,
1962
     162,    88,   164,    90,    -1,    92,    -1,    -1,    -1,    10,
1963
      -1,    98,    -1,    -1,    -1,    -1,    -1,    18,    -1,    -1,
1964
      -1,    -1,   184,    -1,   186,   187,   188,    28,   190,    -1,
1965
      -1,    -1,     9,    17,    35,    -1,   202,    38,    -1,   205,
1966
      17,  1183,  1126,    27,   210,    -1,    30,    31,    32,    -1,
1967
      27,  1056,    53,    30,    31,    32,    -1,    -1,    -1,    -1,
1968
      44,    -1,    39,    64,    -1,  1070,    67,    44,    69,    -1,
1969
      54,    55,    56,    -1,    -1,    -1,    -1,    54,    55,    56,
1970
      -1,    -1,    -1,    -1,   246,    86,   248,    88,    17,    90,
1971
    1095,    92,    -1,   255,    -1,   257,    -1,    98,    27,   261,
1972
     262,    30,    31,    32,    -1,   267,   268,   269,   270,    -1,
1973
     272,    -1,   274,   275,   276,    44,  1200,    46,    -1,    -1,
1974
      -1,   367,    -1,   285,    -1,    54,    55,    56,   290,   291,
1975
    1135,   293,   378,   379,  1276,    -1,  1141,    -1,   300,    -1,
1976
     302,   387,  1147,    -1,   306,   307,  1151,    -1,   310,    -1,
1977
     396,   313,   314,    -1,    -1,   401,   318,   319,   404,    -1,
1978
      -1,    16,    17,    -1,   326,    -1,   412,    -1,   330,    -1,
1979
    1175,   333,    27,    -1,    -1,    30,    31,    32,   340,    10,
1980
     342,   343,   344,   345,   346,   155,   348,    18,   158,   159,
1981
     160,   161,   162,   163,    -1,   165,    -1,    28,    -1,    54,
1982
      55,    56,    -1,    -1,    35,    -1,    -1,  1212,    -1,    -1,
1983
      -1,    -1,  1354,    -1,   380,  1220,    47,  1222,    -1,     9,
1984
      -1,    -1,    53,    -1,   390,    -1,   392,    17,    -1,  1234,
1985
      -1,    -1,   398,    64,    -1,    -1,    67,    27,    69,    -1,
1986
      30,    31,    32,  1438,    -1,    -1,    -1,    -1,    -1,    39,
1987
      -1,    -1,    -1,    43,    44,    86,    -1,    88,    -1,    90,
1988
      -1,    92,    -1,    -1,    54,    55,    56,    98,    -1,   368,
1989
     369,    -1,    -1,   372,   373,   437,   438,    -1,    -1,    -1,
1990
      -1,    -1,   444,   445,    -1,   447,    -1,   386,    -1,   451,
1991
     452,   453,    -1,   455,    -1,    -1,   395,    -1,    -1,    -1,
1992
     462,   400,   464,   465,   403,   467,    -1,   469,   470,    -1,
1993
     472,   473,   411,   475,   476,    -1,    -1,    -1,   480,   481,
1994
     482,    -1,    -1,   485,    17,    -1,    -1,    -1,   490,   491,
1995
      -1,    -1,   494,   495,    27,    -1,   498,    30,    31,    32,
1996
      -1,    -1,    -1,    -1,    37,  1350,    -1,    -1,   510,   511,
1997
      -1,  1435,   514,   515,    -1,   517,   518,    -1,    -1,  1443,
1998
      -1,    54,    55,    56,    -1,   527,   528,   529,    -1,  1453,
1999
      -1,  1455,   534,    -1,   536,    -1,   538,    17,   540,    -1,
2000
    1385,    -1,  1387,    -1,   550,    -1,    -1,    27,   554,  1394,
2001
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2002
    1405,    -1,  1407,    -1,   154,   155,   156,   573,   158,   159,
2003
     160,   161,   162,    -1,    54,    55,    56,   155,   156,    -1,
2004
     158,   159,   160,   161,   162,    -1,    -1,   165,   594,   100,
2005
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2006
     111,   112,   113,   100,   101,   102,   103,   104,   105,   106,
2007
     107,   108,    -1,   155,   156,   621,   158,   159,   160,   161,
2008
     162,   627,    -1,    -1,    -1,   631,    -1,    -1,    -1,    -1,
2009
      -1,    -1,    -1,   635,    -1,    -1,    -1,    -1,    -1,    -1,
2010
     642,    -1,    -1,   645,    -1,   647,    -1,   649,    -1,    -1,
2011
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2012
      -1,    -1,    -1,    -1,    -1,   667,    -1,   669,   670,   671,
2013
     672,    -1,    -1,   675,  1519,    -1,    -1,    -1,    -1,    -1,
2014
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   691,
2015
     692,   693,   694,    -1,   696,    -1,   698,    -1,   700,    -1,
2016
     702,    -1,    -1,    -1,   706,    -1,    -1,    -1,    -1,   711,
2017
     712,   713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2018
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   729,    -1,    -1,
2019
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   741,
2020
      -1,   743,    -1,    -1,   746,    -1,   748,    -1,   750,    -1,
2021
     752,    -1,   754,    -1,    -1,   757,    -1,    -1,   760,    -1,
2022
      -1,    -1,    -1,   765,   766,    -1,   768,    -1,    -1,    -1,
2023
     772,    -1,    -1,    -1,    -1,   777,    -1,    -1,    -1,    -1,
2024
      -1,    -1,    -1,    -1,    -1,    -1,   792,    -1,    -1,    -1,
2025
      -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,   118,
2026
     119,   120,   121,   809,   123,   124,   125,   126,   127,   128,
2027
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2028
     139,   140,   141,   142,   143,   144,   145,   146,    -1,    -1,
2029
     149,   150,   151,   152,   153,    -1,    -1,    -1,   844,    -1,
2030
     846,    -1,    -1,   849,    -1,    -1,   852,    -1,    -1,   855,
2031
      -1,    -1,   858,    -1,    -1,    -1,    -1,    -1,   864,    -1,
2032
      -1,    -1,    -1,    -1,    -1,    -1,   872,    -1,    -1,    -1,
2033
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   879,    -1,   881,
2034
      -1,    -1,    -1,    -1,    -1,   887,    -1,    -1,    -1,   891,
2035
      -1,   893,    -1,   895,   896,   897,    -1,    -1,   900,    -1,
2036
      -1,   903,    -1,    -1,   906,   907,    -1,    -1,    -1,    -1,
2037
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2038
      -1,    -1,    -1,   925,    -1,   927,    -1,   929,    -1,   931,
2039
      -1,    -1,    -1,   935,   936,   937,    -1,    -1,   940,   941,
2040
      -1,   943,   944,    -1,   946,    -1,    -1,   949,    -1,    -1,
2041
      -1,    -1,   954,   955,   956,    -1,   958,    -1,   960,   961,
2042
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   970,   971,
2043
      -1,    -1,   978,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2044
      -1,    -1,   988,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2045
      -1,    -1,    -1,    -1,    -1,    -1,  1002,    -1,    -1,    -1,
2046
      -1,    -1,  1008,    -1,  1010,    -1,    -1,    -1,  1014,    -1,
2047
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1024,    -1,
2048
      -1,    -1,    -1,    -1,    -1,    -1,  1032,    -1,    -1,  1031,
2049
      -1,    -1,    -1,    -1,    -1,  1037,    -1,    -1,    -1,  1041,
2050
    1042,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2051
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1059,    -1,  1061,
2052
    1062,  1063,  1064,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2053
      -1,  1073,  1074,  1075,    -1,  1077,  1078,  1079,  1080,    -1,
2054
    1082,    -1,  1084,    -1,    -1,    -1,  1088,    -1,  1090,    -1,
2055
    1092,    -1,    -1,    -1,  1096,  1097,    -1,    -1,    -1,    -1,
2056
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2057
      -1,    -1,    -1,    -1,    -1,  1121,    -1,   203,    -1,    -1,
2058
     206,    -1,   208,    -1,    -1,   211,  1132,    -1,    -1,    -1,
2059
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1140,    -1,
2060
      -1,    -1,  1144,  1145,  1146,    -1,  1148,  1149,  1150,    -1,
2061
      -1,    -1,    -1,  1155,  1156,    -1,  1158,    -1,    -1,  1161,
2062
      -1,  1163,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2063
      -1,    -1,    -1,    -1,  1180,    -1,    -1,  1179,  1184,    -1,
2064
    1186,    -1,    -1,  1189,    -1,    -1,  1192,    -1,    -1,    -1,
2065
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2066
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2067
      -1,    -1,    -1,  1215,    -1,    -1,    -1,    -1,    -1,    -1,
2068
      -1,  1223,    -1,  1225,  1226,    -1,  1228,    -1,    -1,    -1,
2069
    1232,  1233,    -1,    -1,  1236,  1237,    -1,  1239,  1240,    -1,
2070
    1242,  1243,  1244,    -1,    -1,    -1,    -1,    -1,  1250,  1251,
2071
      -1,  1257,    -1,  1259,    -1,    -1,    -1,  1263,    -1,  1265,
2072
      -1,    -1,  1268,    -1,   350,    -1,    -1,    -1,    -1,    -1,
2073
      -1,   357,  1278,   359,   360,    -1,    -1,    -1,    -1,    -1,
2074
    1282,  1283,  1284,    -1,    -1,  1287,    -1,    -1,    -1,    -1,
2075
     376,    -1,    -1,  1295,    -1,   381,    -1,    -1,    -1,    -1,
2076
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2077
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1320,  1321,
2078
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1329,    -1,  1331,
2079
      -1,  1333,    -1,  1335,    -1,  1337,  1338,  1339,  1340,  1341,
2080
      -1,    -1,  1344,    -1,    -1,    -1,    -1,  1349,    -1,    -1,
2081
    1356,  1357,  1358,  1359,    -1,  1361,    -1,   309,    -1,  1365,
2082
      -1,  1367,  1368,  1369,  1370,    -1,  1372,    -1,    -1,    -1,
2083
      -1,   323,   324,    -1,   326,   461,    -1,    -1,    -1,    -1,
2084
      -1,    -1,  1384,    -1,  1386,   471,    -1,    -1,    -1,    -1,
2085
      -1,  1393,   478,  1395,    -1,    -1,    -1,    -1,  1400,    -1,
2086
    1402,    -1,  1404,    -1,    -1,    -1,    -1,   493,  1410,    -1,
2087
    1412,    -1,    -1,    -1,   500,  1417,    -1,   503,   504,    -1,
2088
    1422,    -1,    -1,    -1,    -1,  1427,    -1,   513,    -1,    -1,
2089
     516,    -1,    -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,
2090
     526,    -1,    -1,    -1,    -1,   531,    -1,   533,    -1,    -1,
2091
      -1,    -1,    -1,    -1,    -1,    -1,   542,    -1,    -1,    -1,
2092
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1470,   555,
2093
      -1,  1473,  1474,   559,    -1,    -1,  1478,    -1,    -1,  1481,
2094
      -1,  1483,  1484,    -1,    -1,  1487,    -1,    -1,   574,    -1,
2095
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   585,
2096
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2097
      -1,    -1,    -1,    -1,  1516,    -1,    -1,    -1,    -1,    -1,
2098
      -1,    -1,    -1,    -1,   476,    -1,    -1,    -1,    -1,    -1,
2099
      -1,    -1,   484,    -1,    -1,    -1,   622,   489,    -1,    -1,
2100
      -1,    -1,   628,    -1,   496,   497,   632,    -1,    -1,   501,
2101
      -1,    -1,   638,    -1,   640,    -1,    -1,    -1,   644,    -1,
2102
     512,    -1,    -1,    -1,   650,    -1,    -1,    -1,    -1,    -1,
2103
      -1,   657,   524,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2104
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   673,     4,     5,
2105
     676,   677,   678,   679,    10,    -1,    -1,    -1,    -1,    15,
2106
      -1,    17,    18,    -1,   690,    -1,    -1,    -1,    -1,    25,
2107
      -1,    -1,    28,   699,    -1,   701,    -1,    -1,    -1,    35,
2108
      36,    -1,    38,    -1,    40,    -1,    -1,    -1,   714,    45,
2109
     716,    47,   718,    -1,    50,    -1,    -1,    53,   724,    -1,
2110
      -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,    -1,
2111
      66,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
2112
      -1,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2113
      86,    87,    88,    -1,    90,    91,    92,    93,    94,    95,
2114
      -1,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,    -1,
2115
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2116
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   793,    -1,   795,
2117
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2118
      -1,    -1,    -1,    -1,   810,    -1,   812,    -1,    -1,    -1,
2119
     682,   683,    -1,   819,    -1,    -1,   688,    -1,    -1,    -1,
2120
     826,    -1,   828,    -1,   830,    -1,    -1,    -1,    -1,    -1,
2121
      -1,   703,   704,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2122
      -1,    -1,    -1,   715,    -1,   717,    -1,   719,    -1,    -1,
2123
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   865,
2124
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   873,   114,   115,
2125
     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2126
     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2127
     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2128
     146,   147,   148,   149,   150,   151,   152,   153,    -1,    -1,
2129
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2130
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   934,    -1,
2131
      -1,    -1,    -1,   939,    -1,    -1,    -1,    -1,    -1,    -1,
2132
      -1,    -1,    -1,    -1,    -1,   951,    -1,    -1,    -1,    -1,
2133
      -1,    -1,    -1,    -1,    -1,    -1,   962,    -1,    -1,    -1,
2134
      -1,    -1,    -1,   969,    -1,    -1,   972,   973,   974,    -1,
2135
      -1,   977,    -1,   979,    -1,    -1,   982,    -1,    -1,    -1,
2136
      -1,   987,    -1,   989,   990,   991,   992,   993,   994,   995,
2137
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1003,    -1,    -1,
2138
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2139
      -1,    -1,    -1,    -1,   886,    -1,   888,   889,    -1,    -1,
2140
      -1,    -1,    -1,    -1,    -1,    -1,   898,  1033,   900,   901,
2141
      -1,    -1,    -1,    -1,    -1,    -1,   908,   909,    -1,   911,
2142
     912,   913,   914,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2143
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2144
      -1,    -1,    -1,    -1,    -1,    -1,  1072,    -1,    -1,    -1,
2145
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2146
      -1,  1087,    -1,  1089,    -1,    -1,    -1,    -1,    -1,    -1,
2147
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1103,  1104,    -1,
2148
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2149
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2150
      -1,    -1,  1128,    -1,    -1,    -1,    -1,  1133,  1134,   109,
2151
     110,   111,   112,   113,    -1,    -1,   116,   117,   118,   119,
2152
     120,   121,   122,   123,   124,   125,   126,   127,   128,    -1,
2153
     130,   131,   132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2154
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1040,    -1,
2155
      -1,    -1,    -1,  1045,  1046,    -1,  1048,    -1,    -1,    -1,
2156
      -1,    -1,  1054,    -1,    -1,  1057,    -1,    -1,    -1,    -1,
2157
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1204,    -1,
2158
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2159
      -1,    -1,   192,    -1,    -1,    -1,    -1,   197,    -1,    -1,
2160
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2161
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2162
      -1,    -1,    -1,  1249,    -1,    -1,    -1,    -1,    -1,    -1,
2163
      -1,    -1,    -1,    -1,    -1,    -1,  1262,    -1,    -1,    -1,
2164
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2165
      -1,  1277,    -1,  1279,  1280,    -1,    -1,    -1,    -1,    -1,
2166
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2167
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2168
    1172,  1173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2169
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2170
      -1,  1327,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2171
      -1,    -1,    -1,    -1,    -1,    -1,  1342,    -1,    -1,    -1,
2172
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1353,    -1,  1355,
2173
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1229,  1364,    -1,
2174
    1366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2175
      -1,    -1,    -1,    -1,    -1,    -1,   356,    -1,    -1,    -1,
2176
    1252,   361,   362,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2177
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2178
      -1,    -1,   382,   383,    -1,    -1,    -1,    -1,    -1,    -1,
2179
      -1,   391,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2180
      -1,    -1,    -1,  1429,  1430,    -1,    -1,   407,    -1,    -1,
2181
     410,    -1,    -1,    -1,    -1,    -1,    -1,   417,    -1,    -1,
2182
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2183
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2184
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2185
    1476,    -1,    -1,  1479,  1346,    -1,    -1,    -1,    -1,  1485,
2186
    1486,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2187
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2188
      -1,    -1,    -1,    -1,    -1,  1377,    -1,    -1,  1514,  1381,
2189
    1382,    -1,  1384,    -1,  1386,    -1,    -1,    -1,  1390,  1391,
2190
      -1,  1393,    -1,  1395,  1530,    -1,    -1,  1399,    -1,    -1,
2191
      -1,    -1,  1404,    -1,  1406,    -1,    -1,  1409,    -1,    -1,
2192
      -1,    -1,    -1,  1415,    -1,  1417,  1418,    -1,  1420,    -1,
2193
    1422,  1423,    -1,  1425,    -1,    -1,    -1,    -1,    -1,    -1,
2194
      -1,    -1,    -1,    -1,    -1,    -1,   546,   547,    -1,    -1,
2195
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2196
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   567,    -1,    -1,
2197
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2198
    1472,  1473,    -1,  1475,   584,  1477,  1478,    -1,  1480,  1481,
2199
    1482,    -1,  1484,    -1,    -1,    -1,  1488,  1489,    -1,    -1,
2200
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2201
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2202
      -1,  1513,    -1,  1515,  1516,    -1,  1518,    -1,    -1,   629,
2203
      -1,    -1,    -1,   633,    -1,  1527,   114,   115,   116,   117,
2204
     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2205
     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2206
     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2207
     148,   149,   150,   151,   152,   153,    -1,    -1,    -1,    -1,
2208
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2209
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2210
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2211
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2212
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2213
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2214
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2215
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2216
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2217
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2218
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   787,    -1,    -1,
2219
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2220
      -1,    -1,    -1,    -1,   804,    -1,   806,    -1,    -1,    -1,
2221
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2222
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2223
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2224
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   848,    -1,
2225
      -1,   851,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2226
     860,    -1,    -1,    -1,    -1,    -1,   866,    -1,    -1,   869,
2227
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2228
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2229
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2230
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2231
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2232
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2233
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2234
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2235
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2236
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2237
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2238
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2239
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2240
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2241
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2242
    1020,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1029,
2243
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2244
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2245
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2246
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2247
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2248
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2249
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2250
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1107,    -1,    -1,
2251
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2252
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2253
      -1,    -1,    -1,    -1,    -1,    -1,  1136,    -1,    -1,    -1,
2254
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2255
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2256
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2257
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2258
      -1,    -1,  1182,    -1,    -1,    -1,    -1,    -1,  1188,    -1,
2259
      -1,    -1,    -1,    -1,  1194,    -1,    -1,    -1,    -1,    -1,
2260
      -1,    -1,    -1,  1203,    -1,    -1,    -1,    -1,    -1,    -1,
2261
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2262
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2263
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2264
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2265
      -1,    -1,    -1,  1253,    -1,  1255,  1256,    -1,    -1,    -1,
2266
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1267
2267
};
2268
2269
  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2270
     symbol of state STATE-NUM.  */
2271
static const yytype_int16 yystos[] =
2272
{
2273
       0,     4,     5,    10,    15,    17,    18,    25,    28,    35,
2274
      36,    38,    40,    45,    47,    50,    53,    61,    64,    66,
2275
      67,    68,    69,    77,    78,    86,    87,    88,    90,    91,
2276
      92,    93,    94,    95,    97,    98,    99,   172,   173,   174,
2277
     245,   247,   329,   330,   333,   335,   356,   357,   358,   359,
2278
     360,   361,   364,   365,   367,   369,   377,   378,   379,   388,
2279
     389,   400,   402,   413,   414,   415,   423,   424,   425,   426,
2280
     427,   428,   429,   431,   432,   433,   434,   435,   436,   437,
2281
     439,   461,   462,   463,   465,   467,   468,   474,   475,   481,
2282
     486,   489,   492,   495,   496,   499,   504,   506,   509,   513,
2283
     526,   530,   531,   536,   538,   539,     0,   166,   167,   209,
2284
     209,   209,   209,   209,   170,   211,   209,   209,   209,   209,
2285
     209,   209,   209,   209,   209,   209,   209,   209,   209,   209,
2286
     209,   209,   209,   209,   154,   212,   248,   212,   336,   212,
2287
     363,   363,   212,   370,     6,    89,   373,   374,   212,   380,
2288
     363,   212,   403,   363,   380,   363,   380,   363,   380,   363,
2289
     380,   212,   476,   212,   500,   358,   359,   360,   361,   388,
2290
     414,   415,   426,   431,   435,   461,   474,   481,   486,   489,
2291
     492,   495,   505,   507,   508,   212,   514,   514,   514,    41,
2292
     518,   519,   211,   211,   211,   211,   211,   209,   211,   211,
2293
     211,   211,   211,   381,   211,   211,   430,   211,   430,   211,
2294
     211,   438,   211,   211,   168,   169,   210,   211,   211,   510,
2295
     511,   211,   527,   528,   211,   532,   533,   211,   209,   155,
2296
     156,   158,   159,   160,   161,   162,   175,   176,   177,   179,
2297
     181,   182,   185,   187,   188,   212,   249,    62,   337,   339,
2298
      19,    29,    57,   330,   335,   346,   347,   366,   378,   396,
2299
     397,   464,   466,   469,   471,   472,   473,   346,   366,   464,
2300
     466,   179,   371,   212,   375,   367,   390,   391,   393,   394,
2301
     395,   396,   397,     3,    26,   404,   405,    71,   333,   335,
2302
     346,   416,   424,   482,   483,   484,   485,    23,    24,   245,
2303
     382,   383,   385,   386,   210,    72,   428,   487,   488,   245,
2304
     382,   210,    73,   433,   490,   491,   210,    74,   437,   493,
2305
     494,    51,    52,   245,   440,   441,   443,   444,   210,    65,
2306
     477,   479,   496,   497,   538,    75,    76,   501,   502,    79,
2307
     515,   516,   518,   515,   518,   515,   518,    42,   520,   521,
2308
     174,   187,   157,   175,   186,   179,   211,   246,   211,   331,
2309
     334,   209,   209,   211,   209,   211,   209,   209,   211,   211,
2310
     211,   211,   211,   211,   211,   211,   381,   211,   209,   209,
2311
     211,   401,   209,   209,   211,   211,   211,   209,   211,   266,
2312
     211,   209,   211,   209,   211,   211,   209,   266,   211,   211,
2313
     211,   209,   211,   211,   209,   266,   266,   209,   211,   266,
2314
     209,   211,   209,   211,   209,   211,   511,   209,   211,   211,
2315
     528,   211,   211,   533,   211,   211,   209,   210,   180,   183,
2316
     184,   188,   187,    33,    34,   176,   212,   250,   251,   252,
2317
     254,   255,   210,    63,   337,   342,   343,   367,   210,   210,
2318
     212,   340,   336,   378,    58,   348,   349,    16,   276,   278,
2319
     290,   362,   373,   212,   398,   398,    49,   446,   448,   446,
2320
     378,   362,   446,   446,   179,   372,   178,   180,   376,   210,
2321
     400,   398,   398,     9,   245,   407,   409,   210,   212,   406,
2322
     336,   424,   290,   417,   446,   398,   245,   245,   385,   212,
2323
     384,   245,   187,   387,   275,   277,   285,   287,   288,   290,
2324
     446,   398,   245,   275,   446,   398,   275,   446,   398,   187,
2325
     191,   193,   212,   442,   440,   212,   445,   446,   398,   497,
2326
     187,   503,   212,   517,   520,    26,   450,   451,   520,    48,
2327
     540,   544,   174,   187,   211,   211,   209,   209,   331,   334,
2328
     211,   332,   209,   211,   211,   338,   211,   211,   211,   351,
2329
     209,   209,   210,   211,   211,   211,   211,   209,   211,   211,
2330
     210,   211,   211,   211,   368,   211,   266,   179,   210,   211,
2331
     211,   211,   266,   401,   209,   266,   211,   211,   209,   210,
2332
     211,   211,   266,   266,   211,   210,   266,   175,   210,   210,
2333
     209,   211,   211,   266,   210,   211,   211,   210,   211,   211,
2334
     162,   164,   190,   192,   196,   199,   210,   266,   210,   211,
2335
     211,   211,   498,   175,   210,   210,   211,   211,   529,   209,
2336
     211,   211,   214,   209,   210,   251,   254,   212,   253,   212,
2337
     256,   245,   345,   176,   344,   342,   245,   341,   210,   337,
2338
     362,    59,    60,   352,   354,   210,   187,   350,   100,   101,
2339
     102,   103,   104,   105,   106,   107,   108,   291,   276,   346,
2340
     366,   346,   366,   275,   212,   449,   275,   362,   275,   275,
2341
       7,    11,   245,   267,   271,   210,     7,    12,   265,   270,
2342
     275,   346,   366,   346,   366,   212,   410,   210,   337,   417,
2343
     291,   275,   346,   424,   245,   187,   109,   110,   111,   112,
2344
     113,   291,   292,   293,   275,   428,   275,   433,   275,   437,
2345
     187,   194,   187,   200,   275,   469,   471,   472,   473,   480,
2346
      27,    30,    31,    32,    54,    55,    56,   215,   217,   218,
2347
     219,   220,   221,   222,   223,   226,   227,   228,   230,   231,
2348
     236,   238,   241,   242,   245,   257,   258,   497,   210,   187,
2349
     450,    39,    44,   215,   409,   453,   458,   459,   524,   525,
2350
     210,   212,   452,    46,   537,   215,   210,   514,   211,   210,
2351
     210,   332,   210,   332,   338,   211,   210,   209,   175,   210,
2352
     211,   211,   211,   470,   211,   470,   210,   211,   210,   210,
2353
     210,   210,   266,   266,   209,   266,   209,   210,   211,   211,
2354
     392,   211,   392,   211,   211,   210,   211,   210,   211,   266,
2355
     266,   211,   211,   211,   211,   210,   266,   210,   266,   210,
2356
     266,   192,   190,   163,   165,   188,   189,   197,   200,   205,
2357
     206,   207,   210,   211,   211,   209,   211,   216,   209,   211,
2358
     216,   209,   211,   216,   209,   211,   216,   209,   211,   216,
2359
     209,   216,   209,   498,   211,   512,   209,   529,   529,   209,
2360
     214,   209,   211,   353,   209,   211,   541,   542,   254,   337,
2361
     212,   355,   187,   158,   159,   160,   294,   378,   245,   373,
2362
     210,   378,   210,   450,   212,   273,   273,   378,   245,   265,
2363
     373,   399,   210,   378,   210,   178,   411,   337,   294,   424,
2364
     210,   294,   294,   294,   294,   210,   210,   210,   187,   195,
2365
     200,   187,   201,   189,   208,   400,   219,   245,   257,   222,
2366
     226,   245,   257,   212,   224,   230,   236,   241,   212,   229,
2367
     236,   241,   176,   232,   241,   176,   239,   191,   212,   243,
2368
     154,   213,    43,   215,   453,   458,   522,   523,   524,   210,
2369
     410,   410,   344,   245,   210,   400,   446,   509,   530,   534,
2370
     450,   515,   353,   266,   470,   266,   266,   470,   211,   447,
2371
     211,   211,   392,   266,   211,   266,   266,   392,   211,   408,
2372
     266,   266,   266,   266,   266,   266,   192,   208,   189,   198,
2373
     205,   201,   211,   478,   216,   211,   216,   210,   211,   216,
2374
     211,   216,   216,   210,   211,   216,   216,   211,   216,   211,
2375
     211,   210,   512,   512,   211,   214,   209,   214,   211,   211,
2376
     210,   210,   211,   543,   211,   542,   210,   210,   210,   210,
2377
     245,   453,   458,   210,   179,   274,   274,   210,   399,   210,
2378
       7,    11,    12,    13,   245,   263,   264,   412,   210,   210,
2379
     210,   210,   210,   210,   210,   187,   202,   203,   215,   277,
2380
     290,   210,   225,   227,   230,   236,   241,   236,   241,   241,
2381
     241,   176,   233,   176,   240,   191,   212,   244,   524,   174,
2382
     411,   212,   460,   211,   215,   409,   458,   545,   210,   211,
2383
     266,   447,   447,   266,   266,   266,   266,   209,   266,   211,
2384
     211,   211,   211,   211,   175,   205,   209,   210,   211,   211,
2385
     211,   211,   216,   216,   216,   216,   211,   211,   237,   210,
2386
     214,   210,   211,   454,   353,   537,   209,   543,   543,     8,
2387
     295,   298,   210,   210,   273,   295,   296,   298,   295,   296,
2388
     297,   298,   187,   204,   205,   230,   236,   241,   236,   241,
2389
     241,   241,   176,   234,   267,   210,     7,    11,    12,    13,
2390
      14,    70,   245,   455,   456,   457,   210,   210,   209,   410,
2391
     211,   284,   209,   211,   211,   418,   211,   286,   209,   211,
2392
     279,   214,   211,   289,   209,   205,   211,   211,   211,   216,
2393
     211,   266,   266,   209,   534,   211,     7,    11,    12,    13,
2394
      14,    70,    85,    96,   217,   245,   257,   259,   260,   261,
2395
     262,   268,   272,   281,   283,   295,   328,   212,   299,   274,
2396
      37,   215,   328,   420,   421,   215,   328,   299,   215,   295,
2397
     328,   215,   297,   299,   236,   241,   241,   241,   176,   235,
2398
     273,   210,   411,   209,   216,   209,   209,   211,   284,   211,
2399
     280,   211,   266,   211,   214,   211,   419,   209,   211,   211,
2400
     279,   214,   289,   211,   211,   210,   211,   269,   211,   535,
2401
     266,   212,   282,   273,   273,   283,   283,   114,   115,   116,
2402
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2403
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2404
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2405
     147,   148,   149,   150,   151,   152,   153,   300,   303,   312,
2406
     210,   420,   215,   420,   212,   422,   215,   312,   114,   122,
2407
     147,   148,   305,   308,   312,   241,   274,   210,   215,   524,
2408
     537,   210,   210,   353,   211,   269,   211,   211,   211,   211,
2409
     210,   211,   419,   419,   353,   211,   310,   211,   211,   211,
2410
     211,   210,   211,   266,   214,   209,   210,   274,   210,    20,
2411
      22,   245,   260,   301,   313,   314,   317,   318,   301,    21,
2412
     245,   260,   302,   315,   316,   317,   302,    80,    81,   245,
2413
     260,   304,   317,   319,   321,   322,   323,   324,   210,   245,
2414
     268,   311,   317,   319,   210,   245,   306,   313,   317,   301,
2415
     245,   307,   315,   317,   307,   245,   309,   317,   319,   534,
2416
     266,   266,   266,   211,   266,   209,   211,   266,   209,   266,
2417
     266,   211,   266,   209,   211,   266,   266,   211,   320,   211,
2418
     320,   211,   266,   209,   266,   209,   266,   320,   211,   320,
2419
     266,   211,   266,   266,   266,   211,   266,   266,   266,   320,
2420
     210,   210,   260,   317,   176,   260,   187,   260,   317,   176,
2421
     260,   321,   323,   260,   323,   176,   176,   268,   317,   317,
2422
     535,   266,   211,   266,   211,   266,   210,   266,   211,   266,
2423
     210,   266,   211,   266,   266,   320,   211,   266,   210,   210,
2424
     320,   266,   266,   260,   265,   260,   323,    82,   325,   326,
2425
     266,   210,   266,   211,   266,   266,   209,   325,    83,    84,
2426
     327,   266,   210
2427
};
2428
2429
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2430
static const yytype_int16 yyr1[] =
2431
{
2432
       0,   171,   172,   172,   172,   172,   172,   172,   172,   172,
2433
     172,   172,   173,   173,   173,   173,   173,   173,   174,   174,
2434
     175,   176,   176,   177,   178,   179,   179,   180,   180,   181,
2435
     182,   183,   184,   185,   185,   186,   186,   187,   187,   187,
2436
     187,   188,   188,   189,   190,   191,   191,   191,   192,   192,
2437
     193,   194,   195,   196,   197,   197,   198,   198,   199,   200,
2438
     201,   202,   202,   202,   203,   204,   205,   205,   206,   207,
2439
     207,   208,   208,   209,   209,   210,   210,   211,   212,   213,
2440
     214,   214,   215,   215,   215,   216,   216,   216,   217,   217,
2441
     218,   218,   218,   219,   219,   219,   219,   220,   221,   222,
2442
     223,   224,   225,   225,   225,   225,   225,   225,   225,   225,
2443
     225,   225,   225,   225,   225,   225,   225,   226,   226,   226,
2444
     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2445
     226,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2446
     235,   236,   237,   237,   238,   239,   240,   241,   242,   243,
2447
     243,   244,   244,   245,   246,   246,   246,   246,   246,   246,
2448
     246,   247,   248,   249,   249,   250,   250,   251,   252,   253,
2449
     254,   255,   256,   257,   258,   259,   259,   260,   261,   262,
2450
     262,   262,   262,   262,   263,   264,   264,   264,   264,   265,
2451
     266,   266,   267,   268,   269,   269,   270,   270,   271,   271,
2452
     272,   272,   273,   274,   275,   275,   275,   275,   276,   277,
2453
     278,   279,   279,   279,   279,   280,   280,   281,   282,   283,
2454
     283,   283,   283,   283,   284,   284,   284,   284,   285,   286,
2455
     286,   286,   286,   287,   288,   289,   289,   289,   290,   291,
2456
     291,   291,   291,   291,   291,   291,   291,   291,   292,   292,
2457
     293,   293,   294,   294,   294,   295,   296,   297,   298,   299,
2458
     300,   300,   300,   300,   300,   300,   300,   300,   300,   301,
2459
     301,   301,   301,   301,   301,   301,   301,   302,   302,   302,
2460
     302,   302,   302,   302,   302,   303,   303,   304,   304,   304,
2461
     304,   304,   305,   305,   305,   305,   305,   305,   305,   305,
2462
     305,   306,   306,   306,   306,   307,   307,   307,   307,   308,
2463
     308,   309,   309,   309,   310,   310,   311,   311,   311,   311,
2464
     311,   312,   312,   312,   312,   312,   312,   312,   312,   312,
2465
     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
2466
     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
2467
     312,   312,   312,   312,   312,   312,   312,   313,   314,   315,
2468
     316,   317,   318,   319,   319,   319,   319,   320,   320,   320,
2469
     320,   320,   321,   322,   323,   324,   325,   326,   327,   327,
2470
     328,   329,   329,   330,   331,   331,   332,   332,   333,   334,
2471
     334,   335,   336,   337,   338,   338,   339,   340,   341,   342,
2472
     343,   344,   345,   346,   347,   348,   349,   350,   350,   350,
2473
     351,   351,   352,   353,   353,   354,   354,   355,   356,   356,
2474
     356,   357,   357,   358,   359,   360,   361,   362,   362,   363,
2475
     364,   364,   365,   365,   366,   366,   367,   368,   368,   368,
2476
     369,   369,   370,   371,   372,   373,   374,   374,   375,   376,
2477
     376,   377,   377,   378,   379,   379,   379,   380,   381,   381,
2478
     381,   381,   381,   381,   381,   381,   382,   383,   384,   385,
2479
     386,   387,   387,   387,   388,   389,   389,   390,   390,   390,
2480
     390,   391,   392,   392,   392,   392,   392,   393,   394,   395,
2481
     396,   397,   398,   399,   400,   401,   401,   401,   402,   403,
2482
     404,   405,   405,   406,   407,   408,   408,   408,   409,   410,
2483
     411,   412,   413,   413,   414,   415,   416,   416,   417,   418,
2484
     418,   418,   418,   418,   419,   419,   419,   420,   421,   422,
2485
     423,   423,   424,   425,   425,   425,   426,   427,   427,   428,
2486
     429,   429,   430,   430,   430,   430,   431,   432,   433,   434,
2487
     434,   435,   436,   437,   438,   438,   438,   438,   438,   439,
2488
     439,   440,   441,   442,   442,   443,   444,   445,   446,   447,
2489
     447,   447,   447,   448,   449,   450,   451,   452,   453,   454,
2490
     454,   454,   455,   456,   457,   457,   457,   457,   457,   457,
2491
     458,   459,   460,   461,   461,   461,   462,   462,   463,   464,
2492
     464,   465,   466,   466,   467,   468,   469,   470,   470,   470,
2493
     471,   472,   473,   474,   475,   476,   477,   478,   478,   478,
2494
     479,   480,   480,   480,   480,   481,   482,   482,   483,   484,
2495
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
2496
     495,   496,   496,   496,   496,   496,   496,   496,   496,   496,
2497
     496,   496,   496,   497,   497,   498,   498,   498,   499,   500,
2498
     501,   502,   502,   503,   503,   503,   504,   505,   505,   506,
2499
     507,   507,   507,   507,   507,   507,   507,   507,   507,   507,
2500
     507,   507,   507,   507,   508,   508,   508,   508,   508,   508,
2501
     508,   509,   510,   510,   511,   512,   512,   512,   512,   512,
2502
     512,   512,   513,   514,   515,   516,   517,   518,   519,   520,
2503
     521,   522,   523,   524,   525,   526,   527,   527,   528,   529,
2504
     529,   529,   529,   529,   530,   531,   532,   532,   533,   534,
2505
     534,   534,   534,   535,   535,   535,   535,   536,   537,   538,
2506
     539,   540,   541,   541,   542,   543,   543,   543,   543,   544,
2507
     545
2508
};
2509
2510
  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2511
static const yytype_int8 yyr2[] =
2512
{
2513
       0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2514
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2515
       1,     1,     1,     2,     2,     1,     1,     0,     1,     3,
2516
       1,     1,     2,     2,     2,     0,     2,     1,     1,     1,
2517
       1,     1,     1,     1,     1,     2,     4,     6,     0,     1,
2518
       1,     1,     1,     3,     3,     1,     2,     1,     1,     1,
2519
       1,     3,     4,     2,     1,     1,     1,     1,     1,     3,
2520
       2,     0,     2,     1,     1,     1,     1,     1,     1,     1,
2521
       0,     2,     1,     2,     1,     0,     3,     2,     1,     1,
2522
       3,     2,     1,     1,     3,     4,     3,     6,     1,     4,
2523
       1,     1,     1,     1,     1,     1,     3,     3,     3,     3,
2524
       3,     3,     5,     5,     5,     5,     7,     2,     2,     2,
2525
       2,     4,     4,     4,     4,     4,     4,     6,     6,     6,
2526
       6,     8,     4,     1,     1,    10,     1,     1,     1,     1,
2527
       1,     7,     0,     2,     1,     1,     1,     6,     1,     1,
2528
       1,     1,     1,     7,     0,     2,     4,     6,     2,     4,
2529
       2,     1,     1,     1,     1,     1,     1,     4,     1,     1,
2530
       4,     1,     1,     4,     1,     1,     1,     1,     7,     1,
2531
       1,     1,     1,     1,     7,     1,     1,     1,     1,     7,
2532
       0,     3,     7,     5,     0,     3,     1,     1,     1,     1,
2533
       1,     1,     1,     1,     1,     1,     1,     1,     1,    10,
2534
      10,     0,     3,     3,     2,     0,     2,     5,     1,     1,
2535
       3,     1,     2,     1,     0,     3,     3,     2,    10,     0,
2536
       2,     4,     2,    10,    10,     0,     3,     2,     1,     1,
2537
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2538
       1,     1,     1,     1,     1,     6,     7,     6,     1,     1,
2539
       1,     1,     3,     1,     3,     1,     3,     1,     3,     2,
2540
       4,     6,     4,     2,     4,     2,     2,     2,     4,     6,
2541
       4,     2,     4,     2,     2,     1,     3,     2,     1,     2,
2542
       4,     2,     1,     1,     3,     1,     3,     1,     3,     1,
2543
       3,     2,     4,     2,     2,     2,     4,     2,     2,     1,
2544
       3,     2,     2,     1,     0,     2,     2,     1,     2,     4,
2545
       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2546
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2547
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2548
       1,     1,     1,     1,     1,     1,     1,     6,     1,     4,
2549
       1,     4,     1,     2,     2,     4,     6,     0,     3,     3,
2550
       5,     7,     4,     1,     4,     1,     4,     1,     1,     1,
2551
       1,     1,     1,     7,     5,     3,     0,     3,     7,     3,
2552
       3,     1,     1,     5,     0,     3,     1,     1,     1,     4,
2553
       1,     1,     1,     5,     1,     4,     1,     1,     2,     3,
2554
       0,     2,     5,     0,     2,     1,     1,     1,     1,     1,
2555
       1,     1,     1,     8,    10,     8,    10,     3,     1,     1,
2556
       1,     1,     1,     1,     1,     1,     9,     0,     3,     3,
2557
       1,     1,     1,     1,     1,     6,     1,     1,     1,     4,
2558
       2,     1,     3,     7,     1,     1,     1,     1,     0,     2,
2559
       2,     4,     3,     5,     5,     7,     4,     1,     1,     4,
2560
       1,     1,     2,     3,    10,     1,     1,     1,     1,     1,
2561
       1,     7,     0,     3,     5,     3,     3,     9,     7,     9,
2562
       1,     1,     1,     1,     7,     0,     3,     3,     1,     1,
2563
       5,     1,     1,     1,     7,     0,     3,     3,     1,     1,
2564
       1,     1,     1,     1,     8,    10,     1,     1,    10,     0,
2565
       3,     5,     3,     2,     0,     3,     2,     5,     1,     1,
2566
       1,     1,     5,     1,     1,     1,     8,     1,     1,     5,
2567
       1,     1,     0,     2,     3,     5,     8,     1,     5,     1,
2568
       1,     8,     1,     5,     0,     3,     5,     3,     3,     1,
2569
       1,     4,     1,     1,     1,     4,     1,     1,     7,     0,
2570
       3,     3,     3,     1,     1,     5,     1,     1,     7,     0,
2571
       3,     3,     1,     5,     1,     1,     1,     1,     1,     1,
2572
       7,     1,     1,     1,     1,     1,     1,     1,    10,     1,
2573
       1,    10,     1,     1,    10,    10,     7,     0,     3,     3,
2574
       9,     7,     9,    10,     1,     1,     9,     0,     2,     2,
2575
       1,     1,     1,     1,     1,    10,     1,     1,     7,     9,
2576
       1,    10,     7,     1,    10,     7,     1,    10,     7,     1,
2577
       9,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2578
       1,     1,     1,     1,     1,     0,     3,     2,     1,     1,
2579
       4,     1,     1,     1,     2,     3,     4,     1,     3,     1,
2580
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2581
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2582
       1,     4,     3,     1,     8,     0,     3,     3,     3,     5,
2583
       3,     2,     1,     1,     4,     1,     1,     4,     1,     4,
2584
       1,     4,     1,     4,     1,     4,     3,     1,     6,     0,
2585
       3,     3,     3,     2,     1,     4,     3,     1,    16,     1,
2586
       1,     1,     1,     0,     6,     3,     2,     1,     1,     9,
2587
       1,     4,     3,     1,     4,     0,     3,     3,     2,     1,
2588
       7
2589
};
2590
2591
2592
#define yyerrok         (yyerrstatus = 0)
2593
#define yyclearin       (yychar = YYEMPTY)
2594
0
#define YYEMPTY         (-2)
2595
0
#define YYEOF           0
2596
2597
0
#define YYACCEPT        goto yyacceptlab
2598
0
#define YYABORT         goto yyabortlab
2599
#define YYERROR         goto yyerrorlab
2600
2601
2602
#define YYRECOVERING()  (!!yyerrstatus)
2603
2604
#define YYBACKUP(Token, Value)                                    \
2605
  do                                                              \
2606
    if (yychar == YYEMPTY)                                        \
2607
      {                                                           \
2608
        yychar = (Token);                                         \
2609
        yylval = (Value);                                         \
2610
        YYPOPSTACK (yylen);                                       \
2611
        yystate = *yyssp;                                         \
2612
        goto yybackup;                                            \
2613
      }                                                           \
2614
    else                                                          \
2615
      {                                                           \
2616
        yyerror (context, YY_("syntax error: cannot back up")); \
2617
        YYERROR;                                                  \
2618
      }                                                           \
2619
  while (0)
2620
2621
/* Error token number */
2622
0
#define YYTERROR        1
2623
#define YYERRCODE       256
2624
2625
2626
2627
/* Enable debugging if requested.  */
2628
#if YYDEBUG
2629
2630
# ifndef YYFPRINTF
2631
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2632
#  define YYFPRINTF fprintf
2633
# endif
2634
2635
# define YYDPRINTF(Args)                        \
2636
do {                                            \
2637
  if (yydebug)                                  \
2638
    YYFPRINTF Args;                             \
2639
} while (0)
2640
2641
/* This macro is provided for backward compatibility. */
2642
#ifndef YY_LOCATION_PRINT
2643
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2644
#endif
2645
2646
2647
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2648
do {                                                                      \
2649
  if (yydebug)                                                            \
2650
    {                                                                     \
2651
      YYFPRINTF (stderr, "%s ", Title);                                   \
2652
      yy_symbol_print (stderr,                                            \
2653
                  Type, Value, context); \
2654
      YYFPRINTF (stderr, "\n");                                           \
2655
    }                                                                     \
2656
} while (0)
2657
2658
2659
/*-----------------------------------.
2660
| Print this symbol's value on YYO.  |
2661
`-----------------------------------*/
2662
2663
static void
2664
yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, pj_wkt2_parse_context *context)
2665
{
2666
  FILE *yyoutput = yyo;
2667
  YYUSE (yyoutput);
2668
  YYUSE (context);
2669
  if (!yyvaluep)
2670
    return;
2671
# ifdef YYPRINT
2672
  if (yytype < YYNTOKENS)
2673
    YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
2674
# endif
2675
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2676
  YYUSE (yytype);
2677
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2678
}
2679
2680
2681
/*---------------------------.
2682
| Print this symbol on YYO.  |
2683
`---------------------------*/
2684
2685
static void
2686
yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, pj_wkt2_parse_context *context)
2687
{
2688
  YYFPRINTF (yyo, "%s %s (",
2689
             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2690
2691
  yy_symbol_value_print (yyo, yytype, yyvaluep, context);
2692
  YYFPRINTF (yyo, ")");
2693
}
2694
2695
/*------------------------------------------------------------------.
2696
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
2697
| TOP (included).                                                   |
2698
`------------------------------------------------------------------*/
2699
2700
static void
2701
yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2702
{
2703
  YYFPRINTF (stderr, "Stack now");
2704
  for (; yybottom <= yytop; yybottom++)
2705
    {
2706
      int yybot = *yybottom;
2707
      YYFPRINTF (stderr, " %d", yybot);
2708
    }
2709
  YYFPRINTF (stderr, "\n");
2710
}
2711
2712
# define YY_STACK_PRINT(Bottom, Top)                            \
2713
do {                                                            \
2714
  if (yydebug)                                                  \
2715
    yy_stack_print ((Bottom), (Top));                           \
2716
} while (0)
2717
2718
2719
/*------------------------------------------------.
2720
| Report that the YYRULE is going to be reduced.  |
2721
`------------------------------------------------*/
2722
2723
static void
2724
yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule, pj_wkt2_parse_context *context)
2725
{
2726
  int yylno = yyrline[yyrule];
2727
  int yynrhs = yyr2[yyrule];
2728
  int yyi;
2729
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2730
             yyrule - 1, yylno);
2731
  /* The symbols being reduced.  */
2732
  for (yyi = 0; yyi < yynrhs; yyi++)
2733
    {
2734
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2735
      yy_symbol_print (stderr,
2736
                       yystos[+yyssp[yyi + 1 - yynrhs]],
2737
                       &yyvsp[(yyi + 1) - (yynrhs)]
2738
                                              , context);
2739
      YYFPRINTF (stderr, "\n");
2740
    }
2741
}
2742
2743
# define YY_REDUCE_PRINT(Rule)          \
2744
do {                                    \
2745
  if (yydebug)                          \
2746
    yy_reduce_print (yyssp, yyvsp, Rule, context); \
2747
} while (0)
2748
2749
/* Nonzero means print parse trace.  It is left uninitialized so that
2750
   multiple parsers can coexist.  */
2751
int yydebug;
2752
#else /* !YYDEBUG */
2753
# define YYDPRINTF(Args)
2754
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2755
# define YY_STACK_PRINT(Bottom, Top)
2756
# define YY_REDUCE_PRINT(Rule)
2757
#endif /* !YYDEBUG */
2758
2759
2760
/* YYINITDEPTH -- initial size of the parser's stacks.  */
2761
#ifndef YYINITDEPTH
2762
0
# define YYINITDEPTH 200
2763
#endif
2764
2765
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2766
   if the built-in stack extension method is used).
2767
2768
   Do not make this value too large; the results are undefined if
2769
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2770
   evaluated with infinite-precision integer arithmetic.  */
2771
2772
#ifndef YYMAXDEPTH
2773
0
# define YYMAXDEPTH 10000
2774
#endif
2775
2776
2777
#if YYERROR_VERBOSE
2778
2779
# ifndef yystrlen
2780
#  if defined __GLIBC__ && defined _STRING_H
2781
#   define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
2782
#  else
2783
/* Return the length of YYSTR.  */
2784
static YYPTRDIFF_T
2785
yystrlen (const char *yystr)
2786
0
{
2787
0
  YYPTRDIFF_T yylen;
2788
0
  for (yylen = 0; yystr && yystr[yylen]; yylen++)
2789
0
    continue;
2790
0
  return yylen;
2791
0
}
2792
#  endif
2793
# endif
2794
2795
# ifndef yystpcpy
2796
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2797
#   define yystpcpy stpcpy
2798
#  else
2799
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2800
   YYDEST.  */
2801
static char *
2802
yystpcpy (char *yydest, const char *yysrc)
2803
0
{
2804
0
  char *yyd = yydest;
2805
0
  const char *yys = yysrc;
2806
2807
0
  while ((*yyd++ = *yys++) != '\0')
2808
0
    continue;
2809
2810
0
  return yyd - 1;
2811
0
}
2812
#  endif
2813
# endif
2814
2815
# ifndef yytnamerr
2816
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2817
   quotes and backslashes, so that it's suitable for yyerror.  The
2818
   heuristic is that double-quoting is unnecessary unless the string
2819
   contains an apostrophe, a comma, or backslash (other than
2820
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2821
   null, do not copy; instead, return the length of what the result
2822
   would have been.  */
2823
static YYPTRDIFF_T
2824
yytnamerr (char *yyres, const char *yystr)
2825
0
{
2826
0
  if (*yystr == '"')
2827
0
    {
2828
0
      YYPTRDIFF_T yyn = 0;
2829
0
      char const *yyp = yystr;
2830
2831
0
      for (;;)
2832
0
        switch (*++yyp)
2833
0
          {
2834
0
          case '\'':
2835
0
          case ',':
2836
0
            goto do_not_strip_quotes;
2837
2838
0
          case '\\':
2839
0
            if (*++yyp != '\\')
2840
0
              goto do_not_strip_quotes;
2841
0
            else
2842
0
              goto append;
2843
2844
0
          append:
2845
0
          default:
2846
0
            if (yyres)
2847
0
              yyres[yyn] = *yyp;
2848
0
            yyn++;
2849
0
            break;
2850
2851
0
          case '"':
2852
0
            if (yyres)
2853
0
              yyres[yyn] = '\0';
2854
0
            return yyn;
2855
0
          }
2856
0
    do_not_strip_quotes: ;
2857
0
    }
2858
2859
0
  if (yyres)
2860
0
    return (YYPTRDIFF_T)(yystpcpy (yyres, yystr) - yyres);
2861
0
  else
2862
0
    return yystrlen (yystr);
2863
0
}
2864
# endif
2865
2866
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2867
   about the unexpected token YYTOKEN for the state stack whose top is
2868
   YYSSP.
2869
2870
   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2871
   not large enough to hold the message.  In that case, also set
2872
   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2873
   required number of bytes is too large to store.  */
2874
static int
2875
yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
2876
                yy_state_t *yyssp, int yytoken)
2877
0
{
2878
0
  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2879
  /* Internationalized format string. */
2880
0
  const char *yyformat = YY_NULLPTR;
2881
  /* Arguments of yyformat: reported tokens (one for the "unexpected",
2882
     one per "expected"). */
2883
0
  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2884
  /* Actual size of YYARG. */
2885
0
  int yycount = 0;
2886
  /* Cumulated lengths of YYARG.  */
2887
0
  YYPTRDIFF_T yysize = 0;
2888
2889
  /* There are many possibilities here to consider:
2890
     - If this state is a consistent state with a default action, then
2891
       the only way this function was invoked is if the default action
2892
       is an error action.  In that case, don't check for expected
2893
       tokens because there are none.
2894
     - The only way there can be no lookahead present (in yychar) is if
2895
       this state is a consistent state with a default action.  Thus,
2896
       detecting the absence of a lookahead is sufficient to determine
2897
       that there is no unexpected or expected token to report.  In that
2898
       case, just report a simple "syntax error".
2899
     - Don't assume there isn't a lookahead just because this state is a
2900
       consistent state with a default action.  There might have been a
2901
       previous inconsistent state, consistent state with a non-default
2902
       action, or user semantic action that manipulated yychar.
2903
     - Of course, the expected token list depends on states to have
2904
       correct lookahead information, and it depends on the parser not
2905
       to perform extra reductions after fetching a lookahead from the
2906
       scanner and before detecting a syntax error.  Thus, state merging
2907
       (from LALR or IELR) and default reductions corrupt the expected
2908
       token list.  However, the list is correct for canonical LR with
2909
       one exception: it will still contain any token that will not be
2910
       accepted due to an error action in a later state.
2911
  */
2912
0
  if (yytoken != YYEMPTY)
2913
0
    {
2914
0
      int yyn = yypact[+*yyssp];
2915
0
      YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2916
0
      yysize = yysize0;
2917
0
      yyarg[yycount++] = yytname[yytoken];
2918
0
      if (!yypact_value_is_default (yyn))
2919
0
        {
2920
          /* Start YYX at -YYN if negative to avoid negative indexes in
2921
             YYCHECK.  In other words, skip the first -YYN actions for
2922
             this state because they are default actions.  */
2923
0
          int yyxbegin = yyn < 0 ? -yyn : 0;
2924
          /* Stay within bounds of both yycheck and yytname.  */
2925
0
          int yychecklim = YYLAST - yyn + 1;
2926
0
          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2927
0
          int yyx;
2928
2929
0
          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2930
0
            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2931
0
                && !yytable_value_is_error (yytable[yyx + yyn]))
2932
0
              {
2933
0
                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2934
0
                  {
2935
0
                    yycount = 1;
2936
0
                    yysize = yysize0;
2937
0
                    break;
2938
0
                  }
2939
0
                yyarg[yycount++] = yytname[yyx];
2940
0
                {
2941
0
                  YYPTRDIFF_T yysize1
2942
0
                    = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2943
0
                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2944
0
                    yysize = yysize1;
2945
0
                  else
2946
0
                    return 2;
2947
0
                }
2948
0
              }
2949
0
        }
2950
0
    }
2951
2952
0
  switch (yycount)
2953
0
    {
2954
0
# define YYCASE_(N, S)                      \
2955
0
      case N:                               \
2956
0
        yyformat = S;                       \
2957
0
      break
2958
0
    default: /* Avoid compiler warnings. */
2959
0
      YYCASE_(0, YY_("syntax error"));
2960
0
      YYCASE_(1, YY_("syntax error, unexpected %s"));
2961
0
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2962
0
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2963
0
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2964
0
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2965
0
# undef YYCASE_
2966
0
    }
2967
2968
0
  {
2969
    /* Don't count the "%s"s in the final size, but reserve room for
2970
       the terminator.  */
2971
0
    YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
2972
0
    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2973
0
      yysize = yysize1;
2974
0
    else
2975
0
      return 2;
2976
0
  }
2977
2978
0
  if (*yymsg_alloc < yysize)
2979
0
    {
2980
0
      *yymsg_alloc = 2 * yysize;
2981
0
      if (! (yysize <= *yymsg_alloc
2982
0
             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2983
0
        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2984
0
      return 1;
2985
0
    }
2986
2987
  /* Avoid sprintf, as that infringes on the user's name space.
2988
     Don't have undefined behavior even if the translation
2989
     produced a string with the wrong number of "%s"s.  */
2990
0
  {
2991
0
    char *yyp = *yymsg;
2992
0
    int yyi = 0;
2993
0
    while ((*yyp = *yyformat) != '\0')
2994
0
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2995
0
        {
2996
0
          yyp += yytnamerr (yyp, yyarg[yyi++]);
2997
0
          yyformat += 2;
2998
0
        }
2999
0
      else
3000
0
        {
3001
0
          ++yyp;
3002
0
          ++yyformat;
3003
0
        }
3004
0
  }
3005
0
  return 0;
3006
0
}
3007
#endif /* YYERROR_VERBOSE */
3008
3009
/*-----------------------------------------------.
3010
| Release the memory associated to this symbol.  |
3011
`-----------------------------------------------*/
3012
3013
static void
3014
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, pj_wkt2_parse_context *context)
3015
0
{
3016
0
  YYUSE (yyvaluep);
3017
0
  YYUSE (context);
3018
0
  if (!yymsg)
3019
0
    yymsg = "Deleting";
3020
0
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3021
3022
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3023
0
  YYUSE (yytype);
3024
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
3025
0
}
3026
3027
3028
3029
3030
/*----------.
3031
| yyparse.  |
3032
`----------*/
3033
3034
int
3035
yyparse (pj_wkt2_parse_context *context)
3036
0
{
3037
/* The lookahead symbol.  */
3038
0
int yychar;
3039
3040
3041
/* The semantic value of the lookahead symbol.  */
3042
/* Default value used for initialization, for pacifying older GCCs
3043
   or non-GCC compilers.  */
3044
0
YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3045
0
YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3046
3047
    /* Number of syntax errors so far.  */
3048
    /* int yynerrs; */
3049
3050
0
    yy_state_fast_t yystate;
3051
    /* Number of tokens to shift before error messages enabled.  */
3052
0
    int yyerrstatus;
3053
3054
    /* The stacks and their tools:
3055
       'yyss': related to states.
3056
       'yyvs': related to semantic values.
3057
3058
       Refer to the stacks through separate pointers, to allow yyoverflow
3059
       to reallocate them elsewhere.  */
3060
3061
    /* The state stack.  */
3062
0
    yy_state_t yyssa[YYINITDEPTH];
3063
0
    yy_state_t *yyss;
3064
0
    yy_state_t *yyssp;
3065
3066
    /* The semantic value stack.  */
3067
0
    YYSTYPE yyvsa[YYINITDEPTH];
3068
0
    YYSTYPE *yyvs;
3069
0
    YYSTYPE *yyvsp;
3070
3071
0
    YYPTRDIFF_T yystacksize;
3072
3073
0
  int yyn;
3074
0
  int yyresult;
3075
  /* Lookahead token as an internal (translated) token number.  */
3076
0
  int yytoken = 0;
3077
  /* The variables used to return semantic value and location from the
3078
     action routines.  */
3079
0
  YYSTYPE yyval;
3080
3081
0
#if YYERROR_VERBOSE
3082
  /* Buffer for error messages, and its allocated size.  */
3083
0
  char yymsgbuf[128];
3084
0
  char *yymsg = yymsgbuf;
3085
0
  YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
3086
0
#endif
3087
3088
0
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
3089
3090
  /* The number of symbols on the RHS of the reduced rule.
3091
     Keep to zero when no symbol should be popped.  */
3092
0
  int yylen = 0;
3093
3094
0
  yyssp = yyss = yyssa;
3095
0
  yyvsp = yyvs = yyvsa;
3096
0
  yystacksize = YYINITDEPTH;
3097
3098
0
  YYDPRINTF ((stderr, "Starting parse\n"));
3099
3100
0
  yystate = 0;
3101
0
  yyerrstatus = 0;
3102
  /* yynerrs = 0; */
3103
0
  yychar = YYEMPTY; /* Cause a token to be read.  */
3104
0
  goto yysetstate;
3105
3106
3107
/*------------------------------------------------------------.
3108
| yynewstate -- push a new state, which is found in yystate.  |
3109
`------------------------------------------------------------*/
3110
0
yynewstate:
3111
  /* In all cases, when you get here, the value and location stacks
3112
     have just been pushed.  So pushing a state here evens the stacks.  */
3113
0
  yyssp++;
3114
3115
3116
/*--------------------------------------------------------------------.
3117
| yysetstate -- set current state (the top of the stack) to yystate.  |
3118
`--------------------------------------------------------------------*/
3119
0
yysetstate:
3120
0
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3121
0
  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
3122
0
  YY_IGNORE_USELESS_CAST_BEGIN
3123
0
  *yyssp = YY_CAST (yy_state_t, yystate);
3124
0
  YY_IGNORE_USELESS_CAST_END
3125
3126
0
  if (yyss + yystacksize - 1 <= yyssp)
3127
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
3128
    goto yyexhaustedlab;
3129
#else
3130
0
    {
3131
      /* Get the current used size of the three stacks, in elements.  */
3132
0
      YYPTRDIFF_T yysize = (YYPTRDIFF_T)(yyssp - yyss + 1);
3133
3134
# if defined yyoverflow
3135
      {
3136
        /* Give user a chance to reallocate the stack.  Use copies of
3137
           these so that the &'s don't force the real ones into
3138
           memory.  */
3139
        yy_state_t *yyss1 = yyss;
3140
        YYSTYPE *yyvs1 = yyvs;
3141
3142
        /* Each stack pointer address is followed by the size of the
3143
           data in use in that stack, in bytes.  This used to be a
3144
           conditional around just the two extra args, but that might
3145
           be undefined if yyoverflow is a macro.  */
3146
        yyoverflow (YY_("memory exhausted"),
3147
                    &yyss1, yysize * YYSIZEOF (*yyssp),
3148
                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
3149
                    &yystacksize);
3150
        yyss = yyss1;
3151
        yyvs = yyvs1;
3152
      }
3153
# else /* defined YYSTACK_RELOCATE */
3154
      /* Extend the stack our own way.  */
3155
0
      if (YYMAXDEPTH <= yystacksize)
3156
0
        goto yyexhaustedlab;
3157
0
      yystacksize *= 2;
3158
0
      if (YYMAXDEPTH < yystacksize)
3159
0
        yystacksize = YYMAXDEPTH;
3160
3161
0
      {
3162
0
        yy_state_t *yyss1 = yyss;
3163
0
        union yyalloc *yyptr =
3164
0
          YY_CAST (union yyalloc *,
3165
0
                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
3166
0
        if (! yyptr)
3167
0
          goto yyexhaustedlab;
3168
0
        YYSTACK_RELOCATE (yyss_alloc, yyss);
3169
0
        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3170
0
# undef YYSTACK_RELOCATE
3171
0
        if (yyss1 != yyssa)
3172
0
          YYSTACK_FREE (yyss1);
3173
0
      }
3174
0
# endif
3175
3176
0
      yyssp = yyss + yysize - 1;
3177
0
      yyvsp = yyvs + yysize - 1;
3178
3179
0
      YY_IGNORE_USELESS_CAST_BEGIN
3180
0
      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
3181
0
                  YY_CAST (long, yystacksize)));
3182
0
      YY_IGNORE_USELESS_CAST_END
3183
3184
0
      if (yyss + yystacksize - 1 <= yyssp)
3185
0
        YYABORT;
3186
0
    }
3187
0
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3188
3189
0
  if (yystate == YYFINAL)
3190
0
    YYACCEPT;
3191
3192
0
  goto yybackup;
3193
3194
3195
/*-----------.
3196
| yybackup.  |
3197
`-----------*/
3198
0
yybackup:
3199
  /* Do appropriate processing given the current state.  Read a
3200
     lookahead token if we need one and don't already have one.  */
3201
3202
  /* First try to decide what to do without reference to lookahead token.  */
3203
0
  yyn = yypact[yystate];
3204
0
  if (yypact_value_is_default (yyn))
3205
0
    goto yydefault;
3206
3207
  /* Not known => get a lookahead token if don't already have one.  */
3208
3209
  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
3210
0
  if (yychar == YYEMPTY)
3211
0
    {
3212
0
      YYDPRINTF ((stderr, "Reading a token: "));
3213
0
      yychar = yylex (&yylval, context);
3214
0
    }
3215
3216
0
  if (yychar <= YYEOF)
3217
0
    {
3218
0
      yychar = yytoken = YYEOF;
3219
0
      YYDPRINTF ((stderr, "Now at end of input.\n"));
3220
0
    }
3221
0
  else
3222
0
    {
3223
0
      yytoken = YYTRANSLATE (yychar);
3224
0
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3225
0
    }
3226
3227
  /* If the proper action on seeing token YYTOKEN is to reduce or to
3228
     detect an error, take that action.  */
3229
0
  yyn += yytoken;
3230
0
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3231
0
    goto yydefault;
3232
0
  yyn = yytable[yyn];
3233
0
  if (yyn <= 0)
3234
0
    {
3235
0
      if (yytable_value_is_error (yyn))
3236
0
        goto yyerrlab;
3237
0
      yyn = -yyn;
3238
0
      goto yyreduce;
3239
0
    }
3240
3241
  /* Count tokens shifted since error; after three, turn off error
3242
     status.  */
3243
0
  if (yyerrstatus)
3244
0
    yyerrstatus--;
3245
3246
  /* Shift the lookahead token.  */
3247
0
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3248
0
  yystate = yyn;
3249
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3250
0
  *++yyvsp = yylval;
3251
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
3252
3253
  /* Discard the shifted token.  */
3254
0
  yychar = YYEMPTY;
3255
0
  goto yynewstate;
3256
3257
3258
/*-----------------------------------------------------------.
3259
| yydefault -- do the default action for the current state.  |
3260
`-----------------------------------------------------------*/
3261
0
yydefault:
3262
0
  yyn = yydefact[yystate];
3263
0
  if (yyn == 0)
3264
0
    goto yyerrlab;
3265
0
  goto yyreduce;
3266
3267
3268
/*-----------------------------.
3269
| yyreduce -- do a reduction.  |
3270
`-----------------------------*/
3271
0
yyreduce:
3272
  /* yyn is the number of a rule to reduce with.  */
3273
0
  yylen = yyr2[yyn];
3274
3275
  /* If YYLEN is nonzero, implement the default value of the action:
3276
     '$$ = $1'.
3277
3278
     Otherwise, the following line sets YYVAL to garbage.
3279
     This behavior is undocumented and Bison
3280
     users should not rely upon it.  Assigning to YYVAL
3281
     unconditionally makes the parser a bit smaller, and it avoids a
3282
     GCC warning that YYVAL may be used uninitialized.  */
3283
0
  yyval = yyvsp[1-yylen];
3284
3285
3286
0
  YY_REDUCE_PRINT (yyn);
3287
0
  switch (yyn)
3288
0
    {
3289
3290
3291
0
      default: break;
3292
0
    }
3293
  /* User semantic actions sometimes alter yychar, and that requires
3294
     that yytoken be updated with the new translation.  We take the
3295
     approach of translating immediately before every use of yytoken.
3296
     One alternative is translating here after every semantic action,
3297
     but that translation would be missed if the semantic action invokes
3298
     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3299
     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
3300
     incorrect destructor might then be invoked immediately.  In the
3301
     case of YYERROR or YYBACKUP, subsequent parser actions might lead
3302
     to an incorrect destructor call or verbose syntax error message
3303
     before the lookahead is translated.  */
3304
0
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3305
3306
0
  YYPOPSTACK (yylen);
3307
0
  yylen = 0;
3308
0
  YY_STACK_PRINT (yyss, yyssp);
3309
3310
0
  *++yyvsp = yyval;
3311
3312
  /* Now 'shift' the result of the reduction.  Determine what state
3313
     that goes to, based on the state we popped back to and the rule
3314
     number reduced by.  */
3315
0
  {
3316
0
    const int yylhs = yyr1[yyn] - YYNTOKENS;
3317
0
    const int yyi = yypgoto[yylhs] + *yyssp;
3318
0
    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3319
0
               ? yytable[yyi]
3320
0
               : yydefgoto[yylhs]);
3321
0
  }
3322
3323
0
  goto yynewstate;
3324
3325
3326
/*--------------------------------------.
3327
| yyerrlab -- here on detecting error.  |
3328
`--------------------------------------*/
3329
0
yyerrlab:
3330
  /* Make sure we have latest lookahead translation.  See comments at
3331
     user semantic actions for why this is necessary.  */
3332
0
  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3333
3334
  /* If not already recovering from an error, report this error.  */
3335
0
  if (!yyerrstatus)
3336
0
    {
3337
      /* ++yynerrs; */
3338
#if ! YYERROR_VERBOSE
3339
      yyerror (context, YY_("syntax error"));
3340
#else
3341
0
# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3342
0
                                        yyssp, yytoken)
3343
0
      {
3344
0
        char const *yymsgp = YY_("syntax error");
3345
0
        int yysyntax_error_status;
3346
0
        yysyntax_error_status = YYSYNTAX_ERROR;
3347
0
        if (yysyntax_error_status == 0)
3348
0
          yymsgp = yymsg;
3349
0
        else if (yysyntax_error_status == 1)
3350
0
          {
3351
0
            if (yymsg != yymsgbuf)
3352
0
              YYSTACK_FREE (yymsg);
3353
0
            yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
3354
0
            if (!yymsg)
3355
0
              {
3356
0
                yymsg = yymsgbuf;
3357
0
                yymsg_alloc = sizeof yymsgbuf;
3358
0
                yysyntax_error_status = 2;
3359
0
              }
3360
0
            else
3361
0
              {
3362
0
                yysyntax_error_status = YYSYNTAX_ERROR;
3363
0
                yymsgp = yymsg;
3364
0
              }
3365
0
          }
3366
0
        yyerror (context, yymsgp);
3367
0
        if (yysyntax_error_status == 2)
3368
0
          goto yyexhaustedlab;
3369
0
      }
3370
0
# undef YYSYNTAX_ERROR
3371
0
#endif
3372
0
    }
3373
3374
3375
3376
0
  if (yyerrstatus == 3)
3377
0
    {
3378
      /* If just tried and failed to reuse lookahead token after an
3379
         error, discard it.  */
3380
3381
0
      if (yychar <= YYEOF)
3382
0
        {
3383
          /* Return failure if at end of input.  */
3384
0
          if (yychar == YYEOF)
3385
0
            YYABORT;
3386
0
        }
3387
0
      else
3388
0
        {
3389
0
          yydestruct ("Error: discarding",
3390
0
                      yytoken, &yylval, context);
3391
0
          yychar = YYEMPTY;
3392
0
        }
3393
0
    }
3394
3395
  /* Else will try to reuse lookahead token after shifting the error
3396
     token.  */
3397
0
  goto yyerrlab1;
3398
3399
3400
/*---------------------------------------------------.
3401
| yyerrorlab -- error raised explicitly by YYERROR.  |
3402
`---------------------------------------------------*/
3403
#if 0
3404
yyerrorlab:
3405
  /* Pacify compilers when the user code never invokes YYERROR and the
3406
     label yyerrorlab therefore never appears in user code.  */
3407
  if (0)
3408
    YYERROR;
3409
3410
  /* Do not reclaim the symbols of the rule whose action triggered
3411
     this YYERROR.  */
3412
  YYPOPSTACK (yylen);
3413
  yylen = 0;
3414
  YY_STACK_PRINT (yyss, yyssp);
3415
  yystate = *yyssp;
3416
  goto yyerrlab1;
3417
3418
3419
/*-------------------------------------------------------------.
3420
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
3421
`-------------------------------------------------------------*/
3422
#endif
3423
0
yyerrlab1:
3424
0
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3425
3426
0
  for (;;)
3427
0
    {
3428
0
      yyn = yypact[yystate];
3429
0
      if (!yypact_value_is_default (yyn))
3430
0
        {
3431
0
          yyn += YYTERROR;
3432
0
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3433
0
            {
3434
0
              yyn = yytable[yyn];
3435
0
              if (0 < yyn)
3436
0
                break;
3437
0
            }
3438
0
        }
3439
3440
      /* Pop the current state because it cannot handle the error token.  */
3441
0
      if (yyssp == yyss)
3442
0
        YYABORT;
3443
3444
3445
0
      yydestruct ("Error: popping",
3446
0
                  yystos[yystate], yyvsp, context);
3447
0
      YYPOPSTACK (1);
3448
0
      yystate = *yyssp;
3449
0
      YY_STACK_PRINT (yyss, yyssp);
3450
0
    }
3451
3452
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3453
0
  *++yyvsp = yylval;
3454
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
3455
3456
3457
  /* Shift the error token.  */
3458
0
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3459
3460
0
  yystate = yyn;
3461
0
  goto yynewstate;
3462
3463
3464
/*-------------------------------------.
3465
| yyacceptlab -- YYACCEPT comes here.  |
3466
`-------------------------------------*/
3467
0
yyacceptlab:
3468
0
  yyresult = 0;
3469
0
  goto yyreturn;
3470
3471
3472
/*-----------------------------------.
3473
| yyabortlab -- YYABORT comes here.  |
3474
`-----------------------------------*/
3475
0
yyabortlab:
3476
0
  yyresult = 1;
3477
0
  goto yyreturn;
3478
3479
3480
0
#if !defined yyoverflow || YYERROR_VERBOSE
3481
/*-------------------------------------------------.
3482
| yyexhaustedlab -- memory exhaustion comes here.  |
3483
`-------------------------------------------------*/
3484
0
yyexhaustedlab:
3485
0
  yyerror (context, YY_("memory exhausted"));
3486
0
  yyresult = 2;
3487
  /* Fall through.  */
3488
0
#endif
3489
3490
3491
/*-----------------------------------------------------.
3492
| yyreturn -- parsing is finished, return the result.  |
3493
`-----------------------------------------------------*/
3494
0
yyreturn:
3495
0
  if (yychar != YYEMPTY)
3496
0
    {
3497
      /* Make sure we have latest lookahead translation.  See comments at
3498
         user semantic actions for why this is necessary.  */
3499
0
      yytoken = YYTRANSLATE (yychar);
3500
0
      yydestruct ("Cleanup: discarding lookahead",
3501
0
                  yytoken, &yylval, context);
3502
0
    }
3503
  /* Do not reclaim the symbols of the rule whose action triggered
3504
     this YYABORT or YYACCEPT.  */
3505
0
  YYPOPSTACK (yylen);
3506
0
  YY_STACK_PRINT (yyss, yyssp);
3507
0
  while (yyssp != yyss)
3508
0
    {
3509
0
      yydestruct ("Cleanup: popping",
3510
0
                  yystos[+*yyssp], yyvsp, context);
3511
0
      YYPOPSTACK (1);
3512
0
    }
3513
0
#ifndef yyoverflow
3514
0
  if (yyss != yyssa)
3515
0
    YYSTACK_FREE (yyss);
3516
0
#endif
3517
0
#if YYERROR_VERBOSE
3518
0
  if (yymsg != yymsgbuf)
3519
0
    YYSTACK_FREE (yymsg);
3520
0
#endif
3521
0
  return yyresult;
3522
0
}