1/* A Bison parser, made by GNU Bison 3.0.4. */
2
3/* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20/* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33/* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36/* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43/* Identify Bison output. */
44#define YYBISON 1
45
46/* Bison version. */
47#define YYBISON_VERSION "3.0.4"
48
49/* Skeleton name. */
50#define YYSKELETON_NAME "yacc.c"
51
52/* Pure parsers. */
53#define YYPURE 1
54
55/* Push parsers. */
56#define YYPUSH 0
57
58/* Pull parsers. */
59#define YYPULL 1
60
61
62/* Substitute the variable and function names. */
63#define yyparse sqlparse
64#define yylex sqllex
65#define yyerror sqlerror
66#define yydebug sqldebug
67#define yynerrs sqlnerrs
68
69
70/* Copy the first part of user declarations. */
71#line 9 "sql_parser.y" /* yacc.c:339 */
72
73#include "monetdb_config.h"
74#include "sql_mem.h"
75#include "sql_parser.h"
76#include "sql_symbol.h"
77#include "sql_datetime.h"
78#include "sql_decimal.h" /* for decimal_from_str() */
79#include "sql_semantic.h" /* for sql_add_param() & sql_add_arg() */
80#include "sql_env.h"
81#include "rel_sequence.h" /* for sql_next_seq_name() */
82#ifdef HAVE_HGE
83#include "mal.h" /* for have_hge */
84#endif
85
86#include <unistd.h>
87#include <string.h>
88
89#define SA m->sa
90#define _symbol_create(t,d) symbol_create( SA, t, d)
91#define _symbol_create_list(t,d) symbol_create_list( SA, t, d)
92#define _symbol_create_int(t,d) symbol_create_int( SA, t, d)
93#define _symbol_create_lng(t,d) symbol_create_lng( SA, t, d)
94#define _symbol_create_symbol(t,d) symbol_create_symbol( SA, t, d)
95#define _symbol_create_hexa(t,d) symbol_create_hexa( SA, t, d)
96#define _newAtomNode(d) newAtomNode( SA, d)
97
98#define L() dlist_create( SA )
99
100#define append_list(l,d) dlist_append_list( SA, l, d)
101#define append_int(l,d) dlist_append_int( SA, l, d)
102#define append_lng(l,d) dlist_append_lng( SA, l, d)
103#define append_symbol(l,d) dlist_append_symbol( SA, l, d)
104#define append_string(l,d) dlist_append_string( SA, l, d)
105#define append_type(l,d) dlist_append_type( SA, l, d)
106
107#define _atom_string(t, v) atom_string(SA, t, v)
108
109#define YYMALLOC GDKmalloc
110#define YYFREE GDKfree
111
112#define YY_parse_LSP_NEEDED /* needed for bison++ 1.21.11-3 */
113
114#define SET_Z(info)(info = info | 0x02)
115#define SET_M(info)(info = info | 0x01)
116
117#ifdef HAVE_HGE
118#define MAX_DEC_DIGITS (have_hge ? 38 : 18)
119#define MAX_HEX_DIGITS (have_hge ? 32 : 16)
120#else
121#define MAX_DEC_DIGITS 18
122#define MAX_HEX_DIGITS 16
123#endif
124
125static inline int
126UTF8_strlen(const char *val)
127{
128 const unsigned char *s = (const unsigned char *) val;
129 int pos = 0;
130
131 while (*s) {
132 int c = *s++;
133
134 pos++;
135 if (c < 0xC0)
136 continue;
137 if (*s++ < 0x80)
138 return int_nil;
139 if (c < 0xE0)
140 continue;
141 if (*s++ < 0x80)
142 return int_nil;
143 if (c < 0xF0)
144 continue;
145 if (*s++ < 0x80)
146 return int_nil;
147 if (c < 0xF8)
148 continue;
149 if (*s++ < 0x80)
150 return int_nil;
151 if (c < 0xFC)
152 continue;
153 if (*s++ < 0x80)
154 return int_nil;
155 }
156 return pos;
157}
158
159
160static char *
161uescape_xform(char *restrict s, const char *restrict esc)
162{
163 size_t i, j;
164
165 for (i = j = 0; s[i]; i++) {
166 if (s[i] == *esc) {
167 if (s[i + 1] == *esc) {
168 s[j++] = *esc;
169 i++;
170 } else {
171 int c = 0;
172 int n;
173 if (s[i + 1] == '+') {
174 n = 6;
175 i++;
176 } else {
177 n = 4;
178 }
179 do {
180 i++;
181 c <<= 4;
182 if ('0' <= s[i] && s[i] <= '9')
183 c |= s[i] - '0';
184 else if ('a' <= s[i] && s[i] <= 'f')
185 c |= s[i] - 'a' + 10;
186 else if ('A' <= s[i] && s[i] <= 'F')
187 c |= s[i] - 'A' + 10;
188 else
189 return NULL;
190 } while (--n > 0);
191 if (c == 0 || c > 0x10FFFF || (c & 0xFFF800) == 0xD800)
192 return NULL;
193 if (c < 0x80) {
194 s[j++] = c;
195 } else {
196 if (c < 0x800) {
197 s[j++] = 0xC0 | (c >> 6);
198 } else {
199 if (c < 0x10000) {
200 s[j++] = 0xE0 | (c >> 12);
201 } else {
202 s[j++] = 0xF0 | (c >> 18);
203 s[j++] = 0x80 | ((c >> 12) & 0x3F);
204 }
205 s[j++] = 0x80 | ((c >> 6) & 0x3F);
206 }
207 s[j++] = 0x80 | (c & 0x3F);
208 }
209 }
210 } else {
211 s[j++] = s[i];
212 }
213 }
214 s[j] = 0;
215 return s;
216}
217
218#line 219 "sql_parser.tab.c" /* yacc.c:339 */
219
220# ifndef YY_NULLPTR
221# if defined __cplusplus && 201103L <= __cplusplus
222# define YY_NULLPTR nullptr
223# else
224# define YY_NULLPTR 0
225# endif
226# endif
227
228/* Enabling verbose error messages. */
229#ifdef YYERROR_VERBOSE
230# undef YYERROR_VERBOSE
231# define YYERROR_VERBOSE 1
232#else
233# define YYERROR_VERBOSE 0
234#endif
235
236/* In a future release of Bison, this section will be replaced
237 by #include "sql_parser.tmph.h". */
238#ifndef YY_SQL_SQL_PARSER_TMPH_H_INCLUDED
239# define YY_SQL_SQL_PARSER_TMPH_H_INCLUDED
240/* Debug traces. */
241#ifndef YYDEBUG
242# define YYDEBUG 0
243#endif
244#if YYDEBUG
245extern int sqldebug;
246#endif
247
248/* Token type. */
249#ifndef YYTOKENTYPE
250# define YYTOKENTYPE
251 enum yytokentype
252 {
253 STRING = 258,
254 USTRING = 259,
255 XSTRING = 260,
256 X_BODY = 261,
257 IDENT = 262,
258 UIDENT = 263,
259 aTYPE = 264,
260 ALIAS = 265,
261 AGGR = 266,
262 AGGR2 = 267,
263 RANK = 268,
264 sqlINT = 269,
265 OIDNUM = 270,
266 HEXADECIMAL = 271,
267 INTNUM = 272,
268 APPROXNUM = 273,
269 USING = 274,
270 GLOBAL = 275,
271 CAST = 276,
272 CONVERT = 277,
273 CHARACTER = 278,
274 VARYING = 279,
275 LARGE = 280,
276 OBJECT = 281,
277 VARCHAR = 282,
278 CLOB = 283,
279 sqlTEXT = 284,
280 BINARY = 285,
281 sqlBLOB = 286,
282 sqlDECIMAL = 287,
283 sqlFLOAT = 288,
284 TINYINT = 289,
285 SMALLINT = 290,
286 BIGINT = 291,
287 HUGEINT = 292,
288 sqlINTEGER = 293,
289 sqlDOUBLE = 294,
290 sqlREAL = 295,
291 PRECISION = 296,
292 PARTIAL = 297,
293 SIMPLE = 298,
294 ACTION = 299,
295 CASCADE = 300,
296 RESTRICT = 301,
297 BOOL_FALSE = 302,
298 BOOL_TRUE = 303,
299 CURRENT_DATE = 304,
300 CURRENT_TIMESTAMP = 305,
301 CURRENT_TIME = 306,
302 LOCALTIMESTAMP = 307,
303 LOCALTIME = 308,
304 LEX_ERROR = 309,
305 GEOMETRY = 310,
306 GEOMETRYSUBTYPE = 311,
307 GEOMETRYA = 312,
308 USER = 313,
309 CURRENT_USER = 314,
310 SESSION_USER = 315,
311 LOCAL = 316,
312 LOCKED = 317,
313 BEST = 318,
314 EFFORT = 319,
315 CURRENT_ROLE = 320,
316 sqlSESSION = 321,
317 sqlDELETE = 322,
318 UPDATE = 323,
319 SELECT = 324,
320 INSERT = 325,
321 MATCHED = 326,
322 LATERAL = 327,
323 LEFT = 328,
324 RIGHT = 329,
325 FULL = 330,
326 OUTER = 331,
327 NATURAL = 332,
328 CROSS = 333,
329 JOIN = 334,
330 INNER = 335,
331 COMMIT = 336,
332 ROLLBACK = 337,
333 SAVEPOINT = 338,
334 RELEASE = 339,
335 WORK = 340,
336 CHAIN = 341,
337 NO = 342,
338 PRESERVE = 343,
339 ROWS = 344,
340 START = 345,
341 TRANSACTION = 346,
342 READ = 347,
343 WRITE = 348,
344 ONLY = 349,
345 ISOLATION = 350,
346 LEVEL = 351,
347 UNCOMMITTED = 352,
348 COMMITTED = 353,
349 sqlREPEATABLE = 354,
350 SERIALIZABLE = 355,
351 DIAGNOSTICS = 356,
352 sqlSIZE = 357,
353 STORAGE = 358,
354 ASYMMETRIC = 359,
355 SYMMETRIC = 360,
356 ORDER = 361,
357 ORDERED = 362,
358 BY = 363,
359 IMPRINTS = 364,
360 EXISTS = 365,
361 ESCAPE = 366,
362 UESCAPE = 367,
363 HAVING = 368,
364 sqlGROUP = 369,
365 sqlNULL = 370,
366 FROM = 371,
367 FOR = 372,
368 MATCH = 373,
369 EXTRACT = 374,
370 SEQUENCE = 375,
371 INCREMENT = 376,
372 RESTART = 377,
373 CONTINUE = 378,
374 MAXVALUE = 379,
375 MINVALUE = 380,
376 CYCLE = 381,
377 NEXT = 382,
378 VALUE = 383,
379 CACHE = 384,
380 GENERATED = 385,
381 ALWAYS = 386,
382 IDENTITY = 387,
383 SERIAL = 388,
384 BIGSERIAL = 389,
385 AUTO_INCREMENT = 390,
386 SCOLON = 391,
387 AT = 392,
388 XMLCOMMENT = 393,
389 XMLCONCAT = 394,
390 XMLDOCUMENT = 395,
391 XMLELEMENT = 396,
392 XMLATTRIBUTES = 397,
393 XMLFOREST = 398,
394 XMLPARSE = 399,
395 STRIP = 400,
396 WHITESPACE = 401,
397 XMLPI = 402,
398 XMLQUERY = 403,
399 PASSING = 404,
400 XMLTEXT = 405,
401 NIL = 406,
402 REF = 407,
403 ABSENT = 408,
404 EMPTY = 409,
405 DOCUMENT = 410,
406 ELEMENT = 411,
407 CONTENT = 412,
408 XMLNAMESPACES = 413,
409 NAMESPACE = 414,
410 XMLVALIDATE = 415,
411 RETURNING = 416,
412 LOCATION = 417,
413 ID = 418,
414 ACCORDING = 419,
415 XMLSCHEMA = 420,
416 URI = 421,
417 XMLAGG = 422,
418 FILTER = 423,
419 UNION = 424,
420 EXCEPT = 425,
421 INTERSECT = 426,
422 CORRESPONDING = 427,
423 UNIONJOIN = 428,
424 WITH = 429,
425 DATA = 430,
426 FILTER_FUNC = 431,
427 NOT = 432,
428 ALL = 433,
429 ANY = 434,
430 NOT_BETWEEN = 435,
431 BETWEEN = 436,
432 NOT_IN = 437,
433 sqlIN = 438,
434 NOT_LIKE = 439,
435 LIKE = 440,
436 NOT_ILIKE = 441,
437 ILIKE = 442,
438 OR = 443,
439 SOME = 444,
440 AND = 445,
441 COMPARISON = 446,
442 LEFT_SHIFT = 447,
443 RIGHT_SHIFT = 448,
444 LEFT_SHIFT_ASSIGN = 449,
445 RIGHT_SHIFT_ASSIGN = 450,
446 CONCATSTRING = 451,
447 SUBSTRING = 452,
448 POSITION = 453,
449 SPLIT_PART = 454,
450 UMINUS = 455,
451 GEOM_OVERLAP = 456,
452 GEOM_OVERLAP_OR_ABOVE = 457,
453 GEOM_OVERLAP_OR_BELOW = 458,
454 GEOM_OVERLAP_OR_LEFT = 459,
455 GEOM_OVERLAP_OR_RIGHT = 460,
456 GEOM_BELOW = 461,
457 GEOM_ABOVE = 462,
458 GEOM_DIST = 463,
459 GEOM_MBR_EQUAL = 464,
460 TEMP = 465,
461 TEMPORARY = 466,
462 STREAM = 467,
463 MERGE = 468,
464 REMOTE = 469,
465 REPLICA = 470,
466 ASC = 471,
467 DESC = 472,
468 AUTHORIZATION = 473,
469 CHECK = 474,
470 CONSTRAINT = 475,
471 CREATE = 476,
472 COMMENT = 477,
473 NULLS = 478,
474 FIRST = 479,
475 LAST = 480,
476 TYPE = 481,
477 PROCEDURE = 482,
478 FUNCTION = 483,
479 sqlLOADER = 484,
480 AGGREGATE = 485,
481 RETURNS = 486,
482 EXTERNAL = 487,
483 sqlNAME = 488,
484 DECLARE = 489,
485 CALL = 490,
486 LANGUAGE = 491,
487 ANALYZE = 492,
488 MINMAX = 493,
489 SQL_EXPLAIN = 494,
490 SQL_PLAN = 495,
491 SQL_DEBUG = 496,
492 SQL_TRACE = 497,
493 PREP = 498,
494 PREPARE = 499,
495 EXEC = 500,
496 EXECUTE = 501,
497 DEFAULT = 502,
498 DISTINCT = 503,
499 DROP = 504,
500 TRUNCATE = 505,
501 FOREIGN = 506,
502 RENAME = 507,
503 ENCRYPTED = 508,
504 UNENCRYPTED = 509,
505 PASSWORD = 510,
506 GRANT = 511,
507 REVOKE = 512,
508 ROLE = 513,
509 ADMIN = 514,
510 INTO = 515,
511 IS = 516,
512 KEY = 517,
513 ON = 518,
514 OPTION = 519,
515 OPTIONS = 520,
516 PATH = 521,
517 PRIMARY = 522,
518 PRIVILEGES = 523,
519 PUBLIC = 524,
520 REFERENCES = 525,
521 SCHEMA = 526,
522 SET = 527,
523 AUTO_COMMIT = 528,
524 RETURN = 529,
525 ALTER = 530,
526 ADD = 531,
527 TABLE = 532,
528 COLUMN = 533,
529 TO = 534,
530 UNIQUE = 535,
531 VALUES = 536,
532 VIEW = 537,
533 WHERE = 538,
534 sqlDATE = 539,
535 TIME = 540,
536 TIMESTAMP = 541,
537 INTERVAL = 542,
538 CENTURY = 543,
539 DECADE = 544,
540 YEAR = 545,
541 QUARTER = 546,
542 DOW = 547,
543 DOY = 548,
544 MONTH = 549,
545 WEEK = 550,
546 DAY = 551,
547 HOUR = 552,
548 MINUTE = 553,
549 SECOND = 554,
550 ZONE = 555,
551 LIMIT = 556,
552 OFFSET = 557,
553 SAMPLE = 558,
554 SEED = 559,
555 CASE = 560,
556 WHEN = 561,
557 THEN = 562,
558 ELSE = 563,
559 NULLIF = 564,
560 COALESCE = 565,
561 IF = 566,
562 ELSEIF = 567,
563 WHILE = 568,
564 DO = 569,
565 ATOMIC = 570,
566 BEGIN = 571,
567 END = 572,
568 COPY = 573,
569 RECORDS = 574,
570 DELIMITERS = 575,
571 STDIN = 576,
572 STDOUT = 577,
573 FWF = 578,
574 CLIENT = 579,
575 SERVER = 580,
576 INDEX = 581,
577 REPLACE = 582,
578 AS = 583,
579 TRIGGER = 584,
580 OF = 585,
581 BEFORE = 586,
582 AFTER = 587,
583 ROW = 588,
584 STATEMENT = 589,
585 sqlNEW = 590,
586 OLD = 591,
587 EACH = 592,
588 REFERENCING = 593,
589 OVER = 594,
590 PARTITION = 595,
591 CURRENT = 596,
592 EXCLUDE = 597,
593 FOLLOWING = 598,
594 PRECEDING = 599,
595 OTHERS = 600,
596 TIES = 601,
597 RANGE = 602,
598 UNBOUNDED = 603,
599 GROUPS = 604,
600 WINDOW = 605
601 };
602#endif
603
604/* Value type. */
605#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
606
607union YYSTYPE
608{
609#line 168 "sql_parser.y" /* yacc.c:355 */
610
611 int i_val,bval;
612 lng l_val,operation;
613 double fval;
614 char * sval;
615 symbol* sym;
616 dlist* l;
617 sql_subtype type;
618
619#line 620 "sql_parser.tab.c" /* yacc.c:355 */
620};
621
622typedef union YYSTYPE YYSTYPE;
623# define YYSTYPE_IS_TRIVIAL 1
624# define YYSTYPE_IS_DECLARED 1
625#endif
626
627
628
629int sqlparse (mvc *m);
630
631#endif /* !YY_SQL_SQL_PARSER_TMPH_H_INCLUDED */
632
633/* Copy the second part of user declarations. */
634#line 177 "sql_parser.y" /* yacc.c:358 */
635
636extern int sqllex( YYSTYPE *yylval, void *m );
637/* enable to activate debugging support
638int yydebug=1;
639*/
640
641#line 642 "sql_parser.tab.c" /* yacc.c:358 */
642
643#ifdef short
644# undef short
645#endif
646
647#ifdef YYTYPE_UINT8
648typedef YYTYPE_UINT8 yytype_uint8;
649#else
650typedef unsigned char yytype_uint8;
651#endif
652
653#ifdef YYTYPE_INT8
654typedef YYTYPE_INT8 yytype_int8;
655#else
656typedef signed char yytype_int8;
657#endif
658
659#ifdef YYTYPE_UINT16
660typedef YYTYPE_UINT16 yytype_uint16;
661#else
662typedef unsigned short int yytype_uint16;
663#endif
664
665#ifdef YYTYPE_INT16
666typedef YYTYPE_INT16 yytype_int16;
667#else
668typedef short int yytype_int16;
669#endif
670
671#ifndef YYSIZE_T
672# ifdef __SIZE_TYPE__
673# define YYSIZE_T __SIZE_TYPE__
674# elif defined size_t
675# define YYSIZE_T size_t
676# elif ! defined YYSIZE_T
677# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
678# define YYSIZE_T size_t
679# else
680# define YYSIZE_T unsigned int
681# endif
682#endif
683
684#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
685
686#ifndef YY_
687# if defined YYENABLE_NLS && YYENABLE_NLS
688# if ENABLE_NLS
689# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
690# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
691# endif
692# endif
693# ifndef YY_
694# define YY_(Msgid) Msgid
695# endif
696#endif
697
698#ifndef YY_ATTRIBUTE
699# if (defined __GNUC__ \
700 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
701 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
702# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
703# else
704# define YY_ATTRIBUTE(Spec) /* empty */
705# endif
706#endif
707
708#ifndef YY_ATTRIBUTE_PURE
709# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
710#endif
711
712#ifndef YY_ATTRIBUTE_UNUSED
713# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
714#endif
715
716#if !defined _Noreturn \
717 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
718# if defined _MSC_VER && 1200 <= _MSC_VER
719# define _Noreturn __declspec (noreturn)
720# else
721# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
722# endif
723#endif
724
725/* Suppress unused-variable warnings by "using" E. */
726#if ! defined lint || defined __GNUC__
727# define YYUSE(E) ((void) (E))
728#else
729# define YYUSE(E) /* empty */
730#endif
731
732#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
733/* Suppress an incorrect diagnostic about yylval being uninitialized. */
734# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
735 _Pragma ("GCC diagnostic push") \
736 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
737 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
738# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
739 _Pragma ("GCC diagnostic pop")
740#else
741# define YY_INITIAL_VALUE(Value) Value
742#endif
743#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
744# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
745# define YY_IGNORE_MAYBE_UNINITIALIZED_END
746#endif
747#ifndef YY_INITIAL_VALUE
748# define YY_INITIAL_VALUE(Value) /* Nothing. */
749#endif
750
751
752#if ! defined yyoverflow || YYERROR_VERBOSE
753
754/* The parser invokes alloca or malloc; define the necessary symbols. */
755
756# ifdef YYSTACK_USE_ALLOCA
757# if YYSTACK_USE_ALLOCA
758# ifdef __GNUC__
759# define YYSTACK_ALLOC __builtin_alloca
760# elif defined __BUILTIN_VA_ARG_INCR
761# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
762# elif defined _AIX
763# define YYSTACK_ALLOC __alloca
764# elif defined _MSC_VER
765# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
766# define alloca _alloca
767# else
768# define YYSTACK_ALLOC alloca
769# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
770# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
771 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
772# ifndef EXIT_SUCCESS
773# define EXIT_SUCCESS 0
774# endif
775# endif
776# endif
777# endif
778# endif
779
780# ifdef YYSTACK_ALLOC
781 /* Pacify GCC's 'empty if-body' warning. */
782# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
783# ifndef YYSTACK_ALLOC_MAXIMUM
784 /* The OS might guarantee only one guard page at the bottom of the stack,
785 and a page size can be as small as 4096 bytes. So we cannot safely
786 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
787 to allow for a few compiler-allocated temporary stack slots. */
788# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
789# endif
790# else
791# define YYSTACK_ALLOC YYMALLOC
792# define YYSTACK_FREE YYFREE
793# ifndef YYSTACK_ALLOC_MAXIMUM
794# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
795# endif
796# if (defined __cplusplus && ! defined EXIT_SUCCESS \
797 && ! ((defined YYMALLOC || defined malloc) \
798 && (defined YYFREE || defined free)))
799# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
800# ifndef EXIT_SUCCESS
801# define EXIT_SUCCESS 0
802# endif
803# endif
804# ifndef YYMALLOC
805# define YYMALLOC malloc
806# if ! defined malloc && ! defined EXIT_SUCCESS
807void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
808# endif
809# endif
810# ifndef YYFREE
811# define YYFREE free
812# if ! defined free && ! defined EXIT_SUCCESS
813void free (void *); /* INFRINGES ON USER NAME SPACE */
814# endif
815# endif
816# endif
817#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
818
819
820#if (! defined yyoverflow \
821 && (! defined __cplusplus \
822 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
823
824/* A type that is properly aligned for any stack member. */
825union yyalloc
826{
827 yytype_int16 yyss_alloc;
828 YYSTYPE yyvs_alloc;
829};
830
831/* The size of the maximum gap between one aligned stack and the next. */
832# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
833
834/* The size of an array large to enough to hold all stacks, each with
835 N elements. */
836# define YYSTACK_BYTES(N) \
837 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
838 + YYSTACK_GAP_MAXIMUM)
839
840# define YYCOPY_NEEDED 1
841
842/* Relocate STACK from its old location to the new one. The
843 local variables YYSIZE and YYSTACKSIZE give the old and new number of
844 elements in the stack, and YYPTR gives the new location of the
845 stack. Advance YYPTR to a properly aligned location for the next
846 stack. */
847# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
848 do \
849 { \
850 YYSIZE_T yynewbytes; \
851 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
852 Stack = &yyptr->Stack_alloc; \
853 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
854 yyptr += yynewbytes / sizeof (*yyptr); \
855 } \
856 while (0)
857
858#endif
859
860#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
861/* Copy COUNT objects from SRC to DST. The source and destination do
862 not overlap. */
863# ifndef YYCOPY
864# if defined __GNUC__ && 1 < __GNUC__
865# define YYCOPY(Dst, Src, Count) \
866 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
867# else
868# define YYCOPY(Dst, Src, Count) \
869 do \
870 { \
871 YYSIZE_T yyi; \
872 for (yyi = 0; yyi < (Count); yyi++) \
873 (Dst)[yyi] = (Src)[yyi]; \
874 } \
875 while (0)
876# endif
877# endif
878#endif /* !YYCOPY_NEEDED */
879
880/* YYFINAL -- State number of the termination state. */
881#define YYFINAL 262
882/* YYLAST -- Last index in YYTABLE. */
883#define YYLAST 20659
884
885/* YYNTOKENS -- Number of terminals. */
886#define YYNTOKENS 369
887/* YYNNTS -- Number of nonterminals. */
888#define YYNNTS 448
889/* YYNRULES -- Number of rules. */
890#define YYNRULES 1256
891/* YYNSTATES -- Number of states. */
892#define YYNSTATES 2351
893
894/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
895 by yylex, with out-of-bounds checking. */
896#define YYUNDEFTOK 2
897#define YYMAXUTOK 605
898
899#define YYTRANSLATE(YYX) \
900 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
901
902/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
903 as returned by yylex, without out-of-bounds checking. */
904static const yytype_uint16 yytranslate[] =
905{
906 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
907 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
908 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
909 2, 2, 2, 2, 2, 2, 2, 210, 197, 2,
910 176, 177, 208, 195, 363, 196, 364, 209, 2, 2,
911 2, 2, 2, 2, 2, 2, 2, 2, 365, 2,
912 2, 180, 2, 368, 2, 2, 2, 2, 2, 2,
913 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
914 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
915 2, 366, 2, 367, 199, 2, 2, 2, 2, 2,
916 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
917 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
918 2, 2, 2, 2, 198, 2, 212, 2, 2, 2,
919 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
920 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
921 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
922 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
923 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
924 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
925 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
926 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
927 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
928 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
929 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
930 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
931 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
932 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
933 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
934 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
935 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
936 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
937 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
938 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
939 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
940 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
941 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
942 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
943 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
944 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
945 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
946 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
947 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
948 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
949 175, 178, 179, 181, 182, 183, 184, 185, 186, 187,
950 188, 189, 190, 191, 192, 193, 194, 200, 201, 202,
951 203, 204, 205, 206, 207, 211, 213, 214, 215, 216,
952 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
953 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
954 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
955 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
956 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
957 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
958 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
959 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
960 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
961 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
962 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
963 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
964 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
965 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
966 357, 358, 359, 360, 361, 362
967};
968
969#if YYDEBUG
970 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
971static const yytype_uint16 yyrline[] =
972{
973 0, 715, 715, 726, 726, 740, 740, 755, 755, 770,
974 770, 780, 780, 786, 787, 788, 789, 790, 795, 796,
975 800, 801, 806, 809, 810, 814, 815, 819, 820, 824,
976 827, 830, 834, 835, 836, 837, 838, 839, 840, 841,
977 842, 849, 850, 854, 855, 859, 861, 865, 870, 879,
978 884, 889, 897, 905, 913, 921, 928, 936, 945, 954,
979 958, 962, 969, 972, 973, 977, 978, 982, 983, 987,
980 987, 987, 987, 987, 990, 991, 995, 996, 1000, 1009,
981 1020, 1021, 1026, 1027, 1031, 1032, 1037, 1038, 1042, 1050,
982 1060, 1061, 1065, 1066, 1070, 1074, 1081, 1082, 1087, 1088,
983 1092, 1093, 1094, 1105, 1106, 1107, 1111, 1112, 1117, 1118,
984 1119, 1120, 1121, 1122, 1123, 1127, 1128, 1133, 1134, 1140,
985 1146, 1157, 1163, 1169, 1175, 1181, 1187, 1198, 1204, 1211,
986 1217, 1222, 1227, 1237, 1246, 1252, 1258, 1268, 1273, 1277,
987 1281, 1283, 1291, 1299, 1304, 1309, 1318, 1319, 1323, 1324,
988 1325, 1326, 1327, 1328, 1329, 1330, 1346, 1357, 1374, 1384,
989 1385, 1388, 1389, 1393, 1394, 1398, 1399, 1400, 1404, 1405,
990 1406, 1407, 1408, 1412, 1413, 1414, 1415, 1416, 1417, 1418,
991 1419, 1426, 1436, 1437, 1438, 1439, 1459, 1464, 1475, 1476,
992 1477, 1481, 1482, 1486, 1500, 1507, 1520, 1533, 1549, 1562,
993 1580, 1581, 1585, 1589, 1590, 1594, 1595, 1615, 1619, 1620,
994 1624, 1625, 1629, 1630, 1634, 1635, 1639, 1644, 1650, 1659,
995 1660, 1665, 1670, 1676, 1685, 1686, 1687, 1688, 1689, 1690,
996 1694, 1695, 1696, 1697, 1701, 1702, 1706, 1716, 1717, 1718,
997 1722, 1724, 1728, 1728, 1729, 1729, 1729, 1732, 1733, 1737,
998 1745, 1798, 1799, 1803, 1805, 1810, 1819, 1821, 1825, 1825,
999 1825, 1828, 1832, 1836, 1845, 1874, 1912, 1913, 1918, 1929,
1000 1930, 1934, 1935, 1936, 1937, 1938, 1942, 1946, 1950, 1951,
1001 1952, 1953, 1954, 1958, 1959, 1960, 1961, 1965, 1966, 1970,
1002 1971, 1972, 1973, 1974, 1984, 1988, 1990, 1992, 2006, 2010,
1003 2012, 2017, 2021, 2034, 2035, 2039, 2040, 2044, 2045, 2049,
1004 2050, 2054, 2058, 2066, 2070, 2071, 2075, 2089, 2103, 2154,
1005 2168, 2182, 2232, 2245, 2258, 2282, 2284, 2288, 2306, 2307,
1006 2312, 2313, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325,
1007 2326, 2327, 2328, 2329, 2333, 2334, 2335, 2336, 2337, 2338,
1008 2339, 2340, 2344, 2345, 2346, 2347, 2348, 2349, 2362, 2366,
1009 2370, 2379, 2382, 2383, 2384, 2390, 2394, 2395, 2396, 2401,
1010 2407, 2415, 2423, 2425, 2430, 2438, 2440, 2445, 2446, 2453,
1011 2467, 2468, 2470, 2481, 2502, 2503, 2507, 2508, 2513, 2517,
1012 2525, 2527, 2532, 2533, 2537, 2541, 2546, 2595, 2610, 2611,
1013 2616, 2617, 2618, 2619, 2620, 2624, 2625, 2629, 2630, 2636,
1014 2637, 2638, 2639, 2642, 2644, 2647, 2649, 2653, 2661, 2662,
1015 2666, 2667, 2671, 2672, 2676, 2678, 2684, 2690, 2696, 2702,
1016 2708, 2717, 2724, 2731, 2738, 2745, 2755, 2761, 2766, 2775,
1017 2784, 2793, 2802, 2811, 2817, 2822, 2823, 2824, 2825, 2834,
1018 2835, 2836, 2840, 2843, 2848, 2849, 2850, 2855, 2856, 2860,
1019 2861, 2862, 2863, 2864, 2865, 2869, 2876, 2878, 2880, 2882,
1020 2886, 2888, 2890, 2895, 2896, 2900, 2902, 2907, 2908, 2909,
1021 2910, 2914, 2915, 2916, 2917, 2921, 2922, 2926, 2927, 2928,
1022 2932, 2933, 2937, 2938, 2939, 2943, 2958, 2973, 2978, 2986,
1023 2994, 3005, 3006, 3011, 3012, 3018, 3019, 3023, 3024, 3028,
1024 3032, 3041, 3045, 3050, 3055, 3064, 3065, 3069, 3070, 3071,
1025 3072, 3074, 3079, 3080, 3084, 3085, 3089, 3090, 3094, 3095,
1026 3099, 3100, 3104, 3105, 3110, 3120, 3121, 3122, 3126, 3132,
1027 3141, 3153, 3154, 3158, 3162, 3167, 3175, 3180, 3188, 3189,
1028 3193, 3204, 3212, 3223, 3224, 3226, 3231, 3232, 3237, 3238,
1029 3243, 3244, 3249, 3271, 3275, 3276, 3280, 3281, 3285, 3286,
1030 3287, 3291, 3292, 3297, 3301, 3306, 3311, 3319, 3320, 3326,
1031 3328, 3333, 3341, 3349, 3360, 3361, 3362, 3366, 3367, 3371,
1032 3372, 3373, 3377, 3378, 3398, 3402, 3412, 3413, 3417, 3430,
1033 3431, 3432, 3433, 3434, 3435, 3439, 3440, 3444, 3456, 3468,
1034 3499, 3500, 3505, 3509, 3518, 3527, 3535, 3536, 3537, 3541,
1035 3542, 3543, 3548, 3549, 3551, 3556, 3560, 3571, 3576, 3577,
1036 3581, 3582, 3586, 3587, 3591, 3592, 3597, 3601, 3607, 3613,
1037 3623, 3635, 3640, 3645, 3650, 3655, 3660, 3668, 3669, 3673,
1038 3674, 3678, 3679, 3683, 3685, 3691, 3692, 3696, 3701, 3705,
1039 3710, 3714, 3715, 3720, 3721, 3725, 3729, 3730, 3734, 3738,
1040 3739, 3751, 3763, 3767, 3768, 3773, 3774, 3779, 3787, 3788,
1041 3789, 3793, 3794, 3795, 3799, 3800, 3801, 3802, 3803, 3804,
1042 3805, 3806, 3807, 3811, 3828, 3832, 3839, 3849, 3856, 3866,
1043 3867, 3868, 3872, 3879, 3886, 3893, 3903, 3907, 3923, 3924,
1044 3928, 3934, 3940, 3945, 3953, 3955, 3960, 3968, 3978, 3979,
1045 3980, 3984, 3988, 3989, 3993, 3997, 4006, 4007, 4011, 4012,
1046 4017, 4018, 4025, 4032, 4039, 4046, 4053, 4060, 4067, 4074,
1047 4081, 4088, 4095, 4101, 4108, 4115, 4122, 4129, 4136, 4143,
1048 4150, 4156, 4163, 4170, 4177, 4184, 4186, 4208, 4212, 4213,
1049 4217, 4218, 4220, 4222, 4223, 4224, 4225, 4226, 4227, 4228,
1050 4229, 4230, 4231, 4232, 4233, 4234, 4238, 4247, 4249, 4254,
1051 4259, 4264, 4268, 4273, 4274, 4278, 4279, 4284, 4285, 4290,
1052 4291, 4296, 4297, 4298, 4302, 4308, 4312, 4315, 4317, 4323,
1053 4324, 4328, 4332, 4335, 4340, 4341, 4342, 4343, 4344, 4348,
1054 4352, 4356, 4384, 4385, 4390, 4391, 4392, 4393, 4397, 4404,
1055 4409, 4414, 4419, 4424, 4432, 4433, 4437, 4447, 4457, 4464,
1056 4471, 4478, 4485, 4498, 4499, 4504, 4509, 4514, 4519, 4527,
1057 4528, 4529, 4533, 4558, 4559, 4564, 4565, 4570, 4571, 4577,
1058 4583, 4589, 4595, 4601, 4607, 4614, 4618, 4619, 4620, 4624,
1059 4625, 4636, 4638, 4642, 4644, 4648, 4649, 4655, 4664, 4665,
1060 4666, 4667, 4668, 4672, 4673, 4677, 4678, 4679, 4680, 4681,
1061 4682, 4684, 4689, 4695, 4698, 4704, 4707, 4713, 4716, 4721,
1062 4741, 4742, 4743, 4747, 4753, 4817, 4848, 4909, 4948, 4965,
1063 4981, 4997, 5013, 5014, 5031, 5048, 5065, 5082, 5103, 5107,
1064 5114, 5159, 5160, 5164, 5175, 5178, 5182, 5190, 5196, 5204,
1065 5208, 5213, 5215, 5221, 5229, 5231, 5236, 5240, 5246, 5254,
1066 5256, 5261, 5269, 5271, 5276, 5277, 5281, 5286, 5297, 5308,
1067 5318, 5328, 5330, 5335, 5336, 5338, 5340, 5349, 5350, 5359,
1068 5360, 5361, 5362, 5363, 5365, 5366, 5379, 5397, 5398, 5412,
1069 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5440, 5441, 5443,
1070 5455, 5469, 5483, 5490, 5505, 5520, 5527, 5553, 5570, 5590,
1071 5605, 5606, 5610, 5611, 5612, 5615, 5616, 5619, 5621, 5624,
1072 5625, 5627, 5628, 5629, 5630, 5631, 5635, 5648, 5649, 5651,
1073 5652, 5653, 5654, 5655, 5656, 5657, 5661, 5674, 5675, 5676,
1074 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686,
1075 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696,
1076 5697, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707,
1077 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717,
1078 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727,
1079 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737,
1080 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747,
1081 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759,
1082 5760, 5761, 5762, 5763, 5764, 5765, 5769, 5770, 5775, 5798,
1083 5799, 5803, 5824, 5861, 5862, 5874, 5876, 5884, 5886, 5894,
1084 5896, 5904, 5905, 5915, 5922, 5927, 5942, 5943, 5947, 5950,
1085 5954, 5960, 5969, 5970, 5971, 5972, 5978, 5985, 5986, 5987,
1086 5991, 5995, 5997, 6002, 6006, 6007, 6008, 6009, 6010, 6011,
1087 6012, 6013, 6014, 6015, 6019, 6027, 6035, 6042, 6056, 6057,
1088 6061, 6065, 6069, 6073, 6077, 6081, 6088, 6092, 6096, 6097,
1089 6107, 6115, 6116, 6120, 6124, 6128, 6135, 6137, 6142, 6146,
1090 6147, 6151, 6152, 6153, 6154, 6155, 6159, 6172, 6173, 6177,
1091 6179, 6184, 6190, 6194, 6195, 6199, 6204, 6213, 6214, 6218,
1092 6229, 6233, 6234, 6239, 6249, 6252, 6254, 6258, 6262, 6263,
1093 6267, 6268, 6272, 6276, 6279, 6281, 6285, 6286, 6290, 6298,
1094 6307, 6308, 6312, 6313, 6317, 6318, 6319, 6334, 6338, 6339,
1095 6349, 6350, 6354, 6358, 6362, 6372, 6376, 6379, 6381, 6385,
1096 6386, 6389, 6391, 6395, 6400, 6401, 6405, 6406, 6410, 6414,
1097 6417, 6419, 6423, 6427, 6431, 6434, 6436, 6440, 6441, 6445,
1098 6447, 6451, 6455, 6456, 6460, 6464, 6468
1099};
1100#endif
1101
1102#if YYDEBUG || YYERROR_VERBOSE || 0
1103/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1104 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1105static const char *const yytname[] =
1106{
1107 "$end", "error", "$undefined", "STRING", "USTRING", "XSTRING", "X_BODY",
1108 "IDENT", "UIDENT", "aTYPE", "ALIAS", "AGGR", "AGGR2", "RANK", "sqlINT",
1109 "OIDNUM", "HEXADECIMAL", "INTNUM", "APPROXNUM", "USING", "GLOBAL",
1110 "CAST", "CONVERT", "CHARACTER", "VARYING", "LARGE", "OBJECT", "VARCHAR",
1111 "CLOB", "sqlTEXT", "BINARY", "sqlBLOB", "sqlDECIMAL", "sqlFLOAT",
1112 "TINYINT", "SMALLINT", "BIGINT", "HUGEINT", "sqlINTEGER", "sqlDOUBLE",
1113 "sqlREAL", "PRECISION", "PARTIAL", "SIMPLE", "ACTION", "CASCADE",
1114 "RESTRICT", "BOOL_FALSE", "BOOL_TRUE", "CURRENT_DATE",
1115 "CURRENT_TIMESTAMP", "CURRENT_TIME", "LOCALTIMESTAMP", "LOCALTIME",
1116 "LEX_ERROR", "GEOMETRY", "GEOMETRYSUBTYPE", "GEOMETRYA", "USER",
1117 "CURRENT_USER", "SESSION_USER", "LOCAL", "LOCKED", "BEST", "EFFORT",
1118 "CURRENT_ROLE", "sqlSESSION", "sqlDELETE", "UPDATE", "SELECT", "INSERT",
1119 "MATCHED", "LATERAL", "LEFT", "RIGHT", "FULL", "OUTER", "NATURAL",
1120 "CROSS", "JOIN", "INNER", "COMMIT", "ROLLBACK", "SAVEPOINT", "RELEASE",
1121 "WORK", "CHAIN", "NO", "PRESERVE", "ROWS", "START", "TRANSACTION",
1122 "READ", "WRITE", "ONLY", "ISOLATION", "LEVEL", "UNCOMMITTED",
1123 "COMMITTED", "sqlREPEATABLE", "SERIALIZABLE", "DIAGNOSTICS", "sqlSIZE",
1124 "STORAGE", "ASYMMETRIC", "SYMMETRIC", "ORDER", "ORDERED", "BY",
1125 "IMPRINTS", "EXISTS", "ESCAPE", "UESCAPE", "HAVING", "sqlGROUP",
1126 "sqlNULL", "FROM", "FOR", "MATCH", "EXTRACT", "SEQUENCE", "INCREMENT",
1127 "RESTART", "CONTINUE", "MAXVALUE", "MINVALUE", "CYCLE", "NEXT", "VALUE",
1128 "CACHE", "GENERATED", "ALWAYS", "IDENTITY", "SERIAL", "BIGSERIAL",
1129 "AUTO_INCREMENT", "SCOLON", "AT", "XMLCOMMENT", "XMLCONCAT",
1130 "XMLDOCUMENT", "XMLELEMENT", "XMLATTRIBUTES", "XMLFOREST", "XMLPARSE",
1131 "STRIP", "WHITESPACE", "XMLPI", "XMLQUERY", "PASSING", "XMLTEXT", "NIL",
1132 "REF", "ABSENT", "EMPTY", "DOCUMENT", "ELEMENT", "CONTENT",
1133 "XMLNAMESPACES", "NAMESPACE", "XMLVALIDATE", "RETURNING", "LOCATION",
1134 "ID", "ACCORDING", "XMLSCHEMA", "URI", "XMLAGG", "FILTER", "UNION",
1135 "EXCEPT", "INTERSECT", "CORRESPONDING", "UNIONJOIN", "WITH", "DATA",
1136 "'('", "')'", "FILTER_FUNC", "NOT", "'='", "ALL", "ANY", "NOT_BETWEEN",
1137 "BETWEEN", "NOT_IN", "sqlIN", "NOT_LIKE", "LIKE", "NOT_ILIKE", "ILIKE",
1138 "OR", "SOME", "AND", "COMPARISON", "'+'", "'-'", "'&'", "'|'", "'^'",
1139 "LEFT_SHIFT", "RIGHT_SHIFT", "LEFT_SHIFT_ASSIGN", "RIGHT_SHIFT_ASSIGN",
1140 "CONCATSTRING", "SUBSTRING", "POSITION", "SPLIT_PART", "'*'", "'/'",
1141 "'%'", "UMINUS", "'~'", "GEOM_OVERLAP", "GEOM_OVERLAP_OR_ABOVE",
1142 "GEOM_OVERLAP_OR_BELOW", "GEOM_OVERLAP_OR_LEFT", "GEOM_OVERLAP_OR_RIGHT",
1143 "GEOM_BELOW", "GEOM_ABOVE", "GEOM_DIST", "GEOM_MBR_EQUAL", "TEMP",
1144 "TEMPORARY", "STREAM", "MERGE", "REMOTE", "REPLICA", "ASC", "DESC",
1145 "AUTHORIZATION", "CHECK", "CONSTRAINT", "CREATE", "COMMENT", "NULLS",
1146 "FIRST", "LAST", "TYPE", "PROCEDURE", "FUNCTION", "sqlLOADER",
1147 "AGGREGATE", "RETURNS", "EXTERNAL", "sqlNAME", "DECLARE", "CALL",
1148 "LANGUAGE", "ANALYZE", "MINMAX", "SQL_EXPLAIN", "SQL_PLAN", "SQL_DEBUG",
1149 "SQL_TRACE", "PREP", "PREPARE", "EXEC", "EXECUTE", "DEFAULT", "DISTINCT",
1150 "DROP", "TRUNCATE", "FOREIGN", "RENAME", "ENCRYPTED", "UNENCRYPTED",
1151 "PASSWORD", "GRANT", "REVOKE", "ROLE", "ADMIN", "INTO", "IS", "KEY",
1152 "ON", "OPTION", "OPTIONS", "PATH", "PRIMARY", "PRIVILEGES", "PUBLIC",
1153 "REFERENCES", "SCHEMA", "SET", "AUTO_COMMIT", "RETURN", "ALTER", "ADD",
1154 "TABLE", "COLUMN", "TO", "UNIQUE", "VALUES", "VIEW", "WHERE", "sqlDATE",
1155 "TIME", "TIMESTAMP", "INTERVAL", "CENTURY", "DECADE", "YEAR", "QUARTER",
1156 "DOW", "DOY", "MONTH", "WEEK", "DAY", "HOUR", "MINUTE", "SECOND", "ZONE",
1157 "LIMIT", "OFFSET", "SAMPLE", "SEED", "CASE", "WHEN", "THEN", "ELSE",
1158 "NULLIF", "COALESCE", "IF", "ELSEIF", "WHILE", "DO", "ATOMIC", "BEGIN",
1159 "END", "COPY", "RECORDS", "DELIMITERS", "STDIN", "STDOUT", "FWF",
1160 "CLIENT", "SERVER", "INDEX", "REPLACE", "AS", "TRIGGER", "OF", "BEFORE",
1161 "AFTER", "ROW", "STATEMENT", "sqlNEW", "OLD", "EACH", "REFERENCING",
1162 "OVER", "PARTITION", "CURRENT", "EXCLUDE", "FOLLOWING", "PRECEDING",
1163 "OTHERS", "TIES", "RANGE", "UNBOUNDED", "GROUPS", "WINDOW", "','", "'.'",
1164 "':'", "'['", "']'", "'?'", "$accept", "sqlstmt", "$@1", "$@2", "$@3",
1165 "$@4", "$@5", "prepare", "execute", "create", "create_or_replace",
1166 "if_exists", "if_not_exists", "drop", "set", "declare", "sql",
1167 "opt_minmax", "declare_statement", "variable_list", "set_statement",
1168 "schema", "schema_name_clause", "authorization_identifier",
1169 "opt_schema_default_char_set", "opt_schema_element_list",
1170 "schema_element_list", "schema_element", "opt_grantor", "grantor",
1171 "grant", "authid_list", "opt_with_grant", "opt_with_admin",
1172 "opt_from_grantor", "revoke", "opt_grant_for", "opt_admin_for",
1173 "privileges", "global_privileges", "global_privilege", "object_name",
1174 "object_privileges", "operation_commalist", "operation",
1175 "grantee_commalist", "grantee", "alter_statement", "passwd_schema",
1176 "alter_table_element", "drop_table_element", "opt_column",
1177 "create_statement", "seq_def", "opt_seq_params", "params_list",
1178 "opt_alt_seq_params", "opt_seq_param", "opt_alt_seq_param",
1179 "opt_seq_common_param", "index_def", "opt_index_type", "role_def",
1180 "opt_encrypted", "table_opt_storage", "table_def", "partition_type",
1181 "partition_expression", "partition_on", "opt_partition_by",
1182 "partition_list_value", "partition_range_from", "partition_range_to",
1183 "partition_list", "opt_with_nulls", "opt_partition_spec",
1184 "opt_as_partition", "with_opt_credentials", "opt_temp", "opt_on_commit",
1185 "table_content_source", "as_subquery_clause", "with_or_without_data",
1186 "table_element_list", "add_table_element", "table_element",
1187 "serial_or_bigserial", "column_def", "opt_column_def_opt_list",
1188 "column_def_opt_list", "column_options", "column_option_list",
1189 "column_option", "default", "default_value", "column_constraint",
1190 "generated_column", "serial_opt_params", "table_constraint",
1191 "opt_constraint_name", "ref_action", "ref_on_update", "ref_on_delete",
1192 "opt_ref_action", "opt_match_type", "opt_match",
1193 "column_constraint_type", "table_constraint_type",
1194 "domain_constraint_type", "ident_commalist", "like_table", "view_def",
1195 "query_expression_def", "query_expression", "opt_with_check_option",
1196 "opt_column_list", "column_commalist_parens", "type_def",
1197 "external_function_name", "function_body", "func_def", "routine_body",
1198 "procedure_statement_list", "trigger_procedure_statement_list",
1199 "procedure_statement", "trigger_procedure_statement",
1200 "control_statement", "call_statement", "call_procedure_statement",
1201 "routine_invocation", "routine_name", "argument_list",
1202 "return_statement", "return_value", "case_statement", "when_statement",
1203 "when_statements", "when_search_statement", "when_search_statements",
1204 "case_opt_else_statement", "if_statement", "if_opt_else",
1205 "while_statement", "opt_begin_label", "opt_end_label",
1206 "table_function_column_list", "func_data_type", "opt_paramlist",
1207 "paramlist", "trigger_def", "trigger_action_time", "trigger_event",
1208 "opt_referencing_list", "old_or_new_values_alias_list",
1209 "old_or_new_values_alias", "opt_as", "opt_row", "triggered_action",
1210 "opt_for_each", "row_or_statement", "opt_when", "triggered_statement",
1211 "routine_designator", "drop_routine_designator", "drop_statement",
1212 "opt_typelist", "typelist", "drop_action", "update_statement",
1213 "transaction_statement", "_transaction_stmt", "transaction_mode_list",
1214 "_transaction_mode_list", "transaction_mode", "iso_level", "opt_work",
1215 "opt_chain", "opt_to_savepoint", "opt_on_location", "copyfrom_stmt",
1216 "opt_fwf_widths", "fwf_widthlist", "opt_header_list", "header_list",
1217 "header", "opt_seps", "opt_using", "opt_nr", "opt_null_string",
1218 "opt_locked", "opt_best_effort", "opt_constraint", "string_commalist",
1219 "string_commalist_contents", "delete_stmt", "check_identity",
1220 "truncate_stmt", "update_stmt", "opt_search_condition",
1221 "merge_update_or_delete", "merge_insert", "merge_match_clause",
1222 "merge_when_list", "merge_stmt", "insert_stmt", "values_or_query_spec",
1223 "row_commalist", "atom_commalist", "value_commalist", "null",
1224 "simple_atom", "insert_atom", "value", "opt_distinct",
1225 "assignment_commalist", "assign_default", "assignment",
1226 "opt_where_clause", "joined_table", "join_type", "opt_outer",
1227 "outer_join_type", "join_spec", "with_query", "with_list",
1228 "with_list_element", "with_query_expression", "simple_select",
1229 "select_statement_single_row", "select_no_parens_orderby",
1230 "select_target_list", "target_specification", "select_no_parens",
1231 "set_distinct", "opt_corresponding", "selection", "table_exp",
1232 "window_definition", "window_definition_list", "opt_window_clause",
1233 "opt_from_clause", "table_ref_commalist", "table_ref", "table_name",
1234 "opt_table_name", "opt_group_by_clause", "search_condition_commalist",
1235 "column_ref_commalist", "opt_having_clause", "search_condition",
1236 "and_exp", "opt_order_by_clause", "opt_limit", "opt_offset",
1237 "opt_sample", "opt_seed", "sort_specification_list", "ordering_spec",
1238 "opt_asc_desc", "opt_nulls_first_last", "predicate", "pred_exp",
1239 "comparison_predicate", "between_predicate", "opt_bounds",
1240 "like_predicate", "like_exp", "test_for_null", "in_predicate",
1241 "pred_exp_list", "all_or_any_predicate", "any_all_some",
1242 "existence_test", "filter_arg_list", "filter_args", "filter_exp",
1243 "subquery_with_orderby", "subquery", "simple_scalar_exp", "scalar_exp",
1244 "value_exp", "param", "window_function", "window_function_type",
1245 "window_specification", "window_ident_clause", "window_partition_clause",
1246 "window_order_clause", "window_frame_clause", "window_frame_units",
1247 "window_frame_extent", "window_frame_start", "window_bound",
1248 "window_frame_between", "window_following_bound",
1249 "window_frame_exclusion", "var_ref", "func_ref", "qfunc", "func_ident",
1250 "datetime_funcs", "opt_brackets", "string_funcs", "column_exp_commalist",
1251 "column_exp", "opt_alias_name", "atom", "qrank", "qaggr", "qaggr2",
1252 "aggr_ref", "opt_sign", "tz", "time_precision", "timestamp_precision",
1253 "datetime_type", "non_second_datetime_field", "datetime_field",
1254 "extract_datetime_field", "start_field", "end_field",
1255 "single_datetime_field", "interval_qualifier", "interval_type", "user",
1256 "literal", "interval_expression", "qname", "column_ref", "cast_exp",
1257 "cast_value", "case_exp", "scalar_exp_list", "case_scalar_exp_list",
1258 "when_value", "when_value_list", "when_search", "when_search_list",
1259 "case_opt_else", "case_scalar_exp", "nonzero", "nonzerolng", "poslng",
1260 "posint", "data_type", "subgeometry_type", "type_alias", "varchar",
1261 "clob", "blob", "column", "authid", "calc_restricted_ident",
1262 "restricted_ident", "calc_ident", "ident", "non_reserved_word",
1263 "name_commalist", "lngval", "ident_or_uident", "intval", "opt_uescape",
1264 "ustring", "blobstring", "sstring", "string", "exec", "exec_ref",
1265 "opt_path_specification", "path_specification", "schema_name_list",
1266 "comment_on_statement", "catalog_object", "XML_value_expression",
1267 "XML_value_expression_list", "XML_primary", "XML_value_function",
1268 "XML_comment", "XML_concatenation", "XML_document", "XML_element",
1269 "opt_comma_XML_namespace_declaration_attributes_element_content",
1270 "XML_element_name", "XML_attributes", "XML_attribute_list",
1271 "XML_attribute", "opt_XML_attribute_name", "XML_attribute_value",
1272 "XML_attribute_name", "XML_element_content_and_option",
1273 "XML_element_content_list", "XML_element_content",
1274 "opt_XML_content_option", "XML_content_option", "XML_forest",
1275 "opt_XML_namespace_declaration_and_comma", "forest_element_list",
1276 "forest_element", "forest_element_value", "opt_forest_element_name",
1277 "forest_element_name", "XML_parse", "XML_whitespace_option", "XML_PI",
1278 "XML_PI_target", "opt_comma_string_value_expression", "XML_query",
1279 "XQuery_expression", "opt_XML_query_argument_list",
1280 "XML_query_default_passing_mechanism", "XML_query_argument_list",
1281 "XML_query_argument", "XML_query_context_item", "XML_query_variable",
1282 "opt_XML_query_returning_mechanism", "XML_query_empty_handling_option",
1283 "XML_text", "XML_validate", "document_or_content_or_sequence",
1284 "document_or_content", "opt_XML_returning_clause",
1285 "XML_namespace_declaration", "XML_namespace_declaration_item_list",
1286 "XML_namespace_declaration_item", "XML_namespace_prefix",
1287 "XML_namespace_URI", "XML_regular_namespace_declaration_item",
1288 "XML_default_namespace_declaration_item", "opt_XML_passing_mechanism",
1289 "XML_passing_mechanism", "opt_XML_valid_according_to_clause",
1290 "XML_valid_according_to_clause", "XML_valid_according_to_what",
1291 "XML_valid_according_to_URI", "XML_valid_target_namespace_URI",
1292 "XML_URI", "opt_XML_valid_schema_location",
1293 "XML_valid_schema_location_URI", "XML_valid_according_to_identifier",
1294 "registered_XML_Schema_name", "opt_XML_valid_element_clause",
1295 "XML_valid_element_clause", "opt_XML_valid_element_name_specification",
1296 "XML_valid_element_name_specification",
1297 "XML_valid_element_namespace_specification",
1298 "XML_valid_element_namespace_URI", "XML_valid_element_name",
1299 "XML_aggregate", YY_NULLPTR
1300};
1301#endif
1302
1303# ifdef YYPRINT
1304/* YYTOKNUM[NUM] -- (External) token number corresponding to the
1305 (internal) symbol number NUM (which must be that of a token). */
1306static const yytype_uint16 yytoknum[] =
1307{
1308 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1309 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1310 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1311 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1312 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1313 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1314 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1315 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1316 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1317 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1318 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1319 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1320 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1321 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1322 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1323 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1324 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1325 425, 426, 427, 428, 429, 430, 40, 41, 431, 432,
1326 61, 433, 434, 435, 436, 437, 438, 439, 440, 441,
1327 442, 443, 444, 445, 446, 43, 45, 38, 124, 94,
1328 447, 448, 449, 450, 451, 452, 453, 454, 42, 47,
1329 37, 455, 126, 456, 457, 458, 459, 460, 461, 462,
1330 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
1331 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
1332 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
1333 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
1334 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
1335 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
1336 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
1337 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
1338 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
1339 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
1340 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
1341 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
1342 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
1343 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
1344 603, 604, 605, 44, 46, 58, 91, 93, 63
1345};
1346# endif
1347
1348#define YYPACT_NINF -2093
1349
1350#define yypact_value_is_default(Yystate) \
1351 (!!((Yystate) == (-2093)))
1352
1353#define YYTABLE_NINF -1228
1354
1355#define yytable_value_is_error(Yytable_value) \
1356 0
1357
1358 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1359 STATE-NUM. */
1360static const yytype_int16 yypact[] =
1361{
1362 2275, 40, -2093, 159, 19089, 490, -79, 315, 315, 19089,
1363 115, 384, -2093, 19089, 98, 269, 411, 357, -2093, 16029,
1364 19089, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1365 19395, 673, 434, 77, 51, 448, 332, 721, -2093, 1070,
1366 1460, 990, 568, 14499, 13887, 521, -2093, -2093, -2093, -2093,
1367 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1368 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1369 -2093, -2093, -2093, -2093, 767, 572, -2093, -2093, 19089, -2093,
1370 622, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1371 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1372 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1373 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1374 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1375 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1376 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1377 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1378 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1379 -2093, -2093, -2093, -2093, -2093, -2093, 19701, -2093, 473, -2093,
1380 -2093, -2093, 4553, 19089, -2093, 535, 535, -2093, 19089, 1002,
1381 289, -2093, 583, 490, 918, 19089, 507, 708, -2093, -2093,
1382 -2093, -2093, 712, -2093, 538, 583, 3475, 3475, 2275, 2275,
1383 19089, 905, -2093, 622, -2093, -2093, -2093, -2093, -2093, -2093,
1384 583, 583, -2093, 569, -2093, 583, 61, -2093, 429, 631,
1385 -2093, 547, 679, 615, -2093, -2093, -2093, -2093, 656, 696,
1386 609, 1693, 893, 1002, 17253, 19089, 715, 715, 7751, 633,
1387 -2093, 778, 163, 783, 1053, 818, -2093, 826, -2093, -2093,
1388 -134, -2093, -2093, 3475, -2093, 622, -2093, -2093, 935, -2093,
1389 879, 19089, 977, -2093, -2093, 19089, -2093, -2093, 838, 845,
1390 854, 862, 19089, 19089, 793, 793, -2093, 819, -2093, -2093,
1391 872, 924, 19089, 19089, 19089, 19089, 19089, 19089, 19089, 19089,
1392 929, 657, 19089, 715, 715, 715, 715, 19089, 715, 715,
1393 715, 19089, 715, 1159, -2093, -2093, -2093, 944, 19089, 19089,
1394 19089, 874, 1010, 1022, 1028, 937, 939, 125, 884, -2093,
1395 2200, -2093, -2093, 1153, 525, 525, 525, 936, -2093, 19701,
1396 1208, -2093, 19089, 933, -2093, 19089, 1263, 1263, 1263, 1231,
1397 622, 1208, 1234, 1112, 1125, 1130, -2093, -2093, -2093, -2093,
1398 -2093, 1133, 1139, 1295, -2093, -2093, -2093, 1157, 1157, 1157,
1399 1157, 1157, -2093, 1161, -2093, 1164, 1215, 19089, 1170, 1177,
1400 1179, 1186, 1191, 1200, 1222, 1233, 1241, 1254, 1260, 2743,
1401 5285, 10883, 10883, 1266, 1270, 1283, -2093, 10883, 1208, 626,
1402 707, 617, 8095, 1289, 1302, 5285, -2093, -2093, 361, 17559,
1403 1124, -2093, 1722, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1404 19089, -2093, -2093, -2093, 12887, -2093, -2093, -2093, 984, -2093,
1405 1104, -2093, -2093, 1152, -2093, -2093, 1308, 1317, 1326, 1166,
1406 -2093, -2093, -2093, -2093, -2093, -2093, 1208, 1208, -44, 1208,
1407 622, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1408 -2093, -2093, -2093, -2093, -2093, -2093, 430, 1207, -2093, 1199,
1409 -2093, 1210, 1433, 1430, -2093, 1171, -2093, 19089, -2093, -2093,
1410 -2093, -2093, -2093, -2093, -2093, 1193, -2093, 4553, -2093, 19701,
1411 -2093, 19089, 1297, 19089, 19089, 19089, 19089, 19089, 19089, 19089,
1412 19089, 19089, -2093, 1262, 8439, 16029, 1224, 1404, 1405, -2093,
1413 -2093, 905, 1410, 1411, 1159, -2093, -2093, -2093, -2093, -2093,
1414 -2093, -2093, 132, 1693, 132, 1214, 14805, 775, 1429, 1431,
1415 1435, -31, 1002, -2093, 1057, 650, 395, 1437, 19089, 19089,
1416 2743, -2093, -62, -2093, -2093, 15708, -2093, 120, 1373, 19089,
1417 1376, 797, 19089, -2093, 83, 19089, 1053, 1240, 1419, -2093,
1418 5651, -2093, -2093, 1385, -2093, -2093, 690, 793, 793, 793,
1419 793, 1319, 1391, 1379, 20007, 19089, 19089, 793, 19089, 1390,
1420 1394, 1408, 1409, 583, 985, -2093, -2093, 715, 1341, 19089,
1421 19089, 19089, 19089, 1159, 19089, 19089, 19089, 19089, -2093, 19089,
1422 19089, 19089, -2093, 19089, -2093, -2093, -2093, 19089, -3, -2093,
1423 -2093, 45, 1161, 19089, 5285, 19089, 1412, -2093, 713, -2093,
1424 -2093, -2093, 1413, 1414, -2093, -2093, -2093, -2093, -2093, 1545,
1425 -2093, 1416, -2093, -2093, -2093, 1418, 1438, 981, 19089, -2093,
1426 -2093, -2093, 1442, 1444, 1448, 1449, 1450, 5285, -2093, -2093,
1427 1423, 1423, 1423, 46, 1293, 1316, -2093, -2093, 17865, 1245,
1428 -2093, -2093, -2093, 1384, -2093, 5285, 5285, 1587, 1445, -2093,
1429 -2093, -2093, -2093, -2093, 402, -2093, 1741, 1511, -2093, 10883,
1430 10883, 10883, 1387, 1472, 596, 1392, 1631, 10883, 899, 10883,
1431 2743, 1458, 1082, 349, 993, 57, 1722, 1292, 1292, 10883,
1432 10883, 10883, 1383, -2093, 1070, 1464, 1070, 1464, -2093, -2093,
1433 1208, 5285, 12211, -2093, 452, 10883, 10883, 1722, 550, 14193,
1434 19089, -2093, 1277, 5285, -2093, 5285, 3821, 1299, 1299, 1465,
1435 1469, 10883, 10883, 10883, 10883, 3821, 1274, 10883, 10883, 10883,
1436 10883, 10883, 10883, 10883, 10883, 10883, 10883, 10883, 10883, 10883,
1437 10883, 10883, 10883, 10883, 10883, 10883, 10883, 10883, 10883, 10883,
1438 10883, 58, 18171, 1441, 4553, 8783, 6357, 10883, -2093, -2093,
1439 15111, -2093, -2093, 16335, 1361, -2093, 463, -2093, -2093, 1570,
1440 1574, -2093, -2093, -2093, 960, 1070, 1002, -2093, 1482, 1544,
1441 1642, -2093, 19089, 1486, 1486, 1486, 1486, -2093, -2093, 1300,
1442 -2093, -2093, 741, -2093, -2093, 71, -2093, -2093, 44, 1415,
1443 -2093, -2093, 1159, -2093, -2093, -2093, -2093, -20, -2093, -2093,
1444 -2093, 113, -2093, 1297, 19089, -2093, -2093, -2093, -2093, -2093,
1445 -2093, 132, 132, -2093, -2093, -2093, 1399, 1057, 1377, 1386,
1446 -2093, 1226, 1562, 1497, 1218, 1218, -2093, 1053, 2580, 395,
1447 -2093, -2093, -2093, 1417, 904, -2093, 7751, 16641, 7751, 583,
1448 -2093, 1556, 54, 1400, 583, 1345, 1053, -2093, 2743, -2093,
1449 238, -2093, -2093, 1209, 1057, 1503, 2580, -2093, 690, -2093,
1450 -2093, 19089, 19089, 19089, 19089, 1443, 1407, -2093, 1579, 19089,
1451 1421, 1463, 59, 1422, 19089, 1520, 18477, 18477, 18477, 18477,
1452 1369, -2093, -2093, 135, 19089, 19089, 1159, 1159, 1159, 1159,
1453 -2093, 1486, 1486, 1486, 1486, 1159, 1159, 1159, -2093, -2093,
1454 -2093, -2093, 1218, -2093, -2093, -2093, 1517, 2200, 1070, -2093,
1455 1684, 1070, 1070, 1070, -2093, 1020, 1464, 1464, -2093, -2093,
1456 -2093, -2093, -2093, 1438, 1418, 1425, -2093, -2093, -2093, 1070,
1457 1070, 1070, 1070, 1070, 760, 1348, -2093, 1605, 98, 98,
1458 98, -2093, -2093, -2093, 46, 1224, 5285, -2093, 1537, -15,
1459 -2093, 1538, -2093, 19089, 1517, 1380, 1364, -2093, -2093, -2093,
1460 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, 1615, 19089,
1461 15708, 815, 15708, -2093, 9, -2093, 1571, 19089, 1558, 10883,
1462 1372, -2093, -2093, 10883, 19089, -2093, 1589, 815, -2093, 10883,
1463 -2093, 1633, 1142, -2093, -2093, -2093, 1236, 5285, 2919, 13566,
1464 3423, 1564, 1447, 1208, 1568, 1208, 981, 227, 10883, -2093,
1465 681, 10883, -2093, 1424, 3477, 1388, 278, 5285, -2093, 15417,
1466 13581, -2093, 1393, 1141, 20313, 20313, 20313, 151, -13, -2093,
1467 -2093, 19089, 1316, 1124, 1722, -2093, -2093, -2093, 1389, 5285,
1468 -2093, -2093, 5285, 5285, 6701, 6701, -2093, 13227, -2093, -2093,
1469 -2093, -2093, 1161, -2093, 15708, 1724, 1724, 1724, 1724, 1724,
1470 1724, 1724, 1724, 1724, 1724, 1292, 1292, 1292, 1383, 790,
1471 790, 790, 790, 1609, 1609, 1609, 1609, 1609, -2093, 1632,
1472 19089, -2093, -2093, -2093, -2093, 284, 10883, 1577, 10883, 15708,
1473 1578, 217, 1401, 1572, 1581, 1586, -2093, 230, -2093, -2093,
1474 -2093, 19089, 1330, 1671, -2093, -2093, -2093, -2093, 402, -2093,
1475 14193, 1486, 2251, -2093, -2093, -2093, -2093, 19089, -2093, -2093,
1476 -2093, 10883, 1451, -2093, 1451, -2093, -2093, -2093, 1495, 132,
1477 1652, 1502, 1652, -2093, -11, -11, 1208, 1505, 19089, 19089,
1478 -2093, -2093, -2093, 1218, -10, 1053, 1053, -2093, -2093, -2093,
1479 1484, 544, 1154, 255, 1483, 1162, -2093, 285, 1663, 16029,
1480 -2093, 1665, 1452, 1121, 54, 1666, -2093, -2093, -2093, 6701,
1481 1518, 1218, -2093, -2093, 1611, 1611, 1611, 1611, 19089, 136,
1482 -2093, -2093, -2093, 1766, 1512, 19089, 1551, 16947, 1691, -2093,
1483 1455, 19089, 1611, 18477, -2093, 1622, 1439, 2580, 1623, 1624,
1484 1626, 163, -2093, 1466, -2093, -2093, 1530, 1486, 1159, -2093,
1485 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1486 -2093, 1629, -2093, -2093, 1630, 297, 1637, 1475, -2093, 304,
1487 -2093, -2093, -2093, -2093, 1519, 1075, 1638, 1476, 1641, 1651,
1488 1664, 1667, -2093, -2093, 1607, 5285, 1669, -2093, -2093, -2093,
1489 -2093, -2093, -2093, 1517, 1161, 17865, 1316, 4919, -2093, 2580,
1490 2580, 10883, -2093, 393, 1670, 10883, 1672, 1674, -2093, 1477,
1491 9127, 15708, 418, -2093, 1473, -2093, 716, -2093, 1485, 1738,
1492 1571, 1675, 1689, 1571, 1446, 1678, 1680, 1722, 10883, 10883,
1493 10883, 10883, -2093, 1546, -2093, -2093, -2093, -2093, 10883, 11531,
1494 -2093, 1528, 15708, -2093, 10883, 10883, -2093, 10883, 1722, 20313,
1495 20313, 13581, 1682, 1683, 1685, 1168, 14193, -2093, -2093, -2093,
1496 1048, 1784, -2093, 14193, 1785, 1789, 19089, -2093, 1690, -2093,
1497 -2093, -2093, 16029, 19089, -2093, -2093, 1507, 1531, 1758, 1389,
1498 1636, 1702, 327, 328, 1208, -2093, -2093, 1696, 1523, -2093,
1499 -2093, 1700, -2093, 1701, -2093, 15723, 10883, 19089, -2093, -2093,
1500 -2093, -2093, 885, -2093, -2093, 1703, 1516, 1529, -2093, 1070,
1501 -2093, -2093, 1618, -2093, 136, -2093, 1627, -2093, -2093, -2093,
1502 1862, 1208, -2093, -2093, 1053, -2093, 1053, -2093, -2093, 19089,
1503 19089, 19089, -2093, -2093, 19089, 19089, 19089, 1804, 1368, 19089,
1504 19089, -2093, 19089, 19089, 18783, -2093, 619, -2093, 1559, -2093,
1505 1208, -2093, -2093, 1665, 96, -2093, 1208, 1053, -2093, 1548,
1506 1639, -2093, -2093, -2093, -2093, -2093, 1640, 19089, 744, -2093,
1507 -2093, 16029, 19089, 19089, 333, -2093, -2093, -2093, -2093, -2093,
1508 807, -2093, 2544, 280, 19089, -2093, 163, 1737, 1644, 1740,
1509 11201, 19089, -2093, 1677, 1673, 1679, 1749, 19089, 19089, -2093,
1510 -2093, -2093, -2093, -2093, 1070, -2093, 1070, -2093, 1070, 1438,
1511 -2093, -2093, -2093, 1070, -2093, -2093, -2093, -2093, 1227, -2093,
1512 -2093, 19089, -2093, -2093, -2093, -2093, -2093, 1517, 1748, 1750,
1513 13877, -2093, -2093, -2093, -2093, -2093, -2093, 7045, 1571, 1656,
1514 10883, 15708, 335, -2093, 1591, -2093, -2093, 928, 10883, 1571,
1515 19089, -2093, 1780, 1800, 1770, 10883, 1571, 788, 10883, -2093,
1516 1738, -2093, 1657, 1772, -2093, 1773, 6701, 6701, 3598, 3376,
1517 14183, 11194, -2093, -2093, 10883, -2093, 14489, -2093, -2093, -2093,
1518 -2093, -2093, -2093, -2093, 1141, 1872, 14193, 595, 14193, -2093,
1519 -2093, 1778, 19089, 234, -2093, 19089, 1779, 1849, 1846, 5285,
1520 5285, -2093, -2093, -2093, -2093, 1852, 1855, -2093, -2093, 1786,
1521 1790, -2093, 5285, -2093, 2580, 19089, -2093, -2093, -2093, -2093,
1522 1620, 1686, -2093, -2093, -2093, 1159, 1159, 1159, -2093, 1681,
1523 -2093, -2093, -2093, -2093, 1634, 591, 1634, -2093, 1208, 1400,
1524 1606, -2093, -2093, 1208, 1610, -2093, 1799, 1799, 1732, -2093,
1525 1874, -2093, 1208, 19089, -2093, 1628, -2093, 1499, 1016, -2093,
1526 744, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1527 -2093, 16947, 1709, 1711, 583, -2093, -2093, -2093, -2093, 860,
1528 1710, 1208, 1812, 19089, 1909, -2093, 1751, 490, 115, 384,
1529 1747, 16029, 4187, 9471, 5285, 1676, -2093, -2093, -2093, -2093,
1530 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1531 -2093, -2093, 1668, -2093, -2093, -2093, -2093, 1643, 2580, 2425,
1532 1987, 2425, 1765, -2093, 1646, 1648, 1822, -2093, 1823, 1824,
1533 -2093, 1825, -2093, -2093, 389, -2093, 1647, -2093, -2093, -2093,
1534 1828, 15708, 1653, -2093, 472, -2093, 1654, 1830, -2093, -2093,
1535 -2093, 9127, 19089, 1735, 1739, 1743, 1745, -2093, -2093, 1838,
1536 -2093, -2093, -2093, -2093, -2093, 892, 1844, -2093, -2093, 364,
1537 1659, -2093, -2093, -2093, 711, -2093, 1858, -2093, -2093, 391,
1538 392, 10883, -2093, -2093, 10883, -2093, 10883, -2093, -2093, 14193,
1539 -2093, 583, 5285, -2093, 595, 19089, 428, -2093, 19089, 5285,
1540 5285, -2093, 1831, 1831, 5285, 1916, 60, -2093, -2093, 309,
1541 -2093, -2093, 1761, 1746, -2093, -2093, -2093, 19089, 1687, -2093,
1542 1771, 660, -2093, 431, 1944, 1208, -2093, 1208, 19089, 54,
1543 1400, 1208, -176, 1859, -2093, 19089, -2093, -2093, 1860, 583,
1544 583, -2093, 1904, -2093, 10883, -2093, 860, -2093, -2093, -2093,
1545 -2093, 914, 1877, -2093, 107, -2093, 433, 209, 1791, 4553,
1546 19089, -2093, 1879, -2093, 1880, -2093, -2093, 1517, 5285, -2093,
1547 812, 12551, 337, -2093, 12561, 5285, -2093, -2093, 1881, 11541,
1548 -2093, 1109, 801, 1762, 1122, 1945, -2093, -2093, -2093, -2093,
1549 -2093, 19089, 19089, 10883, 10883, 10883, -2093, 9815, -2093, -2093,
1550 -2093, -2093, 1946, 440, 1948, 1950, -2093, -2093, 19089, -2093,
1551 -2093, 10883, 1792, 1793, 1889, 616, -2093, -2093, 14795, 15108,
1552 15407, -2093, -2093, 1517, -2093, 454, -2093, 1892, 1707, 1517,
1553 1517, 1707, 5285, -2093, -2093, -2093, -2093, 5995, 588, -2093,
1554 1753, 1208, 19089, -2093, 747, -2093, 743, -2093, 1957, 10883,
1555 -2093, 1841, -2093, -2093, 1712, 458, -2093, 1208, 1665, 54,
1556 1794, -2093, -2093, 78, 56, -2093, -2093, 1796, -2093, 1734,
1557 -2093, 1697, -2093, -2093, 1964, 1906, 1806, 19089, -2093, -2093,
1558 -2093, 697, 1908, -2093, -2093, 1995, 1996, -2093, 19089, 1815,
1559 -2093, 1725, 10883, 402, 346, -2093, -2093, 1764, 10883, -2093,
1560 852, -2093, 12561, 1954, 318, 19089, 1850, 2089, -2093, -2093,
1561 -2093, -2093, 1854, 2090, -2093, -138, 442, 1122, -2093, 1752,
1562 -2093, 1782, -2093, 1742, 15708, 459, -2093, 1763, -2093, -2093,
1563 1754, -2093, -2093, 1951, -2093, -2093, -2093, 1738, -2093, 1955,
1564 1958, -2093, 1943, 19089, 2102, 642, -2093, -2093, -2093, -2093,
1565 -2093, -2093, -2093, 5285, 1348, 7389, 1768, 1755, 1759, 1769,
1566 -2093, -2093, 1923, 2048, -2093, -2093, -2093, 10159, 2005, 1949,
1567 -2093, -2093, -2093, -2093, -2093, -2093, 1208, -2093, 19089, -2093,
1568 2062, 1665, 19089, 1952, 1953, -2093, 1208, 1864, 19089, 2000,
1569 -2093, 5285, -2093, 583, 468, -2093, -2093, -2093, -2093, -2093,
1570 19089, 485, 15708, 1959, -2093, 11881, 1810, 11871, -2093, 1805,
1571 3194, 1999, 1808, -2093, 487, 2580, 19089, 1109, 19089, 1109,
1572 1559, -2093, 1559, 1559, 1559, -2093, 1126, 1962, 12901, -2093,
1573 10883, 19089, -2093, 10883, -2093, -2093, -2093, -2093, 1978, -2093,
1574 -2093, -2093, 1978, -2093, 1982, 19089, 2102, -2093, -2093, -2093,
1575 1986, 1517, 1120, 1127, -2093, 1956, -2093, -2093, -2093, -2093,
1576 82, -2093, 5285, 1826, 1923, 2018, 1856, 1857, 1853, 10883,
1577 -2093, -2093, -2093, 2087, 2062, -2093, 10883, 19089, 1057, 1208,
1578 583, 1975, 796, 2034, -2093, 697, -2093, -2093, 10883, -2093,
1579 11881, 2019, -2093, -2093, 1837, -2093, 5285, 1827, 1829, -2093,
1580 12221, -2093, 19089, -2093, -2093, -2093, -2093, -2093, 19089, 19089,
1581 19089, 19089, -2093, -2093, -2093, 5285, 1832, -2093, -2093, -2093,
1582 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1583 -2093, 2102, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1584 -2093, -2093, -2093, 7389, 1803, -2093, 1816, -2093, 1517, 1420,
1585 1843, -2093, 10521, -2093, -2093, 497, 523, 2093, 1944, 2087,
1586 1988, 1990, 1991, 1896, -2093, 2034, 690, -2093, -2093, 682,
1587 1894, -2093, 15708, -2093, 11881, -2093, 11881, 467, 1847, -2093,
1588 1839, 2580, -2093, -2093, -2093, -2093, 827, -2093, -2093, -2093,
1589 -2093, -2093, -2093, -2093, 1887, -2093, 2103, 2050, 1998, 898,
1590 1998, 10883, -2093, -2093, 1944, -2093, -2093, 1208, 1894, 896,
1591 -2093, -2093, -2093, -2093, 1432, 1900, 1902, -2093, -2093, -2093,
1592 19089, -2093, -2093, 13241, 17865, 583, -2093, -2093, 2064, -2093,
1593 -2093, -2093, 1848, -2093, -2093, -2093, 377, 377, 2114, -2093,
1594 2120, -2093, 3194, -2093, -2093, -2093, 2046, 1833, 463, 1897,
1595 2015, -2093, -2093, -2093, 2149, 11, -2093, -2093, -2093, -2093,
1596 -2093, -2093, 1053, -2093, -2093, -2093, 524, -2093, -2093, 1053,
1597 -2093
1598};
1599
1600 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1601 Performed when YYTABLE does not specify something else to do. Zero
1602 means the default is an error. */
1603static const yytype_uint16 yydefact[] =
1604{
1605 0, 0, 17, 0, 0, 568, 0, 486, 486, 0,
1606 0, 0, 15, 0, 0, 0, 22, 0, 31, 0,
1607 0, 7, 5, 9, 11, 19, 18, 21, 20, 29,
1608 0, 0, 90, 30, 0, 0, 517, 0, 3, 0,
1609 23, 0, 0, 0, 0, 0, 38, 39, 32, 33,
1610 34, 37, 35, 154, 153, 150, 151, 152, 41, 155,
1611 36, 458, 457, 465, 464, 459, 460, 462, 463, 461,
1612 594, 618, 605, 606, 661, 0, 42, 16, 0, 997,
1613 1103, 999, 1001, 1002, 1003, 1004, 1018, 1055, 1073, 1021,
1614 1031, 1044, 1067, 1023, 1020, 1025, 1049, 1041, 1068, 1070,
1615 1045, 1029, 1019, 1046, 1050, 1052, 1010, 1030, 1034, 1093,
1616 1095, 1090, 1089, 1091, 1080, 1085, 1083, 1084, 1082, 1088,
1617 1092, 1087, 1086, 1081, 1094, 1015, 1038, 1000, 1071, 1072,
1618 1008, 1037, 1054, 1043, 1048, 1075, 1053, 1017, 1032, 1051,
1619 1042, 1059, 1040, 1074, 1060, 1022, 1013, 1014, 1012, 1057,
1620 1064, 1047, 1056, 1058, 1061, 1065, 1033, 1026, 1009, 1011,
1621 1027, 1028, 1016, 1035, 1039, 1062, 1077, 1078, 1076, 1079,
1622 1036, 1066, 1063, 1007, 1024, 1069, 839, 1006, 911, 1005,
1623 569, 570, 0, 0, 485, 489, 489, 467, 0, 473,
1624 0, 597, 309, 568, 0, 0, 0, 0, 817, 815,
1625 816, 359, 0, 812, 814, 309, 0, 0, 0, 0,
1626 1026, 535, 989, 1103, 991, 992, 993, 994, 995, 109,
1627 309, 309, 108, 104, 110, 309, 0, 114, 0, 0,
1628 94, 96, 0, 105, 106, 80, 996, 988, 0, 0,
1629 0, 0, 0, 473, 0, 0, 25, 25, 0, 616,
1630 1098, 0, 0, 0, 0, 0, 303, 0, 306, 305,
1631 0, 939, 1, 0, 1099, 1103, 1101, 1102, 0, 1113,
1632 0, 0, 0, 183, 184, 0, 225, 224, 0, 0,
1633 0, 0, 0, 0, 27, 27, 182, 0, 148, 149,
1634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1635 0, 0, 0, 25, 25, 25, 25, 0, 25, 25,
1636 25, 0, 25, 454, 890, 892, 891, 1067, 0, 1064,
1637 1065, 1027, 0, 0, 0, 1071, 1072, 27, 45, 46,
1638 0, 299, 2, 0, 619, 619, 619, 663, 13, 839,
1639 0, 998, 1007, 0, 841, 0, 1109, 1105, 1107, 997,
1640 1103, 999, 1001, 1002, 1003, 1004, 896, 895, 894, 897,
1641 898, 0, 0, 0, 985, 908, 909, 824, 824, 824,
1642 824, 824, 762, 0, 562, 0, 0, 0, 0, 0,
1643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644 0, 0, 0, 0, 0, 0, 835, 0, 1011, 1027,
1645 1028, 1016, 0, 0, 0, 0, 776, 775, 632, 839,
1646 658, 694, 660, 684, 685, 686, 687, 688, 689, 690,
1647 0, 691, 759, 758, 692, 730, 774, 763, 0, 765,
1648 767, 769, 770, 625, 833, 760, 0, 0, 0, 766,
1649 761, 842, 902, 764, 772, 771, 0, 0, 914, 0,
1650 1103, 904, 1111, 893, 773, 1134, 1135, 1136, 1137, 1138,
1651 1139, 1140, 1141, 1142, 1143, 855, 553, 0, 466, 490,
1652 468, 0, 0, 0, 470, 474, 475, 0, 601, 603,
1653 604, 602, 595, 600, 599, 0, 310, 0, 617, 839,
1654 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1655 0, 0, 1129, 0, 0, 0, 669, 0, 0, 10,
1656 12, 535, 0, 0, 454, 990, 111, 112, 103, 113,
1657 98, 99, 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, 473, 472, 188, 0, 0, 0, 0, 0,
1659 0, 565, 0, 564, 558, 563, 767, 914, 0, 0,
1660 0, 661, 0, 519, 0, 0, 0, 518, 0, 1100,
1661 0, 229, 228, 0, 227, 226, 160, 27, 27, 27,
1662 27, 0, 74, 0, 0, 0, 0, 27, 0, 0,
1663 0, 0, 0, 309, 0, 446, 157, 25, 0, 0,
1664 0, 0, 0, 454, 0, 0, 0, 0, 445, 0,
1665 0, 0, 447, 0, 456, 455, 437, 0, 0, 54,
1666 52, 0, 0, 0, 0, 0, 965, 979, 941, 980,
1667 982, 983, 954, 957, 949, 950, 952, 953, 951, 960,
1668 962, 972, 976, 975, 865, 862, 864, 0, 0, 963,
1669 964, 47, 967, 942, 943, 947, 970, 0, 620, 621,
1670 622, 622, 622, 0, 666, 577, 1104, 840, 0, 912,
1671 1110, 1106, 1108, 998, 905, 0, 0, 0, 0, 819,
1672 821, 820, 823, 822, 0, 721, 0, 0, 809, 0,
1673 0, 0, 0, 1177, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 660, 0, 693, 755, 756, 0,
1675 0, 0, 750, 899, 0, 860, 0, 860, 856, 857,
1676 0, 0, 0, 932, 934, 0, 0, 722, 0, 0,
1677 0, 607, 630, 0, 838, 0, 0, 699, 699, 0,
1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1681 0, 0, 0, 0, 0, 0, 0, 0, 906, 903,
1682 0, 907, 1112, 0, 0, 555, 553, 551, 487, 0,
1683 0, 469, 478, 477, 0, 0, 0, 596, 0, 632,
1684 0, 1128, 0, 449, 449, 449, 449, 1122, 1123, 0,
1685 1124, 1127, 0, 810, 924, 0, 813, 814, 0, 43,
1686 8, 6, 454, 537, 536, 539, 117, 84, 115, 118,
1687 81, 82, 97, 1015, 1026, 95, 102, 101, 107, 91,
1688 93, 0, 0, 471, 190, 189, 0, 188, 0, 0,
1689 130, 0, 0, 169, 858, 858, 179, 0, 0, 158,
1690 163, 172, 26, 0, 0, 556, 0, 0, 0, 309,
1691 304, 0, 511, 492, 309, 0, 0, 4, 0, 1114,
1692 0, 566, 560, 567, 188, 0, 0, 156, 159, 161,
1693 167, 0, 0, 0, 0, 0, 0, 186, 0, 1008,
1694 63, 59, 309, 0, 0, 0, 394, 394, 394, 394,
1695 0, 398, 399, 0, 0, 0, 454, 454, 454, 454,
1696 444, 449, 449, 449, 449, 454, 454, 454, 448, 51,
1697 311, 55, 858, 56, 50, 53, 49, 0, 0, 981,
1698 0, 0, 0, 0, 961, 0, 860, 860, 868, 869,
1699 870, 871, 872, 864, 862, 0, 888, 889, 300, 0,
1700 0, 0, 0, 0, 678, 662, 675, 623, 0, 0,
1701 0, 665, 664, 938, 0, 669, 0, 534, 0, 632,
1702 571, 0, 987, 0, 919, 0, 0, 986, 825, 876,
1703 877, 878, 880, 881, 879, 874, 873, 875, 0, 0,
1704 0, 730, 1133, 1131, 1214, 1130, 1214, 0, 0, 0,
1705 0, 1212, 1213, 0, 0, 1194, 1195, 730, 1211, 0,
1706 1210, 661, 0, 729, 728, 757, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 929,
1708 934, 0, 933, 0, 0, 0, 0, 0, 724, 0,
1709 0, 642, 633, 634, 641, 647, 647, 911, 632, 610,
1710 612, 0, 577, 657, 659, 720, 718, 719, 696, 0,
1711 700, 701, 0, 0, 0, 0, 702, 706, 704, 703,
1712 705, 695, 0, 725, 746, 731, 732, 737, 747, 736,
1713 751, 752, 753, 754, 831, 733, 734, 735, 748, 738,
1714 743, 741, 739, 740, 742, 744, 745, 749, 709, 0,
1715 783, 778, 837, 834, 779, 0, 0, 0, 1012, 936,
1716 0, 914, 0, 1002, 1003, 1004, 836, 915, 554, 552,
1717 488, 0, 0, 0, 484, 479, 480, 476, 0, 598,
1718 0, 449, 0, 429, 426, 430, 428, 0, 1121, 1120,
1719 811, 0, 673, 672, 673, 44, 40, 538, 0, 0,
1720 86, 0, 86, 100, 86, 86, 0, 0, 0, 0,
1721 177, 175, 180, 858, 858, 0, 0, 178, 168, 164,
1722 0, 147, 147, 0, 147, 147, 559, 0, 0, 0,
1723 516, 522, 0, 0, 511, 0, 520, 521, 1115, 0,
1724 0, 858, 165, 162, 309, 309, 309, 309, 0, 0,
1725 28, 60, 62, 0, 1116, 0, 0, 269, 191, 235,
1726 0, 0, 309, 394, 393, 0, 392, 0, 0, 0,
1727 0, 0, 401, 403, 400, 402, 0, 449, 454, 441,
1728 438, 442, 440, 434, 431, 435, 433, 58, 436, 443,
1729 48, 0, 937, 984, 0, 0, 0, 937, 977, 0,
1730 978, 866, 867, 886, 885, 0, 0, 937, 0, 0,
1731 0, 0, 679, 680, 681, 0, 0, 613, 614, 615,
1732 668, 667, 609, 578, 0, 0, 577, 0, 913, 0,
1733 0, 0, 768, 0, 0, 0, 0, 0, 1156, 1148,
1734 0, 1182, 1169, 1179, 1183, 1178, 730, 1190, 1191, 0,
1735 1214, 0, 1231, 1214, 728, 0, 0, 715, 0, 0,
1736 0, 0, 861, 0, 900, 863, 901, 910, 0, 0,
1737 930, 0, 935, 923, 0, 0, 921, 0, 723, 0,
1738 647, 0, 642, 0, 0, 584, 0, 589, 590, 591,
1739 584, 0, 585, 0, 0, 587, 1007, 639, 646, 648,
1740 637, 636, 0, 0, 608, 628, 631, 0, 649, 717,
1741 0, 0, 0, 0, 0, 716, 708, 0, 785, 784,
1742 780, 0, 849, 0, 853, 0, 0, 0, 491, 481,
1743 482, 483, 584, 427, 451, 0, 452, 1125, 925, 0,
1744 671, 670, 0, 116, 0, 79, 0, 78, 88, 89,
1745 0, 0, 131, 135, 0, 171, 0, 176, 174, 0,
1746 0, 0, 146, 122, 0, 0, 0, 0, 0, 0,
1747 0, 121, 0, 0, 269, 557, 0, 497, 413, 500,
1748 0, 493, 494, 522, 0, 561, 0, 0, 195, 205,
1749 0, 197, 312, 76, 77, 75, 0, 0, 65, 1117,
1750 61, 0, 0, 0, 0, 244, 240, 242, 245, 243,
1751 0, 246, 0, 987, 0, 193, 0, 0, 230, 0,
1752 384, 0, 396, 0, 0, 0, 307, 0, 0, 432,
1753 439, 966, 944, 955, 0, 958, 0, 973, 0, 864,
1754 883, 887, 968, 0, 945, 946, 948, 971, 0, 677,
1755 676, 0, 576, 572, 540, 573, 574, 575, 0, 0,
1756 0, 1216, 1215, 1144, 1132, 1145, 1146, 0, 1214, 1020,
1757 0, 1223, 0, 1218, 0, 1220, 1221, 0, 0, 1214,
1758 0, 1181, 0, 0, 0, 0, 1214, 0, 0, 1197,
1759 1204, 1208, 0, 0, 1232, 0, 0, 0, 0, 0,
1760 0, 0, 859, 931, 0, 922, 0, 926, 927, 640,
1761 638, 579, 727, 726, 635, 0, 0, 584, 0, 588,
1762 586, 644, 0, 912, 611, 0, 0, 0, 655, 0,
1763 0, 710, 711, 707, 777, 0, 787, 852, 851, 0,
1764 0, 916, 0, 450, 0, 0, 674, 85, 87, 83,
1765 0, 134, 173, 170, 133, 454, 454, 454, 127, 0,
1766 124, 125, 123, 129, 219, 0, 219, 119, 0, 492,
1767 530, 532, 414, 0, 512, 499, 505, 505, 0, 166,
1768 0, 196, 0, 0, 1096, 1119, 1118, 23, 0, 57,
1769 66, 67, 69, 70, 73, 71, 72, 194, 301, 270,
1770 234, 269, 0, 0, 0, 268, 247, 248, 250, 251,
1771 0, 0, 237, 0, 0, 199, 0, 568, 1023, 1025,
1772 0, 0, 0, 0, 0, 328, 340, 341, 334, 335,
1773 336, 339, 337, 323, 325, 342, 353, 352, 357, 356,
1774 355, 354, 0, 338, 333, 332, 343, 0, 0, 0,
1775 0, 0, 0, 302, 404, 405, 0, 940, 0, 0,
1776 884, 0, 683, 682, 0, 653, 914, 917, 918, 818,
1777 0, 1168, 1153, 1155, 1169, 1166, 1149, 0, 1226, 1225,
1778 1217, 0, 0, 0, 0, 0, 0, 1170, 1180, 0,
1779 1185, 1184, 1187, 1188, 1186, 730, 0, 1230, 1229, 730,
1780 1196, 1198, 1200, 1201, 0, 1205, 0, 1209, 1256, 0,
1781 0, 0, 828, 829, 0, 830, 0, 928, 920, 0,
1782 580, 0, 0, 581, 584, 0, 0, 629, 783, 0,
1783 0, 626, 697, 698, 0, 0, 789, 850, 854, 0,
1784 453, 1126, 0, 0, 144, 145, 143, 0, 0, 126,
1785 0, 0, 120, 0, 528, 0, 523, 0, 0, 511,
1786 492, 0, 0, 221, 64, 0, 68, 241, 987, 0,
1787 0, 295, 0, 265, 0, 249, 252, 253, 258, 259,
1788 260, 0, 0, 192, 0, 236, 0, 0, 0, 0,
1789 0, 358, 0, 361, 1026, 366, 365, 367, 0, 375,
1790 377, 0, 0, 328, 384, 0, 385, 395, 0, 384,
1791 391, 0, 0, 0, 0, 418, 956, 959, 974, 969,
1792 624, 0, 0, 0, 0, 0, 1165, 0, 1147, 1219,
1793 1222, 1224, 0, 0, 0, 0, 1176, 1189, 0, 1202,
1794 1228, 0, 0, 0, 0, 0, 712, 713, 0, 0,
1795 0, 583, 593, 592, 582, 0, 645, 0, 650, 651,
1796 656, 786, 0, 791, 792, 793, 782, 0, 0, 548,
1797 550, 0, 0, 128, 0, 140, 0, 138, 0, 0,
1798 531, 0, 498, 533, 513, 0, 507, 509, 522, 511,
1799 0, 201, 200, 0, 188, 198, 1097, 0, 296, 0,
1800 261, 758, 254, 290, 0, 0, 0, 0, 291, 263,
1801 294, 269, 0, 239, 181, 0, 0, 233, 0, 0,
1802 322, 0, 362, 0, 0, 328, 376, 0, 0, 372,
1803 377, 328, 384, 0, 0, 0, 0, 1017, 317, 314,
1804 324, 315, 0, 0, 308, 415, 415, 406, 407, 0,
1805 397, 422, 654, 915, 1163, 0, 1158, 1161, 1154, 1167,
1806 1150, 1152, 1171, 0, 1174, 1173, 1172, 1227, 1199, 0,
1807 0, 1193, 0, 0, 0, 1245, 1234, 1235, 826, 827,
1808 832, 643, 627, 0, 788, 0, 0, 0, 0, 804,
1809 794, 795, 541, 0, 549, 132, 136, 0, 0, 0,
1810 220, 142, 141, 139, 137, 529, 0, 506, 0, 510,
1811 524, 522, 0, 0, 0, 206, 0, 0, 0, 0,
1812 289, 0, 292, 309, 0, 256, 238, 231, 232, 319,
1813 0, 0, 363, 0, 328, 378, 0, 0, 373, 0,
1814 380, 0, 329, 328, 0, 0, 0, 0, 0, 0,
1815 413, 416, 413, 413, 413, 408, 0, 0, 384, 1157,
1816 0, 0, 1160, 0, 1175, 1203, 1206, 1207, 1240, 1244,
1817 1243, 1239, 1240, 1238, 0, 0, 0, 1233, 1246, 1247,
1818 1249, 652, 0, 0, 799, 0, 800, 798, 796, 797,
1819 0, 790, 0, 0, 541, 0, 0, 758, 0, 0,
1820 514, 508, 525, 526, 524, 187, 0, 0, 188, 0,
1821 309, 266, 0, 287, 255, 269, 313, 360, 0, 368,
1822 374, 0, 370, 328, 0, 328, 0, 0, 329, 326,
1823 384, 390, 0, 388, 316, 318, 320, 321, 0, 0,
1824 0, 0, 420, 421, 419, 0, 0, 348, 349, 346,
1825 347, 424, 350, 417, 345, 344, 351, 1159, 1164, 1162,
1826 1151, 0, 1237, 1236, 1252, 1255, 1251, 1254, 1253, 1248,
1827 1250, 802, 803, 0, 0, 806, 0, 807, 542, 0,
1828 0, 209, 0, 218, 212, 0, 758, 0, 528, 526,
1829 0, 758, 0, 0, 223, 287, 0, 264, 298, 283,
1830 278, 257, 364, 329, 371, 369, 381, 0, 0, 327,
1831 0, 0, 412, 410, 411, 409, 0, 330, 1242, 1241,
1832 801, 808, 805, 544, 0, 546, 0, 0, 214, 758,
1833 214, 0, 527, 496, 528, 204, 203, 0, 278, 0,
1834 285, 286, 284, 288, 0, 279, 280, 293, 328, 379,
1835 386, 389, 423, 384, 0, 309, 547, 211, 0, 217,
1836 216, 213, 501, 222, 297, 267, 0, 0, 0, 282,
1837 0, 281, 380, 383, 387, 425, 0, 543, 553, 0,
1838 0, 495, 272, 273, 0, 0, 277, 276, 382, 331,
1839 545, 215, 0, 271, 274, 275, 0, 503, 502, 0,
1840 504
1841};
1842
1843 /* YYPGOTO[NTERM-NUM]. */
1844static const yytype_int16 yypgoto[] =
1845{
1846 -2093, 1314, -2093, -2093, -2093, -2093, -2093, -2093, 15, -1340,
1847 -2093, -185, -201, -1336, -2093, -2093, 698, -2093, 14, -2093,
1848 18, 260, -2093, 989, -2093, -2093, -2093, 557, -2093, 804,
1849 2, 1960, -2093, -2093, -17, 6, -2093, -2093, 1963, -2093,
1850 1688, -2093, -2093, -2093, 1692, -436, 1050, 50, -2093, -2093,
1851 -2093, -28, 55, -2093, -2093, -46, -2093, -866, 1353, -461,
1852 -2093, -2093, -2093, -820, -2093, 2160, -2093, -2093, -2093, -2093,
1853 -76, -2093, -2093, -2093, -74, -2093, 598, -2093, -2093, -2093,
1854 28, -2093, -2093, -2093, 787, 561, -2093, -2093, -2093, -2093,
1855 -2093, -2093, -1757, -2093, 286, -2093, -2093, -2093, -2093, -1144,
1856 -101, -78, -75, -71, -2093, -23, -2093, -2093, -2093, -36,
1857 -2093, -2093, -239, -459, -2093, -172, -42, -2093, -1565, -991,
1858 -2093, 365, -1742, -2093, -1429, -77, -1979, -2093, 354, -2093,
1859 -2093, -2093, -2093, -2093, -2093, 245, -2093, 394, -2093, 261,
1860 -2093, -80, -2093, -2093, -2093, -2093, 542, -804, -2093, -2093,
1861 -2093, -2093, -2093, -2093, 248, -709, 250, -2093, -2093, -2093,
1862 -2093, -2093, 1723, -2093, 102, -724, 654, -457, 22, 36,
1863 -2093, -154, -2093, 1467, -2093, 2243, 2077, -2093, -1484, -2093,
1864 -2093, -2093, 637, -2093, 207, -1156, -2093, -2093, -1395, 112,
1865 29, -2092, 833, 651, 2080, 1760, -2093, 2082, 129, -2093,
1866 -2093, 372, -2093, 2104, 2105, -772, -2093, 1440, -988, -2093,
1867 -218, 1454, 1088, -182, -2, -2093, 1018, -915, -944, 957,
1868 -2093, -2093, 527, 43, -2093, 1834, -2093, -2093, 10, 122,
1869 -2093, 950, 466, 1189, 876, -464, 1256, 737, -2093, -2093,
1870 1350, -2093, -694, -954, -948, -2093, 536, -2093, -2093, -136,
1871 1600, 1315, -2093, -2093, 1362, 1184, 419, 1065, -2093, -2093,
1872 -2093, -298, -2093, -2093, 1604, -2093, 699, -2093, -2093, -2093,
1873 -2093, 1598, -2093, -2093, 1601, -2093, 1550, -346, -1779, 1635,
1874 -623, -525, -2093, -2093, 562, -2093, -2093, -2093, -2093, -2093,
1875 -2093, 424, 123, -2093, -2093, -2093, -2093, 65, -2093, -468,
1876 -2093, 906, -2093, -2093, 1583, 241, -2093, -2093, -2093, -2093,
1877 -2093, -765, -573, -554, -607, -2093, -642, -2093, -2093, -2093,
1878 -2093, -2093, 1322, -2093, 2306, -2093, 1744, 769, -1433, -2093,
1879 1694, -2093, 1588, -2093, 1324, -2093, 1649, -2093, 1331, -725,
1880 347, 1515, -251, -2093, -299, -2093, -309, -2093, -2093, -264,
1881 -1188, 13, -2093, -2093, -2093, -4, -2093, -1456, -601, -7,
1882 8, -66, -2093, -2093, 1092, -316, -2093, -2093, -2093, -2093,
1883 -2093, -2093, -2093, -630, -2093, -2093, -2093, -2093, -2093, -2093,
1884 -2093, -2093, -2093, 475, -2093, 254, -2093, -2093, -2093, -1764,
1885 -2093, 495, 647, -2093, -2093, -2093, -2093, 868, -2093, -2093,
1886 -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093, -2093,
1887 -2093, 506, -2093, -2093, -2093, -2093, -2093, -2093, -2093, 1715,
1888 -929, 881, -2093, 668, -2093, 886, -2093, -2093, 387, -1195,
1889 -2093, -2093, -2093, -2093, -2093, -1352, 283, -2093, -2093, -2093,
1890 -2093, -2093, -2093, 277, -2093, -2093, -2093, -2093
1891};
1892
1893 /* YYDEFGOTO[NTERM-NUM]. */
1894static const yytype_int16 yydefgoto[] =
1895{
1896 -1, 37, 263, 207, 206, 208, 209, 38, 39, 40,
1897 41, 538, 575, 42, 43, 44, 45, 1146, 1676, 328,
1898 1677, 1678, 890, 1201, 1204, 1639, 1640, 1641, 887, 1445,
1899 1679, 228, 1152, 1150, 1395, 1680, 240, 241, 229, 230,
1900 231, 825, 232, 233, 234, 817, 818, 1681, 840, 1421,
1901 1413, 1414, 1682, 53, 877, 878, 849, 879, 850, 880,
1902 54, 287, 288, 836, 1465, 289, 1943, 2240, 2065, 1631,
1903 2234, 2146, 2278, 2235, 2309, 2050, 1799, 1945, 290, 1665,
1904 1208, 1209, 1835, 1454, 1455, 1456, 1658, 1457, 1825, 1826,
1905 1458, 2074, 1827, 1828, 1950, 1829, 1830, 2247, 1459, 1831,
1906 2336, 2295, 2296, 2297, 2293, 2250, 1959, 1655, 1960, 608,
1907 1461, 55, 255, 256, 1703, 1210, 486, 56, 1970, 1990,
1908 57, 1683, 1854, 2303, 2171, 2201, 1685, 1686, 1687, 1841,
1909 1842, 2081, 1688, 1846, 1689, 1979, 1980, 1849, 1850, 1977,
1910 1690, 2177, 1691, 1692, 2323, 2094, 1859, 1215, 1216, 59,
1911 903, 1226, 1865, 1997, 1998, 1623, 2102, 2000, 2001, 2194,
1912 2108, 2203, 502, 313, 1693, 1133, 1385, 606, 1694, 1695,
1913 63, 474, 475, 476, 1125, 185, 468, 781, 1184, 64,
1914 2331, 2346, 1809, 1935, 1936, 1181, 1182, 257, 1429, 2153,
1915 2238, 1932, 1619, 1620, 65, 514, 66, 67, 2143, 2275,
1916 2306, 1919, 1920, 68, 69, 777, 249, 542, 870, 407,
1917 871, 544, 872, 182, 969, 1506, 970, 967, 1041, 1344,
1918 1570, 1345, 1773, 258, 190, 191, 482, 71, 1696, 259,
1919 1048, 1049, 74, 650, 958, 408, 721, 1355, 1356, 1052,
1920 722, 1042, 1335, 1349, 1350, 1578, 1908, 1714, 1781, 409,
1921 410, 337, 654, 965, 809, 1390, 955, 956, 1264, 1499,
1922 411, 412, 413, 414, 1062, 415, 1066, 416, 417, 695,
1923 418, 1059, 419, 718, 420, 421, 1044, 422, 423, 424,
1924 425, 426, 427, 428, 1367, 1368, 1586, 1786, 1916, 1917,
1925 2039, 2134, 2135, 2041, 2136, 2141, 429, 546, 202, 203,
1926 431, 669, 432, 433, 434, 343, 435, 436, 437, 438,
1927 439, 710, 1023, 705, 707, 639, 944, 987, 988, 945,
1928 1491, 946, 947, 640, 440, 441, 442, 1046, 443, 444,
1929 975, 445, 805, 1036, 1029, 1030, 713, 714, 1033, 1110,
1930 1241, 962, 260, 1706, 1386, 1249, 446, 643, 644, 447,
1931 971, 819, 236, 237, 177, 547, 179, 1635, 261, 449,
1932 1242, 341, 450, 451, 452, 453, 75, 269, 1448, 1449,
1933 1636, 76, 503, 993, 994, 995, 454, 455, 456, 457,
1934 458, 1518, 1289, 1722, 2005, 2006, 2112, 2007, 2209, 1723,
1935 1724, 1725, 1529, 1737, 459, 999, 1292, 1293, 1294, 1531,
1936 1741, 460, 1534, 461, 1298, 1536, 462, 1006, 1300, 1538,
1937 1750, 1751, 1752, 1753, 1754, 1894, 463, 464, 1009, 1003,
1938 1284, 1000, 1522, 1523, 1881, 1524, 1525, 1526, 1889, 1890,
1939 1543, 1544, 2025, 2026, 2122, 2123, 2212, 2269, 2027, 2120,
1940 2127, 2128, 2219, 2129, 2130, 2218, 2216, 465
1941};
1942
1943 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1944 positive, shift that token. If negative, reduce the rule whose
1945 number is the opposite. If YYTABLE_NINF, syntax error. */
1946static const yytype_int16 yytable[] =
1947{
1948 178, 322, 49, 553, 1119, 187, 50, 775, 330, 192,
1949 72, 487, 1193, 550, 46, 204, 178, 1157, 47, 1462,
1950 485, 642, 61, 789, 656, 1043, 178, 675, 1433, 937,
1951 543, 641, 267, 506, 986, 664, 62, 806, 1625, 324,
1952 331, 1684, 1112, 70, 235, 1951, 227, 268, 516, 517,
1953 51, 996, 963, 519, 1190, 52, 991, 815, 250, 1011,
1954 250, 1142, 539, 1460, 1007, 1286, 645, 1287, 1715, 1952,
1955 1134, 1135, 1136, 1180, 178, 851, 1362, 1363, 1301, 1165,
1956 1166, 936, 703, 574, 201, 832, 346, 347, 821, 533,
1957 1347, 694, 696, 1218, 1219, 1220, 1332, 2063, 1351, 346,
1958 347, 719, 60, 719, 1539, 1394, 921, 717, 1637, 244,
1959 2008, 1982, 1638, 2011, 2066, 855, 1776, 1941, 594, 595,
1960 596, 597, 73, 599, 600, 601, 2344, 603, 961, 2202,
1961 768, 769, -814, 771, 1025, 1804, 910, 1358, 242, 212,
1962 213, 214, 215, 216, 217, 218, 2283, 515, -1026, 1913,
1963 1951, 2100, -1026, -1026, 1148, -1026, -1026, -1026, -1026, -1026,
1964 -1026, -1026, -1026, -1026, -1026, -1026, 674, 193, 243, 2224,
1965 1283, 245, 344, 1098, 920, 1206, 77, 520, 448, 178,
1966 556, -1026, -1026, 1942, 470, 708, 709, 1233, 1234, 1235,
1967 1236, 178, 2312, 183, 1962, 1443, 2225, 557, 188, 559,
1968 483, 1444, 1222, 1223, 2075, 1224, 178, 2101, 49, 49,
1969 49, 49, 50, 50, 50, 50, 72, 72, 72, 72,
1970 46, 46, 46, 46, 47, 47, 47, 47, 61, 61,
1971 61, 61, 193, 2085, 1016, 1207, 1462, 1099, 863, 2090,
1972 535, 178, 62, 62, 62, 62, 963, 430, 1140, 70,
1973 70, 70, 70, 693, 235, 227, 51, 51, 51, 51,
1974 48, 52, 52, 52, 52, 49, 924, 563, 2147, 50,
1975 2345, 178, 1618, 72, 14, 78, 1965, 46, 178, 572,
1976 1460, 47, 1963, 1143, 663, 61, 804, 1151, 178, 178,
1977 178, 178, 178, 178, 585, 178, -814, 1966, 178, 62,
1978 1637, 856, 806, 598, 1638, 865, 70, 178, 60, 60,
1979 60, 60, 484, 51, 331, 609, 610, 775, 52, 1905,
1980 770, 834, 835, 646, 2202, 1417, 1939, -814, 73, 73,
1981 73, 73, 523, 521, 246, 344, 1253, 13, 657, 252,
1982 247, 659, 2170, 1149, 922, 1755, 250, 1418, 1275, 2210,
1983 1353, 2180, 1149, 2064, 58, 1147, 3, 4, 5, 6,
1984 638, 1504, 251, 1251, 1252, 60, 881, 882, 883, 884,
1985 2236, 1540, 1285, 678, 1545, 1559, 894, 2241, 833, 1302,
1986 1296, 1371, 1560, 1373, 772, 73, -515, 1332, 851, 806,
1987 1254, 35, 694, -814, 1026, 1154, 1155, 1225, 1404, 1406,
1988 184, 193, 904, 2079, 693, 344, -814, 1383, 2251, 1469,
1989 -814, 900, 406, 816, 406, 1188, 178, 862, 723, 1914,
1990 1017, 1915, 2332, 2333, 776, 1983, 1437, 1054, 1058, 1626,
1991 1684, 2254, 691, 2256, 1141, 2226, 1382, 1071, 2002, 1270,
1992 2227, -92, -92, -92, -92, -92, -92, -92, 573, 1229,
1993 1230, 1231, 1232, 2279, 1660, 1326, 35, -299, 1237, 1238,
1994 1239, 1370, 1425, 1462, 2334, 14, 48, 48, 48, 48,
1995 1967, 193, 1537, 192, 1483, 189, 1149, 719, 926, -1227,
1996 194, 1487, 841, 448, 857, 344, 1139, 178, -1026, 178,
1997 178, 178, 178, 797, 178, 799, 178, 178, 1035, 193,
1998 723, 807, 2236, 1479, 1581, 1582, 13, 1460, 252, 723,
1999 1650, 954, 1730, 1511, 15, 1352, 842, 843, -1227, 844,
2000 845, 846, 178, 48, 847, -1227, 1015, 2013, 723, 974,
2001 974, 2184, 193, 2186, 853, 178, 820, 723, 1419, 642,
2002 723, 195, 227, 2060, 1420, 178, 1318, 804, 178, 1168,
2003 1512, 178, 430, 2091, 693, 2014, 2322, 1144, 1759, 1760,
2004 58, 58, 58, 58, 1407, 1408, 1870, 642, 1896, 1897,
2005 891, 178, 893, 253, 178, 1027, 13, 1192, 14, 927,
2006 655, 1375, 35, 691, 645, 178, 178, 178, 178, 1727,
2007 178, 178, 178, 178, 1377, 178, 178, 178, 973, 178,
2008 1739, 1189, 196, 919, 13, 1906, 773, 1746, 1930, 925,
2009 1964, 331, 645, 1490, 1771, 1187, 968, 58, 642, 1250,
2010 -858, -858, 346, 347, 248, 35, 298, 1918, 1240, -862,
2011 -862, 2031, 197, 720, 948, 2057, 2109, 13, 543, 14,
2012 543, 1327, 1564, -299, 2093, 2164, 254, 1141, 856, 1567,
2013 724, 1590, 477, 1938, 972, 1514, 1981, 332, 723, 2042,
2014 1484, 2335, 2167, 645, 2181, 2084, 2154, 1488, 1337, 1338,
2015 1339, 180, 1340, 1341, 2280, 1342, 219, 220, 221, 222,
2016 212, 213, 214, 215, 216, 217, 218, 1178, 299, 774,
2017 1189, 1189, 1185, 1329, 1527, 35, 1651, 267, 1731, 267,
2018 -207, 2348, 238, 2022, 1888, 239, 648, 1314, 338, 1316,
2019 -864, -864, 1021, 1271, 1024, 1047, 1050, 691, 551, 1307,
2020 522, 262, 774, 35, 2290, 2291, 1365, -1227, 467, 2124,
2021 790, 2103, 693, 691, 340, 848, 300, 929, 930, 1328,
2022 219, 220, 221, 222, 346, 347, 346, 347, 1527, 301,
2023 181, 1001, 1871, 1002, 1189, 1189, 35, 2292, 1101, 318,
2024 448, 1359, 1111, 1926, 1360, 1361, 1117, 2043, 1343, 331,
2025 711, 1480, 1031, 176, 2217, 1927, 1410, 841, 267, 2023,
2026 875, 1528, 2024, 2061, 1045, 649, 2298, 2101, 178, 205,
2027 223, 1815, 523, 1126, 1805, 1618, 638, 2095, 2125, 211,
2028 -862, 2126, 704, 1602, 1532, 1603, 302, 303, 304, 305,
2029 306, 842, 708, 709, 844, 845, 846, 1815, 1405, 847,
2030 178, 2058, 2110, 642, 837, 588, 1892, 1822, 491, 430,
2031 1273, 2165, 1823, 1411, 1412, 1875, 1629, 345, 307, 1928,
2032 1400, 646, 219, 220, 221, 222, 490, 339, 2168, 518,
2033 2182, 308, 1800, 1117, 223, 692, 1138, 309, 2051, 2268,
2034 2281, 1533, 310, 2047, 2048, 1893, 27, 28, 645, 646,
2035 1772, 224, 1770, 333, 1774, 1801, 492, 178, 178, 178,
2036 178, -864, 1710, 706, 806, 1202, -207, 2349, 504, 931,
2037 178, 225, 1217, 1217, 1217, 1217, 589, 590, 591, 592,
2038 178, 178, 505, 333, 507, 508, 311, 806, 642, 312,
2039 525, 691, 1745, 1037, 838, 1749, 1747, 1038, 1472, 1929,
2040 646, 267, 524, 1388, 267, 267, 267, 737, 1502, 1453,
2041 27, 28, 528, 2049, 839, 224, 334, 335, 336, 226,
2042 1748, 1247, 267, 267, 267, 267, 267, 493, 494, 495,
2043 496, 723, 466, 645, 526, 225, 1824, 1257, 1337, 1338,
2044 1339, 558, 1340, 1341, 489, 1342, 334, 335, 336, 1278,
2045 642, 642, 529, 2248, 488, -269, 1283, 16, 527, 511,
2046 1508, 1509, 1476, 841, 532, 178, 875, 723, 1262, 1263,
2047 1822, 497, -1214, 1288, 2261, 1823, 548, 498, 499, 1028,
2048 1297, 1031, 500, 226, 2302, 29, 692, 756, 757, 758,
2049 759, 760, 31, 32, 536, 645, 645, 842, 723, 1008,
2050 844, 845, 846, 346, 347, 847, 873, 512, 513, 1953,
2051 876, 34, 27, 28, -210, 204, 1047, 224, 537, -269,
2052 1348, 1348, 1348, 1733, 566, 1992, 501, 1357, 1583, 1993,
2053 549, 571, 1122, -1192, 1001, 552, 1002, 225, 1343, 1123,
2054 1124, 579, 580, 581, 582, 583, 584, 250, 586, -1192,
2055 1652, 593, -210, 2315, 298, 1901, 1248, 264, 265, 1734,
2056 602, 1735, 1736, 1333, 266, 1601, 1653, 334, 335, 336,
2057 554, -269, 1453, 1954, 471, 488, 1369, 472, 555, 1654,
2058 1553, 561, 562, 473, 1330, 1045, 2185, 1557, 2187, 1558,
2059 1621, 560, 346, 347, 1624, 1989, 573, 1378, 1621, 1824,
2060 1628, 1337, 1338, 1339, 2067, 646, 1047, 567, 1342, 954,
2061 1848, -210, 1975, 1387, 568, 1397, 299, 1398, 1399, -269,
2062 692, 1507, -269, 569, 1416, 1955, 1422, 1424, 1794, 1795,
2063 1796, 570, -269, 642, 1402, 1403, 1012, 576, 291, -210,
2064 1592, 577, 1334, 1659, 578, 1171, -210, -210, 1172, 587,
2065 1978, 1333, 1975, 726, 607, 204, 727, 728, 729, 730,
2066 731, 732, 733, 734, 300, -210, 611, 735, 1173, 736,
2067 612, 1174, 1175, 1956, 1442, 1045, 1957, 301, 645, 564,
2068 565, 1202, 613, 1463, 604, 605, 1958, 178, 614, 1217,
2069 646, 346, 347, 1845, 1337, 1338, 1339, 658, 1340, 1341,
2070 -584, 1342, 1438, 1439, 1440, 1441, -225, 1662, -224, 292,
2071 293, 294, 295, 968, -1099, -1099, 876, -979, -979, 194,
2072 1468, 1337, 1338, 1339, 1427, 1340, 1341, 615, 1342, 653,
2073 1334, 334, 335, 336, 302, 303, 304, 305, 306, 1014,
2074 791, 647, 793, 794, 795, 796, 346, 798, 1749, 800,
2075 801, 972, 646, 646, 670, 671, 672, 673, 1244, 1245,
2076 1246, 1782, 1783, 938, 296, 642, 307, 939, -845, 940,
2077 941, 942, 943, 778, 779, 827, 1256, 1258, 1259, 1260,
2078 1261, -847, 1621, 782, 783, 309, -843, 1806, 854, 665,
2079 310, 334, 335, 336, 1343, 666, 1813, 725, 859, 1304,
2080 667, 861, 834, 835, 864, 1348, 1348, 1047, 901, 902,
2081 645, 297, 1047, 668, 1012, 762, 1767, 674, 2243, 1047,
2082 676, 1343, 1571, 677, 892, 1833, 679, 895, 1573, 1050,
2083 1160, 1161, 1162, 680, 311, 681, -714, 312, 906, 907,
2084 908, 909, 682, 911, 912, 913, 914, 683, 915, 916,
2085 917, 1117, 918, 1591, 1333, 1969, 684, 938, 334, 335,
2086 336, 939, 267, 940, 941, 942, 1489, -1100, -1100, 642,
2087 642, 2188, 642, 2189, 2190, 2191, 1045, 1596, 685, 1857,
2088 1860, 1045, 1860, 1060, 1061, 1604, 1605, 178, 1045, 686,
2089 1607, 1608, 1609, 708, 709, 1613, 178, 687, 1615, 178,
2090 972, 1305, 1306, 1193, 1267, 1268, 1269, 1379, 1380, 737,
2091 688, 1068, 1069, 1070, 645, 645, 689, 645, 660, 661,
2092 662, 1704, 699, 1634, 1412, 1415, 700, 204, 178, 1649,
2093 1642, 1423, 1412, 1334, 1643, 646, 1789, 1431, 1432, 701,
2094 1661, 1611, 1612, 1712, 1713, 715, 1697, 1698, 763, 1995,
2095 1996, 2192, 2193, 331, 178, 2221, 2138, 267, 716, 267,
2096 270, 267, 2222, 2139, 765, 1839, 267, 2273, 2274, 1933,
2097 780, 1934, 1707, 766, 1708, 1940, 1709, 1716, 1644, 2316,
2098 2317, 1711, 767, 1645, 751, 752, 753, 754, 755, 756,
2099 757, 758, 759, 760, 2083, 764, 1647, -781, 271, 270,
2100 737, 272, 509, 510, 651, 652, 1740, 959, 960, 784,
2101 873, 873, 785, 788, 786, 802, 1847, 792, 1852, 808,
2102 810, 811, 813, 814, 226, 1991, 829, 852, 830, 858,
2103 1646, 831, -617, 860, 866, 867, 2340, 271, 888, 874,
2104 272, 1131, 1047, 885, 1047, 886, 896, 273, 1634, 274,
2105 897, 1357, 727, 728, 729, 730, 731, 732, 733, 734,
2106 275, 905, -617, 735, 898, 899, 934, 646, 928, 932,
2107 933, 1791, 935, 1153, 704, 957, 752, 753, 754, 755,
2108 756, 757, 758, 759, 760, 2045, 273, 964, 274, 973,
2109 2052, 966, 1821, 977, 706, -617, -617, -617, 949, 275,
2110 950, 2059, 978, -617, 951, 952, 953, 1836, 989, 1814,
2111 998, 1045, 997, 1045, 1005, 1013, 1903, 1004, 1022, 1051,
2112 405, 1064, 1642, 1909, 1910, 1065, 1643, 1818, 1909, 1102,
2113 1194, 1195, 1196, 1197, 1118, 873, 1120, 1121, 1128, 331,
2114 719, 1130, 1132, 1212, 1137, 1145, 1156, 1047, 1158, 1159,
2115 1163, 1164, 1179, 1227, 1228, 1183, 1186, 1191, 1199, -617,
2116 1203, 1170, 276, 277, 278, 279, 280, 281, 1198, 1200,
2117 1644, 646, 646, 1205, 646, 1645, 1213, 1211, 282, 2038,
2118 212, 213, 214, 215, 216, 217, 218, -617, 723, 1221,
2119 1243, 1265, 1974, 1266, -617, -617, 1255, 1274, 1277, 1984,
2120 1279, 276, 277, 278, 279, 280, 281, 1280, 1880, 1902,
2121 283, 1281, 1283, -617, 1290, 1295, 201, 282, 1299, 333,
2122 2150, 1312, 1646, 284, 1313, 1315, 737, 1366, -846, 285,
2123 2158, 1325, 286, 1323, 1372, 1374, 1336, -848, 1282, -617,
2124 -617, -617, -844, 1381, 1376, 1047, 1392, 1389, 1394, 283,
2125 1396, 1634, 1401, 1412, 1369, 1409, 954, 1947, 1948, 1426,
2126 1428, 1991, 1434, 1991, 1430, 1436, 642, 1207, 285, 1446,
2127 1447, 286, 1451, 1923, 1464, 1466, 2183, 551, -185, 1470,
2128 1473, 1474, 1471, 1475, 1937, 1478, 1481, 1482, 1477, -617,
2129 -882, 1946, -262, 1530, 1485, 1492, 726, 2133, 1494, 727,
2130 728, 729, 730, 731, 732, 733, 734, -262, 1495, 1579,
2131 735, 645, -262, -262, 1045, 448, 1971, -185, 1486, 1493,
2132 1517, 1496, 1498, 2244, 1497, 1501, 1537, 1513, 1535, 1515,
2133 1697, 1516, 1541, 1542, 1546, 1697, 1547, 1555, 1552, 1561,
2134 1562, 737, 1563, 1566, 1568, 1569, 1572, 1716, 2003, 775,
2135 1575, 1576, 1577, 1584, -262, 1585, -262, 1587, 1588, 1594,
2136 1593, 1600, 726, 545, 2017, 727, 728, 729, 730, 731,
2137 732, 733, 734, 1595, 1597, 1580, 735, 2131, 1610, 1622,
2138 1630, 2163, 726, 1599, 430, 727, 728, 729, 730, 731,
2139 732, 733, 734, 1663, 1632, 1728, 735, 1666, 2046, 1664,
2140 1699, 1700, 1701, 1702, 1633, 1717, 1742, 1718, -262, -262,
2141 -262, 1732, 748, 749, 750, 2162, 751, 752, 753, 754,
2142 755, 756, 757, 758, 759, 760, 1743, 1744, 1756, 1757,
2143 1758, 1769, 642, 178, 1775, 1778, -262, 1779, -262, 1780,
2144 1784, 1785, 2301, 1787, 1971, -262, -262, 1788, 1792, 1805,
2145 1793, 2313, 1797, 1807, 1798, 1808, -262, 1811, 1697, -262,
2146 1467, 972, 1812, 1819, -262, 1820, 1834, 1832, 2245, -262,
2147 1837, 1815, 1840, 1855, 1861, 1838, 1863, 645, 1864, 1866,
2148 1867, 1868, 1869, 1853, 1873, 2133, 2228, 1878, 1856, 638,
2149 1882, 1872, 873, 873, 1883, 1886, 1874, 1877, 1884, 2119,
2150 1885, 1887, 1891, 1895, 1912, 735, 697, 698, 1921, 1922,
2151 1925, 1931, 702, 1944, 1660, 1949, 1968, 712, 1994, 1924,
2152 2257, 979, 980, 938, 981, 982, 983, 939, 984, 940,
2153 941, 942, 985, 1961, 1937, 1972, 1973, 1985, 2155, 2266,
2154 -262, 2012, 1999, 2015, 178, 2016, 2021, 2019, 2020, 2032,
2155 2033, 1918, 2053, 2055, 2069, 2056, 2166, 2062, 2068, 2070,
2156 2072, 1697, 2071, 2076, 2077, 2078, 1697, 720, 646, 2080,
2157 2092, 2347, 1971, 2086, 1971, 2096, 2097, 2099, 2350, 2098,
2158 2107, 2106, 2118, 2111, 1697, 2121, 1377, 2208, 2114, 2116,
2159 2199, 2138, 2117, 2137, 2200, 2139, 2142, 2113, 2206, 2144,
2160 2148, 2215, 2197, 2140, 2152, 2149, 2198, 2172, 2156, 2157,
2161 2204, 2159, 2161, 2328, 2174, 2178, 2169, 2179, 2195, 545,
2162 2211, 2214, 2125, 2231, 2205, 2229, 2233, 2232, -208, 2223,
2163 2237, 2246, 2249, 2242, 2255, 2253, 2258, 2282, 2259, 2267,
2164 2271, 2272, 2276, 2287, 2300, 2285, 1697, -202, 2286, 2294,
2165 2299, 2304, 2308, 2305, 2307, 2318, 1697, 2320, 972, 2329,
2166 1606, 2316, 2339, 2330, 2262, 2263, 2264, 2265, 2317, 1614,
2167 2341, 2342, 1616, 2343, 1450, 545, 1275, 1816, 1598, 1393,
2168 2289, 531, 1169, 530, 329, 2311, 2310, 264, 265, 616,
2169 617, 1617, 1817, 822, 1802, 2054, 2337, 2314, 2321, 828,
2170 2319, 1648, 2288, 618, 1988, 2088, 2326, 619, 620, 621,
2171 363, 364, 622, 623, 624, 625, 626, 627, 628, 629,
2172 630, 2089, 2338, 1862, 1976, 2105, 2104, 1705, 1790, 826,
2173 1697, 186, 1697, 1127, 646, 631, 632, 633, 264, 265,
2174 616, 617, 968, 469, 1810, 2151, 2239, 1627, 2284, 1803,
2175 478, 812, 479, 2230, 618, -14, 1, 1435, 619, 620,
2176 621, 363, 364, 622, 623, 624, 625, 626, 627, 628,
2177 629, 630, 2044, 1503, 480, 481, 2324, 1565, 1177, 1697,
2178 972, 1904, 2327, 1574, 1354, 2199, 631, 632, 633, 2200,
2179 1176, 787, 1777, 2206, 990, 992, 992, 2197, 1697, 1276,
2180 1911, 2198, 990, 1053, 992, 2204, 1303, 1272, 1391, 2,
2181 1500, 2034, 1063, 1072, 1018, 1019, 1020, 1073, 1129, 2205,
2182 1907, 2040, 3, 4, 5, 6, 2270, 1103, 1317, 323,
2183 1034, 545, 2010, 1105, 1320, 923, 7, 8, 9, 10,
2184 976, 1321, 1167, 1032, 2207, 11, 1067, 1067, 1067, 1067,
2185 2009, 1876, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
2186 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091,
2187 1092, 1093, 1094, 1095, 1096, 1097, 1738, 2018, 1726, 1879,
2188 545, 1109, 1109, 1010, 2115, 2213, 1729, 2220, 0, 0,
2189 0, 12, 0, 0, 0, 0, 0, 0, 0, 0,
2190 0, 0, 0, 0, 0, 0, 0, 0, 1384, 0,
2191 0, 0, 264, 265, 616, 617, 0, 0, 0, 0,
2192 1843, 0, 0, 0, 0, 0, 0, 0, 618, 13,
2193 0, 14, 619, 620, 621, 363, 364, 622, 623, 624,
2194 625, 626, 627, 628, 629, 630, 0, 0, 0, 0,
2195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2196 631, 632, 633, 0, 0, 0, 0, 0, 0, 0,
2197 0, 545, 0, 545, 0, 0, 634, 635, 636, 637,
2198 15, 0, 0, 0, 0, 0, 0, 0, 16, 17,
2199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2200 0, 18, 19, 0, 20, 0, 21, 22, 23, 24,
2201 25, 26, 27, 28, 0, 0, 29, 30, 0, 0,
2202 0, 0, 0, 31, 32, 0, 0, 634, 635, 636,
2203 637, 264, 265, 616, 617, 0, 0, 0, 0, 33,
2204 0, 0, 34, 638, 0, 0, 0, 618, 35, 0,
2205 0, 619, 620, 621, 363, 364, 622, 623, 624, 625,
2206 626, 627, 628, 629, 630, 0, 0, 264, 265, 616,
2207 617, 0, 0, 0, 0, 0, 0, 0, 0, 631,
2208 632, 633, 0, 618, 0, 36, 0, 619, 620, 621,
2209 363, 364, 622, 623, 624, 625, 626, 627, 628, 629,
2210 630, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2211 0, 0, 0, 0, 1291, 631, 632, 633, 990, 0,
2212 0, 0, 0, 0, 992, 0, 0, 0, 0, 0,
2213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2214 0, 0, 0, 1319, 0, 0, 1322, 0, 0, 0,
2215 0, 0, 0, 0, 0, 0, 0, 1656, 1657, 0,
2216 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2217 0, 0, 0, 0, 0, 0, 0, 0, 0, 545,
2218 545, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2219 0, 0, 0, 0, 1858, 0, 0, 0, 0, 0,
2220 0, 634, 635, 636, 637, 0, 2073, 0, 0, 0,
2221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2222 0, 1109, 0, 1109, 0, 0, 346, 347, 348, 0,
2223 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
2224 359, 360, 0, 0, 361, 362, 0, 0, 86, 87,
2225 0, 0, 88, 363, 364, 0, 545, 0, 0, 0,
2226 0, 0, 0, 0, 89, 0, 0, 90, 0, 0,
2227 365, 366, 367, 368, 369, 370, 371, 0, 91, 0,
2228 0, 314, 315, 316, 0, 0, 0, 0, 372, 92,
2229 0, 0, 193, 198, 0, 0, 199, 200, 0, 0,
2230 0, 0, 0, 0, 545, 0, 0, 93, 0, 0,
2231 94, 0, 0, 95, 0, 0, 0, 2160, 0, 96,
2232 634, 635, 636, 637, 97, 98, 99, 0, 0, 0,
2233 0, 0, 100, 373, 0, 101, 0, 0, 374, 0,
2234 0, 102, 375, 0, 103, 0, 0, 104, 105, 106,
2235 376, 107, 108, 0, 0, 0, 634, 635, 636, 637,
2236 377, 378, 379, 380, 381, 0, 382, 383, 109, 110,
2237 384, 385, 111, 386, 112, 113, 114, 115, 116, 117,
2238 118, 0, 119, 387, 120, 121, 122, 123, 0, 124,
2239 388, 125, 0, 0, 0, 0, 1510, 13, 126, 690,
2240 992, 127, 390, 0, 0, 1521, 0, 0, 0, 0,
2241 0, 0, 0, 0, 0, 0, 0, 0, 391, 392,
2242 0, 0, 0, 1548, 1549, 1550, 1551, 0, 393, 394,
2243 395, 0, 0, 545, 0, 397, 0, 0, 0, 1556,
2244 545, 0, 545, 0, 0, 128, 129, 0, 0, 0,
2245 0, 0, 0, 130, 0, 0, 0, 131, 132, 133,
2246 134, 135, 0, 0, 0, 0, 0, 0, 136, 0,
2247 0, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2248 146, 147, 0, 148, 0, 0, 0, 0, 0, 0,
2249 149, 1109, 0, 150, 0, 0, 0, 151, 0, 0,
2250 152, 153, 0, 154, 0, 0, 155, 0, 156, 0,
2251 0, 0, 157, 158, 0, 1308, 35, 0, 0, 398,
2252 399, 400, 401, 163, 164, 0, 165, 166, 167, 0,
2253 168, 0, 0, 0, 0, 169, 737, 0, 0, 0,
2254 402, 0, 0, 0, 403, 404, 0, 0, 0, 0,
2255 0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
2256 171, 0, 172, 173, 0, 0, 0, 0, 174, 175,
2257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2258 0, 0, 0, 0, 0, 0, 0, 0, 0, 405,
2259 0, 406, 0, 0, 738, 739, 740, 741, 742, 743,
2260 744, 745, 746, 747, 0, 0, 0, 748, 749, 750,
2261 0, 751, 752, 753, 754, 755, 756, 757, 758, 759,
2262 760, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2263 0, 0, 1721, 0, 0, 1521, 0, 0, 0, 0,
2264 0, 0, 0, 1291, 0, 0, 0, 0, 0, 0,
2265 990, 0, 0, 990, 0, 0, 0, 0, 0, 0,
2266 0, 545, 545, 0, 0, 0, 0, 0, 0, 545,
2267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2268 0, 79, 80, 81, 82, 83, 84, 85, 0, 0,
2269 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,
2270 87, 0, 0, 88, 0, 0, 0, 0, 0, 0,
2271 0, 0, 0, 0, 0, 89, 0, 0, 90, 0,
2272 0, 0, 0, 0, 0, 0, 0, 0, 0, 91,
2273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2274 92, 3, 4, 1667, 6, 0, 0, 0, 0, 0,
2275 0, 0, 0, 0, 0, 7, 8, 9, 1668, 0,
2276 0, 94, 1309, 0, 1669, 0, 0, 0, 0, 0,
2277 96, 0, 0, 0, 0, 97, 98, 99, 0, 0,
2278 0, 0, 0, 100, 0, 0, 101, 0, 1851, 0,
2279 0, 0, 102, 0, 0, 103, 0, 0, 104, 105,
2280 106, 0, 107, 108, 0, 0, 0, 0, 0, 0,
2281 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
2282 110, 0, 0, 111, 0, 112, 113, 114, 115, 116,
2283 117, 118, 0, 119, 0, 120, 121, 122, 123, 0,
2284 124, 0, 125, 0, 0, 0, 1521, 0, 0, 126,
2285 0, 0, 127, 0, 0, 0, 0, 0, 0, 0,
2286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2287 0, 0, 0, 0, 0, 0, 1898, 0, 0, 1899,
2288 0, 1900, 0, 0, 0, 0, 0, 0, 0, 0,
2289 0, 0, 0, 0, 0, 0, 128, 129, 0, 15,
2290 0, 0, 0, 0, 130, 0, 0, 16, 131, 132,
2291 133, 134, 135, 0, 0, 0, 0, 0, 0, 136,
2292 18, 1671, 137, 138, 139, 140, 141, 142, 143, 144,
2293 145, 146, 147, 0, 148, 29, 30, 0, 0, 990,
2294 0, 149, 31, 32, 150, 0, 0, 0, 151, 0,
2295 0, 152, 153, 0, 154, 0, 0, 155, 33, 156,
2296 1672, 34, 0, 157, 158, 0, 0, 0, 0, 0,
2297 159, 160, 161, 162, 163, 164, 0, 165, 166, 167,
2298 0, 168, 0, 0, 0, 0, 169, 0, 2004, 1721,
2299 1721, 1673, 1721, 737, 2175, 0, 0, 1674, 2176, -384,
2300 0, 0, 0, 0, 36, 0, 990, 0, 0, 0,
2301 170, 171, 0, 172, 173, 0, 0, 0, 0, 174,
2302 175, 0, 3, 4, 5, 6, 0, 0, 0, 0,
2303 0, 0, 545, 1763, 0, 0, 7, 8, 9, 10,
2304 737, 0, 0, 0, 990, 11, 0, 0, 0, 0,
2305 0, 738, 739, 740, 741, 742, 743, 744, 745, 746,
2306 747, 0, 0, 0, 748, 749, 750, 0, 751, 752,
2307 753, 754, 755, 756, 757, 758, 759, 760, 0, 0,
2308 0, 0, 0, 0, 0, 0, 0, 2082, 0, 0,
2309 0, 0, 0, 2087, 737, 0, 0, 0, 738, 739,
2310 740, 741, 742, 743, 744, 745, 746, 747, 0, 0,
2311 0, 748, 749, 750, 0, 751, 752, 753, 754, 755,
2312 756, 757, 758, 759, 760, 0, 0, 0, 0, 13,
2313 0, 14, 0, 0, 0, 0, 0, 0, 0, 0,
2314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2315 545, 0, 738, 739, 740, 741, 742, 743, 744, 745,
2316 746, 747, 990, 0, 0, 748, 749, 750, 0, 751,
2317 752, 753, 754, 755, 756, 757, 758, 759, 760, 0,
2318 15, 0, 0, 0, 0, 0, 0, 0, 16, 17,
2319 0, 0, 0, 0, 0, 1761, 0, 0, 0, 0,
2320 0, 18, 19, 0, 20, 0, 0, 0, 0, 0,
2321 0, 0, 0, 0, 0, 737, 29, 30, 0, 1764,
2322 0, 0, 0, 31, 32, 2004, 0, 0, 1721, 0,
2323 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,
2324 0, 0, 34, 0, 0, 0, 0, 0, 35, 0,
2325 0, 0, 0, 0, 0, 1762, 0, 0, 0, 0,
2326 0, 0, 0, 0, 990, 0, 1311, 0, 0, 0,
2327 0, 990, 0, 738, 739, 740, 741, 742, 743, 744,
2328 745, 746, 747, 2252, 0, 36, 748, 749, 750, 0,
2329 751, 752, 753, 754, 755, 756, 757, 758, 759, 760,
2330 0, 0, 0, 0, 346, 347, 348, 0, 349, 350,
2331 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
2332 1324, 0, 361, 362, 0, 0, 86, 87, 0, 0,
2333 88, 363, 364, 0, 0, 0, 0, 0, 545, 0,
2334 0, 0, 89, 0, 0, 90, 0, 990, 365, 366,
2335 367, 368, 369, 370, 371, 0, 91, 0, 0, 314,
2336 315, 316, 0, 0, 0, 0, 372, 92, 0, 0,
2337 0, 198, 0, 0, 199, 200, 0, 0, 0, 0,
2338 0, 0, 0, 0, 0, 93, 0, 0, 94, 0,
2339 0, 95, 0, 0, 0, 0, 990, 96, 0, 0,
2340 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
2341 100, 373, 0, 101, 0, 0, 374, 0, 0, 102,
2342 375, 0, 103, 0, 0, 104, 105, 106, 376, 107,
2343 108, 0, 0, 0, 0, 0, 0, 0, 377, 378,
2344 379, 380, 381, 0, 382, 383, 109, 110, 384, 385,
2345 111, 386, 112, 113, 114, 115, 116, 117, 118, 0,
2346 119, 387, 120, 121, 122, 123, 0, 124, 388, 125,
2347 0, 0, 0, 0, 0, 0, 126, 389, 0, 127,
2348 390, 0, 1055, 1056, 0, 0, 0, 0, 0, 0,
2349 0, 0, 0, 1057, 0, 0, 391, 392, 0, 0,
2350 0, 0, 0, 0, 0, 0, 393, 394, 395, 0,
2351 0, 0, 0, 397, 0, 0, 0, 0, 0, 0,
2352 0, 0, 0, 128, 129, 0, 0, 0, 0, 0,
2353 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
2354 0, 0, 0, 0, 0, 0, 136, 0, 0, 137,
2355 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2356 0, 148, 0, 0, 0, 0, 0, 0, 149, 0,
2357 0, 150, 0, 0, 0, 151, 0, 0, 152, 153,
2358 0, 154, 0, 0, 155, 0, 156, 0, 0, 0,
2359 157, 158, 0, 0, 0, 0, 0, 398, 399, 400,
2360 401, 163, 164, 0, 165, 166, 167, 0, 168, 0,
2361 0, 0, 0, 169, 0, 0, 0, 0, 402, 0,
2362 0, 0, 403, 404, 0, 0, 0, 0, 0, 0,
2363 0, 0, 0, 0, 0, 0, 0, 170, 171, 0,
2364 172, 173, 0, 0, 0, 0, 174, 175, 0, 0,
2365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2366 0, 0, 0, 0, 0, 0, 0, 405, 0, 406,
2367 346, 347, 348, 0, 349, 350, 351, 352, 353, 354,
2368 355, 356, 357, 358, 359, 360, 0, 0, 361, 362,
2369 0, 0, 86, 87, 0, 0, 88, 363, 364, 0,
2370 0, 0, 0, 0, 0, 0, 0, 0, 89, 0,
2371 0, 90, 0, 0, 365, 366, 367, 368, 369, 370,
2372 371, 0, 91, 0, 0, 314, 315, 316, 0, 0,
2373 0, 0, 372, 92, 0, 0, 193, 198, 0, 0,
2374 199, 200, 0, 0, 0, 0, 0, 0, 0, 0,
2375 0, 93, 0, 0, 94, 0, 0, 95, 0, 0,
2376 0, 0, 0, 96, 0, 0, 0, 0, 97, 98,
2377 99, 0, 0, 0, 0, 0, 100, 373, 0, 101,
2378 0, 0, 374, 0, 0, 102, 375, 0, 103, 0,
2379 0, 104, 105, 106, 376, 107, 108, 0, 0, 0,
2380 0, 0, 0, 0, 377, 378, 379, 380, 381, 0,
2381 382, 383, 109, 110, 384, 385, 111, 386, 112, 113,
2382 114, 115, 116, 117, 118, 0, 119, 387, 120, 121,
2383 122, 123, 0, 124, 388, 125, 0, 0, 0, 0,
2384 0, 13, 126, 690, 0, 127, 390, 0, 0, 0,
2385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2386 0, 0, 391, 392, 0, 0, 0, 0, 0, 0,
2387 0, 0, 393, 394, 395, 0, 0, 0, 0, 397,
2388 0, 0, 0, 0, 0, 0, 0, 0, 0, 128,
2389 129, 0, 0, 0, 0, 0, 0, 130, 0, 0,
2390 0, 131, 132, 133, 134, 135, 0, 0, 0, 0,
2391 0, 0, 136, 0, 0, 137, 138, 139, 140, 141,
2392 142, 143, 144, 145, 146, 147, 0, 148, 0, 0,
2393 0, 0, 0, 0, 149, 0, 0, 150, 0, 0,
2394 0, 151, 0, 0, 152, 153, 0, 154, 0, 0,
2395 155, 0, 156, 0, 0, 0, 1844, 158, 0, 0,
2396 35, 0, 0, 398, 399, 400, 401, 163, 164, 0,
2397 165, 166, 167, 0, 168, 0, 0, 0, 0, 169,
2398 0, 0, 0, 0, 402, 0, 0, 0, 403, 404,
2399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2400 0, 0, 0, 170, 171, 0, 172, 173, 0, 0,
2401 0, 0, 174, 175, 0, 0, 0, 0, 0, 0,
2402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2403 0, 0, 0, 405, 0, 406, 346, 347, 348, 0,
2404 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
2405 359, 360, 0, 0, 361, 362, 0, 0, 86, 87,
2406 0, 0, 88, 363, 364, 0, 0, 0, 0, 0,
2407 0, 0, 0, 0, 89, 0, 0, 90, 0, 0,
2408 365, 366, 367, 368, 369, 370, 371, 0, 91, 0,
2409 0, 314, 315, 316, 0, 0, 0, 0, 372, 92,
2410 0, 0, 0, 198, 0, 0, 199, 200, 0, 0,
2411 0, 0, 0, 0, 0, 0, 0, 93, 0, 0,
2412 94, 0, 0, 95, 0, 0, 0, 0, 0, 96,
2413 0, 0, 0, 0, 97, 98, 99, 0, 0, 0,
2414 0, 0, 100, 373, 0, 101, 0, 0, 374, 0,
2415 0, 102, 375, 0, 103, 0, 0, 104, 105, 106,
2416 376, 107, 108, 0, 0, 0, 0, 0, 0, 0,
2417 377, 378, 379, 380, 381, 0, 382, 383, 109, 110,
2418 384, 385, 111, 386, 112, 113, 114, 115, 116, 117,
2419 118, 0, 119, 387, 120, 121, 122, 123, 0, 124,
2420 388, 125, 0, 0, 0, 0, 0, 0, 126, 389,
2421 0, 127, 390, 0, 0, 0, 0, 0, 0, 0,
2422 0, 0, 0, 0, 0, 0, 0, 0, 391, 392,
2423 0, 0, 0, 0, 0, 0, 0, 0, 393, 394,
2424 395, 396, 0, 0, 0, 397, 0, 0, 0, 0,
2425 0, 0, 0, 0, 0, 128, 129, 0, 0, 0,
2426 0, 0, 0, 130, 0, 0, 0, 131, 132, 133,
2427 134, 135, 0, 0, 0, 0, 0, 0, 136, 0,
2428 0, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2429 146, 147, 0, 148, 0, 0, 0, 0, 0, 0,
2430 149, 0, 0, 150, 0, 0, 0, 151, 0, 0,
2431 152, 153, 0, 154, 0, 0, 155, 0, 156, 0,
2432 0, 0, 157, 158, 0, 0, 0, 0, 0, 398,
2433 399, 400, 401, 163, 164, 0, 165, 166, 167, 0,
2434 168, 0, 0, 0, 0, 169, 0, 0, 0, 0,
2435 402, 0, 0, 0, 403, 404, 0, 0, 0, 0,
2436 0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
2437 171, 0, 172, 173, 0, 0, 0, 0, 174, 175,
2438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 405,
2440 0, 406, 346, 347, 348, 0, 349, 350, 351, 352,
2441 353, 354, 355, 356, 357, 358, 359, 360, 0, 0,
2442 361, 362, 0, 0, 86, 87, 0, 0, 88, 363,
2443 364, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2444 89, 0, 0, 90, 0, 0, 365, 366, 367, 368,
2445 369, 370, 371, 0, 91, 0, 0, 314, 315, 316,
2446 0, 0, 0, 0, 372, 92, 0, 0, 0, 198,
2447 0, 0, 199, 200, 0, 0, 0, 0, 0, 0,
2448 0, 0, 0, 93, 0, 0, 94, 0, 0, 95,
2449 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
2450 97, 98, 99, 0, 0, 0, 0, 0, 100, 373,
2451 0, 101, 0, 0, 374, 0, 0, 102, 375, 0,
2452 103, 0, 0, 104, 105, 106, 376, 107, 108, 0,
2453 0, 0, 0, 0, 0, 0, 377, 378, 379, 380,
2454 381, 0, 382, 383, 109, 110, 384, 385, 111, 386,
2455 112, 113, 114, 115, 116, 117, 118, 0, 119, 387,
2456 120, 121, 122, 123, 0, 124, 388, 125, 0, 0,
2457 0, 0, 0, 0, 126, 389, 0, 127, 390, 0,
2458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2459 0, 0, 0, 0, 391, 392, 0, 0, 0, 0,
2460 0, 0, 0, 0, 393, 394, 395, 0, 0, 0,
2461 0, 397, 0, 0, 0, 0, 0, 0, 0, 0,
2462 0, 128, 129, 0, 0, 0, 0, 0, 0, 130,
2463 0, 0, 0, 131, 132, 133, 134, 135, 0, 0,
2464 0, 0, 0, 0, 136, 0, 0, 137, 138, 139,
2465 140, 141, 142, 143, 144, 145, 146, 147, 1505, 148,
2466 0, 0, 0, 0, 0, 0, 149, 0, 0, 150,
2467 0, 0, 0, 151, 0, 0, 152, 153, 0, 154,
2468 0, 0, 155, 0, 156, 0, 0, 0, 157, 158,
2469 0, 0, 0, 0, 0, 398, 399, 400, 401, 163,
2470 164, 0, 165, 166, 167, 0, 168, 0, 0, 0,
2471 0, 169, 0, 0, 0, 0, 402, 0, 0, 0,
2472 403, 404, 0, 0, 0, 0, 0, 0, 0, 0,
2473 0, 0, 0, 0, 0, 170, 171, 0, 172, 173,
2474 0, 0, 0, 0, 174, 175, 0, 0, 0, 0,
2475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2476 0, 0, 0, 0, 0, 405, 0, 406, 346, 347,
2477 348, 0, 349, 350, 351, 352, 353, 354, 355, 356,
2478 357, 358, 359, 360, 0, 0, 361, 362, 0, 0,
2479 86, 87, 0, 0, 88, 363, 364, 0, 0, 0,
2480 0, 0, 0, 0, 0, 0, 89, 0, 0, 90,
2481 0, 0, 365, 366, 367, 368, 369, 370, 371, 0,
2482 91, 0, 0, 314, 315, 316, 0, 0, 0, 0,
2483 372, 92, 0, 0, 0, 198, 0, 0, 199, 200,
2484 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
2485 0, 0, 94, 0, 0, 95, 0, 0, 0, 0,
2486 0, 96, 0, 0, 0, 0, 97, 98, 99, 0,
2487 0, 0, 0, 0, 100, 373, 0, 101, 0, 0,
2488 374, 0, 0, 102, 375, 0, 103, 0, 0, 104,
2489 105, 106, 376, 107, 108, 0, 0, 0, 0, 0,
2490 0, 0, 377, 378, 379, 380, 381, 0, 382, 383,
2491 109, 110, 384, 385, 111, 386, 112, 113, 114, 115,
2492 116, 117, 118, 0, 119, 387, 120, 121, 122, 123,
2493 0, 124, 388, 125, 0, 0, 0, 0, 0, 0,
2494 126, 389, 0, 127, 390, 0, 0, 0, 0, 0,
2495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2496 391, 392, 0, 0, 0, 0, 0, 0, 0, 0,
2497 393, 394, 395, 0, 0, 0, 0, 397, 0, 0,
2498 0, 0, 0, 0, 0, 0, 0, 128, 129, 0,
2499 0, 0, 0, 0, 0, 130, 0, 0, 0, 131,
2500 132, 133, 134, 135, 0, 0, 0, 0, 0, 0,
2501 136, 0, 0, 137, 138, 139, 140, 141, 142, 143,
2502 144, 145, 146, 147, 0, 148, 0, 0, 0, 0,
2503 0, 0, 149, 0, 0, 150, 0, 0, 0, 151,
2504 0, 0, 152, 153, 0, 154, 0, 0, 155, 0,
2505 156, 0, 0, 0, 157, 158, 0, 0, 0, 0,
2506 0, 398, 399, 400, 401, 163, 164, 0, 165, 166,
2507 167, 0, 168, 0, 0, 0, 0, 169, 0, 0,
2508 0, 0, 402, 0, 0, 0, 403, 404, 0, 0,
2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2510 0, 170, 171, 0, 172, 173, 0, 0, 0, 0,
2511 174, 175, 0, 0, 0, 0, 0, 0, 0, 0,
2512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2513 0, 405, 0, 406, 346, 347, 348, 0, 349, 350,
2514 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
2515 0, 0, 361, 362, 0, 0, 86, 87, 0, 0,
2516 88, 363, 364, 0, 0, 0, 0, 0, 0, 0,
2517 0, 0, 89, 0, 0, 90, 0, 0, 365, 366,
2518 367, 368, 369, 370, 371, 0, 91, 0, 0, 314,
2519 315, 316, 0, 0, 0, 0, 372, 92, 0, 0,
2520 193, 198, 0, 0, 199, 200, 0, 0, 0, 0,
2521 0, 0, 0, 0, 0, 93, 0, 0, 94, 0,
2522 0, 95, 0, 0, 0, 0, 0, 96, 0, 0,
2523 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
2524 100, 0, 0, 101, 0, 0, 374, 0, 0, 102,
2525 375, 0, 103, 0, 0, 104, 105, 106, 376, 107,
2526 108, 0, 0, 0, 0, 0, 0, 0, 377, 378,
2527 379, 380, 381, 0, 382, 383, 109, 110, 384, 385,
2528 111, 386, 112, 113, 114, 115, 116, 117, 118, 0,
2529 119, 387, 120, 121, 122, 123, 0, 124, 388, 125,
2530 0, 0, 0, 0, 0, 0, 126, 868, 869, 127,
2531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2532 0, 0, 0, 0, 0, 0, 391, 392, 0, 0,
2533 0, 0, 0, 0, 0, 0, 393, 394, 395, 0,
2534 0, 0, 0, 397, 0, 0, 0, 0, 0, 0,
2535 0, 0, 0, 128, 129, 0, 0, 0, 0, 0,
2536 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
2537 0, 0, 0, 0, 0, 0, 136, 0, 0, 137,
2538 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2539 0, 148, 0, 0, 0, 0, 0, 0, 149, 0,
2540 0, 150, 0, 0, 0, 151, 0, 0, 152, 153,
2541 0, 154, 0, 0, 155, 0, 156, 0, 0, 0,
2542 157, 158, 0, 0, 35, 0, 0, 398, 399, 400,
2543 401, 163, 164, 0, 165, 166, 167, 0, 168, 0,
2544 0, 0, 0, 169, 0, 0, 0, 0, 402, 0,
2545 0, 0, 403, 404, 0, 0, 0, 0, 0, 0,
2546 0, 0, 0, 0, 0, 0, 0, 170, 171, 0,
2547 172, 173, 0, 0, 0, 0, 174, 175, 346, 347,
2548 348, 0, 349, 350, 351, 352, 353, 354, 355, 356,
2549 357, 358, 359, 360, 0, 0, 361, 362, 0, 406,
2550 86, 87, 0, 0, 88, 363, 364, 0, 0, 0,
2551 0, 0, 0, 0, 0, 0, 89, 0, 0, 90,
2552 0, 0, 365, 366, 367, 368, 369, 370, 371, 0,
2553 91, 0, 0, 314, 315, 316, 0, 0, 0, 0,
2554 372, 92, 0, 0, 0, 198, 0, 0, 199, 200,
2555 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
2556 0, 0, 94, 0, 0, 95, 0, 0, 0, 0,
2557 0, 96, 0, 0, 0, 0, 97, 98, 99, 0,
2558 0, 0, 0, 0, 100, 0, 0, 101, 0, 0,
2559 374, 0, 0, 102, 375, 0, 103, 0, 0, 104,
2560 105, 106, 376, 107, 108, 0, 0, 0, 0, 0,
2561 0, 0, 377, 378, 379, 380, 381, 0, 382, 383,
2562 109, 110, 384, 385, 111, 386, 112, 113, 114, 115,
2563 116, 117, 118, 0, 119, 387, 120, 121, 122, 123,
2564 0, 124, 388, 125, 0, 0, 0, 0, 0, 0,
2565 126, 540, 0, 127, 0, 0, 0, 0, 0, 2035,
2566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2567 391, 392, 0, 0, 0, 0, 0, 0, 0, 0,
2568 393, 394, 395, 0, 0, 0, 0, 397, 0, 0,
2569 0, 0, 0, 0, 0, 0, 0, 128, 129, 0,
2570 0, 0, 0, 0, 0, 130, 0, 0, 0, 131,
2571 132, 133, 134, 135, 0, 0, 0, 0, 0, 0,
2572 136, 0, 0, 137, 138, 139, 140, 141, 142, 143,
2573 144, 145, 146, 147, 0, 148, 0, 0, 0, 0,
2574 0, 0, 149, 0, 0, 150, 0, 0, 0, 151,
2575 0, 0, 152, 153, 0, 154, 0, 0, 155, 0,
2576 156, 0, 0, 0, 157, 158, 0, 0, 0, 0,
2577 0, 398, 399, 400, 401, 163, 164, 0, 165, 166,
2578 167, 0, 168, 0, 0, 0, 0, 169, 0, 0,
2579 0, 0, 402, 0, 0, 0, 403, 404, 0, 0,
2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2581 0, 170, 171, 0, 172, 173, 0, 0, 0, 0,
2582 174, 175, 0, 0, 0, 0, 0, 0, 2036, 0,
2583 0, 0, 0, 0, 0, 2037, 0, 0, 0, 0,
2584 346, 347, 348, 406, 349, 350, 351, 352, 353, 354,
2585 355, 356, 357, 358, 359, 360, 0, 0, 361, 362,
2586 0, 0, 86, 87, 0, 0, 88, 363, 364, 0,
2587 0, 0, 0, 0, 0, 0, 0, 0, 89, 0,
2588 0, 90, 0, 0, 365, 366, 367, 368, 369, 370,
2589 371, 0, 91, 0, 0, 314, 315, 316, 0, 0,
2590 0, 0, 372, 92, 0, 0, 0, 198, 0, 0,
2591 199, 200, 0, 0, 0, 0, 0, 0, 0, 0,
2592 0, 93, 0, 0, 94, 0, 0, 95, 0, 0,
2593 0, 0, 0, 96, 0, 0, 0, 0, 97, 98,
2594 99, 0, 0, 0, 0, 0, 100, 0, 0, 101,
2595 0, 0, 374, 0, 0, 102, 375, 0, 103, 0,
2596 0, 104, 105, 106, 376, 107, 108, 0, 0, 0,
2597 0, 0, 0, 0, 377, 378, 379, 380, 381, 0,
2598 382, 383, 109, 110, 384, 385, 111, 386, 112, 113,
2599 114, 115, 116, 117, 118, 0, 119, 387, 120, 121,
2600 122, 123, 0, 124, 388, 125, 0, 0, 0, 0,
2601 0, 0, 126, 540, 0, 127, 0, 0, 1106, 0,
2602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2603 0, 0, 391, 392, 0, 0, 0, 0, 0, 0,
2604 0, 0, 393, 394, 395, 1107, 0, 0, 0, 397,
2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 128,
2606 129, 0, 0, 0, 0, 0, 0, 130, 0, 0,
2607 0, 131, 132, 133, 134, 135, 0, 0, 0, 0,
2608 0, 0, 136, 0, 0, 137, 138, 139, 140, 141,
2609 142, 143, 144, 145, 146, 147, 0, 1108, 0, 0,
2610 0, 0, 0, 0, 149, 0, 0, 150, 0, 0,
2611 0, 151, 0, 0, 152, 153, 0, 154, 0, 0,
2612 155, 0, 156, 0, 0, 0, 157, 158, 0, 0,
2613 0, 0, 0, 398, 399, 400, 401, 163, 164, 0,
2614 165, 166, 167, 0, 168, 0, 0, 0, 0, 169,
2615 0, 0, 0, 0, 402, 0, 0, 0, 403, 404,
2616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2617 0, 0, 0, 170, 171, 0, 172, 173, 0, 0,
2618 0, 0, 174, 175, 346, 347, 348, 0, 349, 350,
2619 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
2620 0, 0, 361, 362, 0, 406, 86, 87, 0, 0,
2621 88, 363, 364, 0, 0, 0, 0, 0, 0, 0,
2622 0, 0, 89, 0, 0, 90, 0, 0, 365, 366,
2623 367, 368, 369, 370, 371, 0, 91, 0, 0, 314,
2624 315, 316, 0, 0, 0, 0, 372, 92, 0, 0,
2625 193, 198, 0, 0, 199, 200, 0, 0, 0, 0,
2626 0, 0, 0, 0, 0, 93, 0, 0, 94, 0,
2627 0, 95, 0, 0, 0, 0, 0, 96, 0, 0,
2628 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
2629 100, 0, 0, 101, 0, 0, 374, 0, 0, 102,
2630 375, 0, 103, 0, 0, 104, 105, 106, 376, 107,
2631 108, 0, 0, 0, 0, 0, 0, 0, 377, 378,
2632 379, 380, 381, 0, 382, 383, 109, 110, 384, 385,
2633 111, 386, 112, 113, 114, 115, 116, 117, 118, 0,
2634 119, 387, 120, 121, 122, 123, 0, 124, 388, 125,
2635 0, 0, 0, 0, 0, 0, 126, 868, 0, 127,
2636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2637 0, 0, 0, 0, 0, 0, 391, 392, 0, 0,
2638 0, 0, 0, 0, 0, 0, 393, 394, 395, 0,
2639 0, 0, 0, 397, 0, 0, 0, 0, 0, 0,
2640 0, 0, 0, 128, 129, 0, 0, 0, 0, 0,
2641 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
2642 0, 0, 0, 0, 0, 0, 136, 0, 0, 137,
2643 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2644 0, 148, 0, 0, 0, 0, 0, 0, 149, 0,
2645 0, 150, 0, 0, 0, 151, 0, 0, 152, 153,
2646 0, 154, 0, 0, 155, 0, 156, 0, 0, 0,
2647 157, 158, 0, 0, 35, 0, 0, 398, 399, 400,
2648 401, 163, 164, 0, 165, 166, 167, 0, 168, 0,
2649 0, 0, 0, 169, 0, 0, 0, 0, 402, 0,
2650 0, 0, 403, 404, 0, 0, 0, 0, 0, 0,
2651 0, 0, 0, 0, 0, 0, 0, 170, 171, 0,
2652 172, 173, 0, 0, 0, 0, 174, 175, 346, 347,
2653 348, 0, 349, 350, 351, 352, 353, 354, 355, 356,
2654 357, 358, 359, 360, 0, 0, 361, 362, 0, 406,
2655 86, 87, 0, 0, 88, 363, 364, 0, 0, 0,
2656 0, 0, 0, 0, 0, 0, 89, 0, 0, 90,
2657 0, 0, 365, 366, 367, 368, 369, 370, 371, 0,
2658 91, 0, 0, 314, 315, 316, 0, 0, 0, 0,
2659 372, 92, 0, 0, 0, 198, 0, 0, 199, 200,
2660 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
2661 0, 0, 94, 0, 0, 95, 0, 0, 0, 0,
2662 0, 96, 0, 0, 0, 0, 97, 98, 99, 0,
2663 0, 0, 0, 0, 100, 0, 0, 101, 0, 0,
2664 374, 0, 0, 102, 375, 0, 103, 0, 0, 104,
2665 105, 106, 376, 107, 108, 0, 0, 0, 0, 0,
2666 0, 0, 377, 378, 379, 380, 381, 1720, 382, 383,
2667 109, 110, 384, 385, 111, 386, 112, 113, 114, 115,
2668 116, 117, 118, 998, 119, 387, 120, 121, 122, 123,
2669 0, 124, 388, 125, 0, 0, 0, 0, 0, 0,
2670 126, 540, 0, 127, 0, 0, 0, 0, 0, 0,
2671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2672 391, 392, 0, 0, 0, 0, 0, 0, 0, 0,
2673 393, 394, 395, 0, 0, 0, 0, 397, 0, 0,
2674 0, 0, 0, 0, 0, 0, 0, 128, 129, 0,
2675 0, 0, 0, 0, 0, 130, 0, 0, 0, 131,
2676 132, 133, 134, 135, 0, 0, 0, 0, 0, 0,
2677 136, 0, 0, 137, 138, 139, 140, 141, 142, 143,
2678 144, 145, 146, 147, 0, 148, 0, 0, 0, 0,
2679 0, 0, 149, 0, 0, 150, 0, 0, 0, 151,
2680 0, 0, 152, 153, 0, 154, 0, 0, 155, 0,
2681 156, 0, 0, 0, 157, 158, 0, 0, 0, 0,
2682 0, 398, 399, 400, 401, 163, 164, 0, 165, 166,
2683 167, 0, 168, 0, 0, 0, 0, 169, 0, 0,
2684 0, 0, 402, 0, 0, 0, 403, 404, 0, 0,
2685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686 0, 170, 171, 0, 172, 173, 0, 0, 0, 0,
2687 174, 175, 346, 347, 348, 0, 349, 350, 351, 352,
2688 353, 354, 355, 356, 357, 358, 359, 360, 0, 0,
2689 361, 362, 0, 406, 86, 87, 0, 0, 88, 363,
2690 364, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2691 89, 0, 0, 90, 0, 0, 365, 366, 367, 368,
2692 369, 370, 371, 0, 91, 0, 0, 314, 315, 316,
2693 0, 0, 0, 0, 372, 92, 0, 0, 0, 198,
2694 0, 0, 199, 200, 0, 0, 0, 0, 0, 0,
2695 0, 0, 0, 93, 0, 0, 94, 0, 0, 95,
2696 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
2697 97, 98, 99, 0, 0, 0, 0, 0, 100, 0,
2698 0, 101, 0, 0, 374, 0, 0, 102, 375, 0,
2699 103, 0, 0, 104, 105, 106, 376, 107, 108, 0,
2700 0, 0, 0, 0, 0, 0, 377, 378, 379, 380,
2701 381, 0, 382, 383, 109, 110, 384, 385, 111, 386,
2702 112, 113, 114, 115, 116, 117, 118, 0, 119, 387,
2703 120, 121, 122, 123, 0, 124, 388, 125, 0, 0,
2704 0, 0, 0, 0, 126, 540, 0, 127, 0, 0,
2705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2706 0, 0, 0, 0, 391, 392, 0, 0, 0, 0,
2707 0, 0, 0, 0, 393, 394, 395, 0, 0, 0,
2708 0, 397, 0, 0, 0, 0, 0, 0, 0, 0,
2709 0, 128, 129, 0, 0, 0, 0, 0, 0, 130,
2710 0, 0, 0, 131, 132, 133, 134, 135, 0, 0,
2711 0, 0, 0, 0, 136, 0, 0, 137, 138, 139,
2712 140, 141, 142, 143, 144, 145, 146, 147, 0, 148,
2713 0, 0, 0, 0, 0, 0, 149, 0, 0, 150,
2714 0, 0, 0, 151, 0, 0, 152, 153, 0, 154,
2715 0, 0, 155, 0, 156, 0, 0, 0, 157, 158,
2716 0, 0, 0, 0, 0, 398, 399, 400, 401, 163,
2717 164, 0, 165, 166, 167, 0, 168, 0, 0, 0,
2718 0, 169, 0, 0, 0, 0, 402, 0, 0, 0,
2719 403, 404, 0, 0, 0, 0, 0, 0, 0, 0,
2720 0, 0, 0, 0, 0, 170, 171, 0, 172, 173,
2721 0, 0, 0, 0, 174, 175, 0, 0, 0, 0,
2722 0, 0, 2036, 0, 0, 0, 0, 0, 0, 2132,
2723 0, 0, 0, 0, 346, 347, 348, 406, 349, 350,
2724 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
2725 0, 0, 361, 362, 0, 0, 86, 87, 0, 0,
2726 88, 363, 364, 0, 0, 0, 0, 0, 0, 0,
2727 0, 0, 89, 0, 0, 90, 0, 0, 365, 366,
2728 367, 368, 369, 370, 371, 0, 91, 0, 0, 314,
2729 315, 316, 0, 0, 0, 0, 372, 92, 0, 0,
2730 0, 198, 0, 0, 199, 200, 0, 0, 0, 0,
2731 0, 0, 0, 0, 0, 93, 0, 0, 94, 0,
2732 0, 95, 0, 0, 0, 0, 0, 96, 0, 0,
2733 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
2734 100, 0, 0, 101, 0, 0, 374, 0, 0, 102,
2735 375, 0, 103, 0, 0, 104, 105, 106, 376, 107,
2736 108, 0, 0, 0, 0, 0, 0, 0, 377, 378,
2737 379, 380, 381, 0, 382, 383, 109, 110, 384, 385,
2738 111, 386, 112, 113, 114, 115, 116, 117, 118, 0,
2739 119, 387, 120, 121, 122, 123, 0, 124, 388, 125,
2740 0, 0, 0, 0, 0, 0, 126, 540, 0, 127,
2741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2742 0, 0, 0, 0, 0, 0, 391, 392, 0, 0,
2743 0, 0, 0, 0, 0, 0, 393, 394, 395, 0,
2744 0, 0, 0, 397, 0, 0, 0, 0, 0, 0,
2745 0, 0, 0, 128, 129, 0, 0, 0, 0, 0,
2746 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
2747 0, 0, 0, 0, 0, 0, 136, 0, 0, 137,
2748 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2749 541, 148, 0, 0, 0, 0, 0, 0, 149, 0,
2750 0, 150, 0, 0, 0, 151, 0, 0, 152, 153,
2751 0, 154, 0, 0, 155, 0, 156, 0, 0, 0,
2752 157, 158, 0, 0, 0, 0, 0, 398, 399, 400,
2753 401, 163, 164, 0, 165, 166, 167, 0, 168, 0,
2754 0, 0, 0, 169, 0, 0, 0, 0, 402, 0,
2755 0, 0, 403, 404, 0, 0, 0, 0, 0, 0,
2756 0, 0, 0, 0, 0, 0, 0, 170, 171, 0,
2757 172, 173, 0, 0, 0, 0, 174, 175, 346, 347,
2758 348, 0, 349, 350, 351, 352, 353, 354, 355, 356,
2759 357, 358, 359, 360, 0, 0, 361, 362, 0, 406,
2760 86, 87, 0, 0, 88, 363, 364, 0, 0, 0,
2761 0, 0, 0, 0, 0, 0, 89, 0, 0, 90,
2762 0, 0, 365, 366, 367, 368, 369, 370, 371, 0,
2763 91, 0, 0, 314, 315, 316, 0, 0, 0, 0,
2764 372, 92, 0, 0, 0, 198, 0, 0, 199, 200,
2765 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
2766 0, 0, 94, 0, 0, 95, 0, 0, 0, 0,
2767 0, 96, 0, 0, 0, 0, 97, 98, 99, 0,
2768 0, 0, 0, 0, 100, 0, 0, 101, 0, 0,
2769 374, 0, 0, 102, 375, 0, 103, 0, 0, 104,
2770 105, 106, 376, 107, 108, 0, 0, 0, 0, 0,
2771 0, 0, 377, 378, 379, 380, 381, 0, 382, 383,
2772 109, 110, 384, 385, 111, 386, 112, 113, 114, 115,
2773 116, 117, 118, 0, 119, 387, 120, 121, 122, 123,
2774 0, 124, 388, 125, 0, 0, 0, 0, 0, 0,
2775 126, 540, 0, 127, 0, 0, 0, 0, 0, 0,
2776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777 391, 392, 0, 0, 0, 0, 0, 0, 0, 0,
2778 393, 394, 395, 0, 0, 0, 0, 397, 0, 0,
2779 0, 0, 0, 0, 0, 0, 0, 128, 129, 0,
2780 0, 0, 0, 0, 0, 130, 0, 0, 0, 131,
2781 132, 133, 134, 135, 0, 0, 0, 0, 0, 0,
2782 136, 0, 0, 137, 138, 139, 140, 141, 142, 143,
2783 144, 145, 146, 147, 0, 148, 0, 0, 0, 0,
2784 0, 0, 149, 0, 0, 150, 0, 0, 0, 151,
2785 0, 0, 152, 153, 0, 154, 0, 0, 155, 0,
2786 156, 0, 0, 0, 157, 158, 0, 0, 0, 0,
2787 0, 398, 399, 400, 401, 163, 164, 0, 165, 166,
2788 167, 0, 168, 0, 0, 0, 0, 169, 0, 0,
2789 0, 0, 402, 711, 0, 0, 403, 404, 0, 0,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 170, 171, 0, 172, 173, 0, 0, 0, 0,
2792 174, 175, 346, 347, 348, 0, 349, 350, 351, 352,
2793 353, 354, 355, 356, 357, 358, 359, 360, 0, 0,
2794 361, 362, 0, 406, 86, 87, 0, 0, 88, 363,
2795 364, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2796 89, 0, 0, 90, 0, 0, 365, 366, 367, 368,
2797 369, 370, 371, 0, 91, 0, 0, 314, 315, 316,
2798 0, 0, 0, 0, 372, 92, 0, 0, 0, 198,
2799 0, 0, 199, 200, 0, 0, 0, 0, 0, 0,
2800 0, 0, 0, 93, 0, 0, 94, 0, 0, 95,
2801 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
2802 97, 98, 99, 0, 0, 0, 0, 0, 100, 0,
2803 0, 101, 0, 0, 374, 0, 0, 102, 375, 0,
2804 103, 0, 0, 104, 105, 106, 376, 107, 108, 0,
2805 0, 0, 0, 0, 0, 0, 377, 378, 379, 380,
2806 381, 0, 382, 383, 109, 110, 384, 385, 111, 386,
2807 112, 113, 114, 115, 116, 117, 118, 0, 119, 387,
2808 120, 121, 122, 123, 0, 124, 388, 125, 0, 0,
2809 0, 0, 0, 0, 126, 540, 803, 127, 0, 0,
2810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2811 0, 0, 0, 0, 391, 392, 0, 0, 0, 0,
2812 0, 0, 0, 0, 393, 394, 395, 0, 0, 0,
2813 0, 397, 0, 0, 0, 0, 0, 0, 0, 0,
2814 0, 128, 129, 0, 0, 0, 0, 0, 0, 130,
2815 0, 0, 0, 131, 132, 133, 134, 135, 0, 0,
2816 0, 0, 0, 0, 136, 0, 0, 137, 138, 139,
2817 140, 141, 142, 143, 144, 145, 146, 147, 0, 148,
2818 0, 0, 0, 0, 0, 0, 149, 0, 0, 150,
2819 0, 0, 0, 151, 0, 0, 152, 153, 0, 154,
2820 0, 0, 155, 0, 156, 0, 0, 0, 157, 158,
2821 0, 0, 0, 0, 0, 398, 399, 400, 401, 163,
2822 164, 0, 165, 166, 167, 0, 168, 0, 0, 0,
2823 0, 169, 0, 0, 0, 0, 402, 0, 0, 0,
2824 403, 404, 0, 0, 0, 0, 0, 0, 0, 0,
2825 0, 0, 0, 0, 0, 170, 171, 0, 172, 173,
2826 0, 0, 0, 0, 174, 175, 346, 347, 348, 0,
2827 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
2828 359, 360, 0, 0, 361, 362, 0, 406, 86, 87,
2829 0, 0, 88, 363, 364, 0, 0, 0, 0, 0,
2830 0, 0, 0, 0, 89, 0, 0, 90, 0, 0,
2831 365, 366, 367, 368, 369, 370, 371, 0, 91, 0,
2832 0, 314, 315, 316, 0, 0, 0, 0, 372, 92,
2833 0, 0, 0, 198, 0, 0, 199, 200, 0, 0,
2834 0, 0, 0, 0, 0, 0, 0, 93, 0, 0,
2835 94, 0, 0, 95, 0, 0, 0, 0, 0, 96,
2836 0, 0, 0, 0, 97, 98, 99, 0, 0, 0,
2837 0, 0, 100, 0, 0, 101, 0, 0, 374, 0,
2838 0, 102, 375, 0, 103, 0, 0, 104, 105, 106,
2839 376, 107, 108, 0, 0, 0, 0, 0, 0, 0,
2840 377, 378, 379, 380, 381, 0, 382, 383, 109, 110,
2841 384, 385, 111, 386, 112, 113, 114, 115, 116, 117,
2842 118, 0, 119, 387, 120, 121, 122, 123, 0, 124,
2843 388, 125, 0, 0, 0, 0, 0, 0, 126, 540,
2844 1104, 127, 0, 0, 0, 0, 0, 0, 0, 0,
2845 0, 0, 0, 0, 0, 0, 0, 0, 391, 392,
2846 0, 0, 0, 0, 0, 0, 0, 0, 393, 394,
2847 395, 0, 0, 0, 0, 397, 0, 0, 0, 0,
2848 0, 0, 0, 0, 0, 128, 129, 0, 0, 0,
2849 0, 0, 0, 130, 0, 0, 0, 131, 132, 133,
2850 134, 135, 0, 0, 0, 0, 0, 0, 136, 0,
2851 0, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2852 146, 147, 0, 148, 0, 0, 0, 0, 0, 0,
2853 149, 0, 0, 150, 0, 0, 0, 151, 0, 0,
2854 152, 153, 0, 154, 0, 0, 155, 0, 156, 0,
2855 0, 0, 157, 158, 0, 0, 0, 0, 0, 398,
2856 399, 400, 401, 163, 164, 0, 165, 166, 167, 0,
2857 168, 0, 0, 0, 0, 169, 0, 0, 0, 0,
2858 402, 0, 0, 0, 403, 404, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
2860 171, 0, 172, 173, 0, 0, 0, 0, 174, 175,
2861 346, 347, 348, 0, 349, 350, 351, 352, 353, 354,
2862 355, 356, 357, 358, 359, 360, 0, 0, 361, 362,
2863 0, 406, 86, 87, 0, 0, 88, 363, 364, 0,
2864 0, 0, 0, 0, 0, 0, 0, 0, 89, 0,
2865 0, 90, 0, 0, 365, 366, 367, 368, 369, 370,
2866 371, 0, 91, 0, 0, 314, 315, 316, 0, 0,
2867 0, 0, 372, 92, 0, 0, 0, 198, 0, 0,
2868 199, 200, 0, 0, 0, 0, 0, 0, 0, 0,
2869 0, 93, 0, 0, 1519, 0, 0, 95, 0, 0,
2870 0, 0, 0, 96, 0, 0, 0, 0, 97, 98,
2871 99, 0, 0, 0, 0, 0, 100, 0, 0, 101,
2872 0, 0, 374, 0, 0, 102, 375, 0, 103, 0,
2873 0, 104, 105, 106, 376, 107, 108, 0, 0, 0,
2874 0, 0, 0, 0, 377, 378, 379, 380, 381, 0,
2875 382, 383, 109, 110, 384, 385, 111, 386, 112, 113,
2876 114, 115, 116, 117, 118, 0, 119, 387, 120, 121,
2877 122, 123, 0, 124, 388, 125, 0, 0, 0, 0,
2878 0, 0, 126, 540, 0, 127, 0, 0, 0, 0,
2879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2880 0, 0, 391, 392, 0, 0, 0, 0, 0, 0,
2881 0, 0, 393, 394, 395, 0, 0, 0, 0, 397,
2882 0, 0, 0, 0, 0, 0, 0, 0, 0, 128,
2883 129, 0, 0, 0, 0, 0, 0, 130, 0, 0,
2884 0, 131, 132, 133, 134, 135, 0, 0, 0, 0,
2885 0, 0, 136, 0, 0, 137, 138, 139, 140, 141,
2886 142, 143, 144, 145, 146, 147, 1520, 148, 0, 0,
2887 0, 0, 0, 0, 149, 0, 0, 150, 0, 0,
2888 0, 151, 0, 0, 152, 153, 0, 154, 0, 0,
2889 155, 0, 156, 0, 0, 0, 157, 158, 0, 0,
2890 0, 0, 0, 398, 399, 400, 401, 163, 164, 0,
2891 165, 166, 167, 0, 168, 0, 0, 0, 0, 169,
2892 0, 0, 0, 0, 402, 0, 0, 0, 403, 404,
2893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2894 0, 0, 0, 170, 171, 0, 172, 173, 0, 0,
2895 0, 0, 174, 175, 346, 347, 348, 0, 349, 350,
2896 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
2897 0, 0, 361, 362, 0, 406, 86, 87, 0, 0,
2898 88, 363, 364, 0, 0, 0, 0, 0, 0, 0,
2899 0, 0, 89, 0, 0, 90, 0, 0, 365, 366,
2900 367, 368, 369, 370, 371, 0, 91, 0, 0, 314,
2901 315, 316, 0, 0, 0, 0, 372, 92, 0, 0,
2902 0, 198, 0, 0, 199, 200, 0, 0, 0, 0,
2903 0, 0, 0, 0, 0, 93, 0, 0, 94, 0,
2904 0, 95, 0, 0, 0, 0, 0, 96, 0, 0,
2905 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
2906 100, 0, 0, 101, 0, 0, 374, 0, 0, 102,
2907 375, 0, 103, 0, 0, 104, 105, 106, 376, 107,
2908 108, 0, 0, 0, 0, 0, 0, 0, 377, 378,
2909 379, 380, 381, 0, 382, 383, 109, 110, 384, 385,
2910 111, 386, 112, 113, 114, 115, 116, 117, 118, 0,
2911 119, 387, 120, 121, 122, 123, 0, 124, 388, 125,
2912 0, 0, 0, 0, 0, 0, 126, 540, 0, 127,
2913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2914 0, 0, 0, 0, 0, 0, 391, 392, 0, 0,
2915 0, 0, 0, 0, 0, 0, 393, 394, 395, 0,
2916 0, 0, 0, 397, 0, 0, 0, 0, 0, 0,
2917 0, 0, 0, 128, 129, 0, 0, 0, 0, 0,
2918 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
2919 0, 0, 0, 0, 0, 0, 136, 0, 0, 137,
2920 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2921 0, 148, 0, 0, 0, 0, 0, 0, 149, 0,
2922 0, 150, 0, 0, 0, 151, 0, 0, 152, 153,
2923 0, 154, 0, 0, 155, 0, 156, 0, 0, 0,
2924 157, 158, 0, 0, 0, 0, 0, 398, 399, 400,
2925 401, 163, 164, 0, 165, 166, 167, 0, 168, 0,
2926 0, 0, 0, 169, 0, 0, 0, 0, 402, 1848,
2927 0, 0, 403, 404, 0, 0, 0, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 170, 171, 0,
2929 172, 173, 0, 0, 0, 0, 174, 175, 346, 347,
2930 348, 0, 349, 350, 351, 352, 353, 354, 355, 356,
2931 357, 358, 359, 360, 0, 0, 361, 362, 0, 406,
2932 86, 87, 0, 0, 88, 363, 364, 0, 0, 0,
2933 0, 0, 0, 0, 0, 0, 89, 0, 0, 90,
2934 0, 0, 365, 366, 367, 368, 369, 370, 371, 0,
2935 91, 0, 0, 314, 315, 316, 0, 0, 0, 0,
2936 372, 92, 0, 0, 0, 198, 0, 0, 199, 200,
2937 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
2938 0, 0, 94, 0, 0, 95, 0, 0, 0, 0,
2939 0, 96, 0, 0, 0, 0, 97, 98, 99, 0,
2940 0, 0, 0, 0, 100, 0, 0, 101, 0, 0,
2941 374, 0, 0, 102, 375, 0, 103, 0, 0, 104,
2942 105, 106, 376, 107, 108, 0, 0, 0, 0, 0,
2943 0, 0, 377, 378, 379, 380, 381, 1720, 382, 383,
2944 109, 110, 384, 385, 111, 386, 112, 113, 114, 115,
2945 116, 117, 118, 0, 119, 387, 120, 121, 122, 123,
2946 0, 124, 388, 125, 0, 0, 0, 0, 0, 0,
2947 126, 540, 0, 127, 0, 0, 0, 0, 0, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 391, 392, 0, 0, 0, 0, 0, 0, 0, 0,
2950 393, 394, 395, 0, 0, 0, 0, 397, 0, 0,
2951 0, 0, 0, 0, 0, 0, 0, 128, 129, 0,
2952 0, 0, 0, 0, 0, 130, 0, 0, 0, 131,
2953 132, 133, 134, 135, 0, 0, 0, 0, 0, 0,
2954 136, 0, 0, 137, 138, 139, 140, 141, 142, 143,
2955 144, 145, 146, 147, 0, 148, 0, 0, 0, 0,
2956 0, 0, 149, 0, 0, 150, 0, 0, 0, 151,
2957 0, 0, 152, 153, 0, 154, 0, 0, 155, 0,
2958 156, 0, 0, 0, 157, 158, 0, 0, 0, 0,
2959 0, 398, 399, 400, 401, 163, 164, 0, 165, 166,
2960 167, 0, 168, 0, 0, 0, 0, 169, 0, 0,
2961 0, 0, 402, 0, 0, 0, 403, 404, 0, 0,
2962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2963 0, 170, 171, 0, 172, 173, 0, 0, 0, 0,
2964 174, 175, 346, 347, 348, 0, 349, 350, 351, 352,
2965 353, 354, 355, 356, 357, 358, 359, 360, 0, 0,
2966 361, 362, 0, 406, 86, 87, 0, 0, 88, 363,
2967 364, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2968 89, 0, 0, 90, 0, 0, 365, 366, 367, 368,
2969 369, 370, 371, 0, 91, 0, 0, 314, 315, 316,
2970 0, 0, 0, 0, 372, 92, 0, 0, 0, 198,
2971 0, 0, 199, 200, 0, 0, 0, 0, 0, 0,
2972 0, 0, 0, 93, 0, 0, 94, 0, 0, 95,
2973 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
2974 97, 98, 99, 0, 0, 0, 0, 0, 100, 0,
2975 0, 101, 0, 0, 374, 0, 0, 102, 375, 0,
2976 103, 0, 0, 104, 105, 106, 376, 107, 108, 0,
2977 0, 0, 0, 0, 0, 0, 377, 378, 379, 380,
2978 381, 0, 382, 383, 109, 110, 384, 385, 111, 386,
2979 112, 113, 114, 115, 116, 117, 118, 0, 119, 387,
2980 120, 121, 122, 123, 0, 124, 388, 125, 0, 0,
2981 0, 0, 0, 0, 126, 540, 0, 127, 0, 0,
2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2983 0, 0, 0, 0, 391, 392, 0, 0, 0, 0,
2984 0, 0, 0, 0, 393, 394, 395, 0, 0, 0,
2985 0, 397, 0, 0, 0, 0, 0, 0, 0, 0,
2986 0, 128, 129, 0, 0, 0, 0, 0, 0, 130,
2987 0, 0, 0, 131, 132, 133, 134, 135, 0, 0,
2988 0, 0, 0, 0, 136, 0, 0, 137, 138, 139,
2989 140, 141, 142, 143, 144, 145, 146, 147, 0, 148,
2990 0, 0, 0, 0, 0, 0, 149, 0, 0, 150,
2991 0, 0, 0, 151, 0, 0, 152, 153, 0, 154,
2992 0, 0, 155, 0, 156, 0, 0, 0, 157, 158,
2993 0, 0, 0, 0, 0, 398, 399, 400, 401, 163,
2994 164, 0, 165, 166, 167, 0, 168, 0, 0, 0,
2995 0, 169, 0, 0, 0, 0, 402, 0, 0, 0,
2996 403, 404, 0, 0, 0, 0, 0, 0, 0, 0,
2997 0, 0, 0, 0, 0, 170, 171, 0, 172, 173,
2998 0, 0, 0, 0, 174, 175, 0, 0, 0, 0,
2999 0, 0, 0, 0, 0, 0, 0, 0, 2145, 0,
3000 0, 0, 0, 0, 346, 347, 348, 406, 349, 350,
3001 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
3002 0, 0, 361, 362, 0, 0, 86, 87, 0, 0,
3003 88, 363, 364, 0, 0, 0, 0, 0, 0, 0,
3004 0, 0, 89, 0, 0, 90, 0, 0, 365, 366,
3005 367, 368, 369, 370, 371, 0, 91, 0, 0, 314,
3006 315, 316, 0, 0, 0, 0, 372, 92, 0, 0,
3007 0, 198, 0, 0, 199, 200, 0, 0, 0, 0,
3008 0, 0, 0, 0, 0, 93, 0, 0, 94, 0,
3009 0, 95, 0, 0, 0, 0, 0, 96, 0, 0,
3010 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3011 100, 0, 0, 101, 0, 0, 374, 0, 0, 102,
3012 375, 0, 103, 0, 0, 104, 105, 106, 376, 107,
3013 108, 0, 0, 0, 0, 0, 0, 0, 377, 378,
3014 379, 380, 381, 0, 382, 383, 109, 110, 384, 385,
3015 111, 386, 112, 113, 114, 115, 116, 117, 118, 0,
3016 119, 387, 120, 121, 122, 123, 0, 124, 388, 125,
3017 0, 0, 0, 0, 0, 0, 126, 540, 0, 127,
3018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3019 0, 0, 0, 0, 0, 0, 391, 392, 0, 0,
3020 0, 0, 0, 0, 0, 0, 393, 394, 395, 0,
3021 0, 0, 0, 397, 0, 0, 0, 0, 0, 0,
3022 0, 0, 0, 128, 129, 0, 0, 0, 0, 0,
3023 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
3024 0, 0, 0, 0, 0, 0, 136, 0, 0, 137,
3025 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3026 0, 148, 0, 0, 0, 0, 0, 0, 149, 0,
3027 0, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3028 0, 154, 0, 0, 155, 0, 156, 0, 0, 0,
3029 157, 158, 0, 0, 0, 0, 0, 398, 399, 400,
3030 401, 163, 164, 0, 165, 166, 167, 0, 168, 0,
3031 0, 0, 0, 169, 0, 0, 0, 0, 402, 0,
3032 0, 0, 403, 404, 0, 0, 0, 0, 0, 0,
3033 0, 0, 0, 0, 0, 0, 0, 170, 171, 0,
3034 172, 173, 0, 0, 0, 0, 174, 175, 0, 0,
3035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3036 2277, 0, 0, 0, 0, 0, 346, 347, 348, 406,
3037 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
3038 359, 360, 0, 0, 361, 362, 0, 0, 86, 87,
3039 0, 0, 88, 363, 364, 0, 0, 0, 0, 0,
3040 0, 0, 0, 0, 89, 0, 0, 90, 0, 0,
3041 365, 366, 367, 368, 369, 370, 371, 0, 91, 0,
3042 0, 314, 315, 316, 0, 0, 0, 0, 372, 92,
3043 0, 0, 0, 198, 0, 0, 199, 200, 0, 0,
3044 0, 0, 0, 0, 0, 0, 0, 93, 0, 0,
3045 94, 0, 0, 95, 0, 0, 0, 0, 0, 96,
3046 0, 0, 0, 0, 97, 98, 99, 0, 0, 0,
3047 0, 0, 100, 0, 0, 101, 0, 0, 374, 0,
3048 0, 102, 375, 0, 103, 0, 0, 104, 105, 106,
3049 376, 107, 108, 0, 0, 0, 0, 0, 0, 0,
3050 377, 378, 379, 380, 381, 0, 382, 383, 109, 110,
3051 384, 385, 111, 386, 112, 113, 114, 115, 116, 117,
3052 118, 0, 119, 387, 120, 121, 122, 123, 0, 124,
3053 388, 125, 0, 0, 0, 0, 0, 0, 126, 540,
3054 0, 127, 0, 0, 0, 0, 0, 0, 0, 0,
3055 0, 0, 0, 0, 0, 0, 0, 0, 391, 392,
3056 0, 0, 0, 0, 0, 0, 0, 0, 393, 394,
3057 395, 0, 0, 0, 0, 397, 0, 0, 0, 0,
3058 0, 0, 0, 0, 0, 128, 129, 0, 0, 0,
3059 0, 0, 0, 130, 0, 0, 0, 131, 132, 133,
3060 134, 135, 0, 0, 0, 0, 0, 0, 136, 0,
3061 0, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3062 146, 147, 0, 148, 0, 0, 0, 0, 0, 0,
3063 149, 0, 0, 150, 0, 0, 0, 151, 0, 0,
3064 152, 153, 0, 154, 0, 0, 155, 0, 156, 0,
3065 0, 0, 157, 158, 0, 0, 0, 0, 0, 398,
3066 399, 400, 401, 163, 164, 0, 165, 166, 167, 0,
3067 168, 0, 0, 0, 0, 169, 0, 0, 0, 0,
3068 402, 0, 0, 0, 403, 404, 0, 0, 79, 80,
3069 81, 82, 83, 84, 85, 0, 0, 0, 0, 170,
3070 171, 0, 172, 173, 0, 0, 86, 87, 174, 175,
3071 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3072 0, 0, 89, 0, 0, 90, 0, 0, 0, 0,
3073 0, 406, 0, 0, 0, 0, 91, 0, 0, 0,
3074 0, 0, 0, 0, 0, 0, 0, 92, 3, 4,
3075 1667, 6, 0, 0, 0, 0, 0, 0, 0, 0,
3076 0, 0, 7, 8, 9, 1668, 0, 0, 94, 0,
3077 0, 1669, 0, 0, 0, 0, 0, 96, 0, 0,
3078 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3079 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3080 0, 0, 103, 0, 0, 104, 105, 106, 0, 107,
3081 108, 737, 0, 0, 0, 0, 0, 0, 0, 0,
3082 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3083 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3084 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3085 0, 0, 0, 0, 0, 0, 126, 0, 0, 127,
3086 0, 0, 0, 0, 0, 0, 0, 0, 0, 738,
3087 739, 740, 741, 742, 743, 744, 745, 746, 747, 0,
3088 0, 0, 748, 749, 750, 0, 751, 752, 753, 754,
3089 755, 756, 757, 758, 759, 760, 0, 0, 0, 0,
3090 0, 0, 0, 128, 129, 0, 15, 0, 0, 0,
3091 0, 130, 0, 0, 16, 131, 132, 133, 134, 135,
3092 0, 0, 0, 0, 0, 1670, 136, 18, 1671, 137,
3093 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3094 0, 148, 29, 30, 0, 0, 0, 0, 149, 31,
3095 32, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3096 0, 154, 0, 0, 155, 33, 156, 1672, 34, 0,
3097 157, 158, 0, 0, 0, 0, 0, 159, 160, 161,
3098 162, 163, 164, 0, 165, 166, 167, 0, 168, 0,
3099 0, 0, 0, 169, 0, 0, 0, 0, 1673, 0,
3100 0, 0, 0, 0, 1674, 0, 0, 0, 0, 1675,
3101 0, 36, 0, 0, 0, 0, 0, 170, 171, 0,
3102 172, 173, 0, 0, 0, 0, 174, 175, 79, 80,
3103 81, 82, 83, 84, 85, 0, 0, 1766, 0, 0,
3104 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
3105 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3106 0, 0, 89, 0, 0, 90, 0, 0, 0, 0,
3107 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
3108 0, 0, 0, 0, 0, 0, 0, 92, 3, 4,
3109 1667, 6, 0, 0, 0, 0, 0, 0, 0, 0,
3110 0, 0, 7, 8, 9, 1668, 0, 0, 94, 0,
3111 0, 1669, 0, 0, 0, 0, 0, 96, 0, 0,
3112 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3113 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3114 0, 0, 103, 0, 0, 104, 105, 106, 737, 107,
3115 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3116 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3117 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3118 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3119 0, 0, 0, 0, 0, 0, 126, 0, 0, 127,
3120 0, 0, 0, 0, 0, 0, 738, 739, 740, 741,
3121 742, 743, 744, 745, 746, 747, 0, 0, 0, 748,
3122 749, 750, 0, 751, 752, 753, 754, 755, 756, 757,
3123 758, 759, 760, 0, 0, 0, 0, 0, 0, 0,
3124 0, 0, 0, 128, 129, 0, 15, 0, 0, 0,
3125 0, 130, 0, 0, 16, 131, 132, 133, 134, 135,
3126 0, 0, 0, 0, 0, 1986, 136, 18, 1671, 1987,
3127 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3128 0, 148, 29, 30, 0, 0, 0, 0, 149, 31,
3129 32, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3130 0, 154, 0, 0, 155, 33, 156, 1672, 34, 0,
3131 157, 158, 0, 0, 0, 0, 0, 159, 160, 161,
3132 162, 163, 164, 0, 165, 166, 167, 0, 168, 0,
3133 1554, 0, 0, 169, 0, 0, 0, 0, 1673, 0,
3134 0, 0, 0, 0, 1674, 0, 0, 0, 0, 1675,
3135 0, 36, 0, 0, 0, 0, 0, 170, 171, 0,
3136 172, 173, 0, 0, 0, 0, 174, 175, 79, 80,
3137 81, 82, 83, 84, 85, 0, 0, 0, 0, 0,
3138 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
3139 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3140 0, 0, 89, 0, 0, 90, 0, 0, 0, 0,
3141 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
3142 0, 0, 0, 0, 0, 0, 0, 92, 3, 4,
3143 1667, 6, 0, 0, 0, 0, 0, 0, 0, 0,
3144 0, 0, 7, 8, 9, 1668, 0, 0, 94, 0,
3145 0, 1669, 0, 0, 0, 0, 0, 96, 0, 0,
3146 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3147 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3148 0, 0, 103, 0, 0, 104, 105, 106, 737, 107,
3149 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3150 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3151 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3152 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3153 0, 0, 0, 0, 0, 0, 126, 0, 0, 127,
3154 0, 0, 0, 0, 0, 0, 738, 739, 740, 741,
3155 742, 743, 744, 745, 746, 747, 0, 0, 0, 748,
3156 749, 750, 0, 751, 752, 753, 754, 755, 756, 757,
3157 758, 759, 760, 0, 0, 0, 0, 0, 0, 0,
3158 0, 0, 0, 128, 129, 0, 15, 0, 0, 0,
3159 0, 130, 0, 0, 16, 131, 132, 133, 134, 135,
3160 0, 0, 0, 0, 0, 0, 136, 18, 1671, 137,
3161 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3162 0, 148, 29, 30, 0, 0, 0, 0, 149, 31,
3163 32, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3164 0, 154, 0, 0, 155, 33, 156, 1672, 34, 0,
3165 157, 158, 0, 0, 0, 0, 0, 159, 160, 161,
3166 162, 163, 164, 0, 165, 166, 167, 0, 168, 0,
3167 2173, 0, 0, 169, 0, 0, 0, 0, 1673, 0,
3168 0, 0, 0, 0, 1674, 0, -384, 0, 0, 0,
3169 0, 36, 0, 0, 0, 0, 0, 170, 171, 0,
3170 172, 173, 0, 0, 0, 0, 174, 175, 79, 80,
3171 81, 82, 83, 84, 85, 0, 0, 0, 0, 0,
3172 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
3173 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3174 0, 0, 89, 0, 0, 90, 0, 0, 0, 0,
3175 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
3176 0, 0, 0, 0, 0, 0, 0, 92, 3, 4,
3177 1667, 6, 0, 0, 0, 0, 0, 0, 0, 0,
3178 0, 0, 7, 8, 9, 1668, 0, 0, 94, 0,
3179 0, 1669, 0, 0, 0, 0, 0, 96, 0, 0,
3180 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3181 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3182 0, 0, 103, 0, 0, 104, 105, 106, 737, 107,
3183 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3184 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3185 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3186 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3187 0, 0, 0, 0, 0, 0, 126, 0, 0, 127,
3188 0, 0, 0, 0, 0, 0, 738, 739, 740, 741,
3189 742, 743, 744, 745, 746, 747, 0, 0, 0, 748,
3190 749, 750, 0, 751, 752, 753, 754, 755, 756, 757,
3191 758, 759, 760, 0, 0, 0, 0, 0, 0, 0,
3192 0, 0, 0, 128, 129, 0, 15, 0, 0, 0,
3193 0, 130, 0, 0, 16, 131, 132, 133, 134, 135,
3194 0, 0, 0, 0, 0, 0, 136, 18, 1671, 137,
3195 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3196 0, 148, 29, 30, 0, 0, 0, 0, 149, 31,
3197 32, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3198 0, 154, 0, 0, 155, 33, 156, 1672, 34, 0,
3199 157, 158, 0, 0, 0, 0, 0, 159, 160, 161,
3200 162, 163, 164, 0, 165, 166, 167, 0, 168, 1028,
3201 0, 0, 0, 169, 0, 0, 0, 0, 1673, 0,
3202 0, 0, 0, 0, 1674, 0, 0, 0, 0, 0,
3203 2260, 36, 0, 0, 0, 0, 0, 170, 171, 0,
3204 172, 173, 0, 0, 0, 0, 174, 175, 79, 80,
3205 81, 82, 83, 84, 85, 0, 0, 0, 0, 0,
3206 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
3207 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3208 0, 0, 89, 0, 0, 90, 0, 0, 0, 0,
3209 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
3210 0, 0, 0, 0, 0, 0, 0, 92, 3, 4,
3211 1667, 6, 0, 0, 0, 0, 0, 0, 0, 0,
3212 0, 0, 7, 8, 9, 1668, 0, 0, 94, 0,
3213 0, 1669, 0, 0, 0, 0, 0, 96, 0, 0,
3214 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3215 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3216 0, 0, 103, 0, 0, 104, 105, 106, 737, 107,
3217 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3218 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3219 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3220 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3221 0, 0, 0, 0, 0, 0, 126, 0, 0, 127,
3222 0, 0, 0, 0, 0, 0, 738, 739, 740, 741,
3223 742, 743, 744, 745, 746, 747, 0, 0, 0, 748,
3224 749, 750, 0, 751, 752, 753, 754, 755, 756, 757,
3225 758, 759, 760, 0, 0, 0, 0, 0, 0, 0,
3226 0, 0, 0, 128, 129, 0, 15, 0, 0, 0,
3227 0, 130, 0, 0, 16, 131, 132, 133, 134, 135,
3228 0, 0, 0, 0, 0, 0, 136, 18, 1671, 137,
3229 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3230 0, 148, 29, 30, 0, 0, 0, 0, 149, 31,
3231 32, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3232 0, 154, 0, 0, 155, 33, 156, 1672, 34, 0,
3233 157, 158, 0, 0, 0, 0, 0, 159, 160, 161,
3234 162, 163, 164, 0, 165, 166, 167, 0, 168, 1978,
3235 0, 0, 0, 169, 0, 0, 0, 0, 1673, 0,
3236 0, 0, 0, 0, 1674, 0, 0, 0, 0, 0,
3237 0, 36, 0, 0, 0, 0, 0, 170, 171, 0,
3238 172, 173, 0, 0, 0, 0, 174, 175, 79, 80,
3239 81, 82, 83, 84, 85, 0, 0, 0, 0, 0,
3240 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
3241 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3242 0, 0, 89, 0, 0, 90, 0, 0, 0, 0,
3243 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
3244 0, 0, 0, 0, 0, 0, 0, 92, 3, 4,
3245 1667, 6, 0, 0, 0, 0, 0, 0, 0, 0,
3246 0, 0, 7, 8, 9, 1668, 0, 0, 94, 0,
3247 0, 1669, 0, 0, 0, 0, 0, 96, 0, 0,
3248 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3249 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3250 0, 0, 103, 0, 737, 104, 105, 106, 0, 107,
3251 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3252 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3253 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3254 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3255 0, 0, 0, 0, 0, 0, 126, 0, 0, 127,
3256 0, 0, 738, 739, 740, 741, 742, 743, 744, 745,
3257 746, 747, 0, 0, 0, 748, 749, 750, 0, 751,
3258 752, 753, 754, 755, 756, 757, 758, 759, 760, 0,
3259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3260 0, 0, 0, 128, 129, 0, 15, 0, 0, 0,
3261 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
3262 0, 0, 0, 0, 0, 0, 136, 18, 1671, 137,
3263 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3264 761, 148, 0, 30, 0, 0, 0, 0, 149, 31,
3265 32, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3266 0, 154, 0, 0, 155, 33, 156, 1672, 0, 0,
3267 157, 158, 0, 0, 0, 0, 0, 159, 160, 161,
3268 162, 163, 164, 0, 165, 166, 167, 0, 168, 0,
3269 0, 0, 0, 169, 0, 0, 0, 0, 1673, 0,
3270 0, 0, 0, 0, 1674, 0, 0, 0, 0, 2196,
3271 0, 36, 0, 0, 0, 0, 0, 170, 171, 0,
3272 172, 173, 0, 0, 0, 0, 174, 175, 79, 80,
3273 81, 82, 83, 84, 85, 0, 0, 0, 0, 0,
3274 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
3275 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3276 0, 0, 89, 0, 0, 90, 0, 0, 0, 0,
3277 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
3278 0, 0, 0, 0, 0, 0, 0, 92, 3, 4,
3279 1667, 6, 0, 0, 0, 0, 0, 0, 0, 0,
3280 0, 0, 7, 8, 9, 1668, 0, 0, 94, 0,
3281 0, 1669, 0, 0, 0, 0, 0, 96, 1364, 0,
3282 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3283 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3284 0, 0, 103, 0, 737, 104, 105, 106, 0, 107,
3285 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3286 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3287 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3288 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3289 0, 0, 0, 0, 0, 0, 126, 0, 0, 127,
3290 0, 0, 738, 739, 740, 741, 742, 743, 744, 745,
3291 746, 747, 0, 0, 0, 748, 749, 750, 0, 751,
3292 752, 753, 754, 755, 756, 757, 758, 759, 760, 0,
3293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3294 0, 0, 0, 128, 129, 0, 15, 0, 0, 0,
3295 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
3296 0, 0, 0, 0, 0, 0, 136, 18, 1671, 137,
3297 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3298 0, 148, 0, 30, 0, 0, 0, 0, 149, 31,
3299 32, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3300 0, 154, 0, 0, 155, 33, 156, 1672, 0, 0,
3301 157, 158, 0, 0, 0, 0, 0, 159, 160, 161,
3302 162, 163, 164, 0, 165, 166, 167, 0, 168, 0,
3303 0, 0, 0, 169, 0, 0, 0, 0, 1673, 0,
3304 0, 0, 0, 0, 1674, 0, 0, 0, 0, 0,
3305 2325, 36, 0, 0, 0, 0, 0, 170, 171, 0,
3306 172, 173, 0, 0, 0, 0, 174, 175, 79, 80,
3307 81, 82, 83, 84, 85, 0, 0, 0, 0, 0,
3308 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
3309 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3310 0, 0, 89, 0, 0, 90, 0, 0, 0, 0,
3311 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
3312 0, 0, 0, 0, 0, 0, 0, 92, 0, 0,
3313 193, 198, 0, 1039, 199, 200, 0, 0, 0, 0,
3314 0, 0, 0, 0, 0, 93, 0, 0, 94, 0,
3315 0, 95, 0, 0, 0, 0, 0, 96, 0, 0,
3316 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3317 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3318 0, 0, 103, 737, 0, 104, 105, 106, 0, 107,
3319 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3320 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3321 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3322 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3323 0, 0, 1310, 0, 0, 13, 126, 1331, 0, 127,
3324 0, 738, 739, 740, 741, 742, 743, 744, 745, 746,
3325 747, 0, 0, 0, 748, 749, 750, 0, 751, 752,
3326 753, 754, 755, 756, 757, 758, 759, 760, 0, 0,
3327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3328 0, 0, 0, 128, 129, 0, 0, 0, 0, 0,
3329 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
3330 0, 0, 0, 0, 0, 0, 136, 0, 0, 137,
3331 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3332 0, 148, 0, 0, 0, 0, 0, 0, 149, 0,
3333 0, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3334 0, 154, 0, 0, 155, 0, 156, 0, 0, 0,
3335 157, 158, 0, 0, 35, 0, 0, 159, 160, 161,
3336 162, 163, 164, 0, 165, 166, 167, 0, 168, 0,
3337 0, 0, 0, 169, 79, 80, 81, 82, 83, 84,
3338 85, 0, 0, 0, 0, 0, 0, 270, 0, 0,
3339 0, 0, 86, 87, 0, 0, 88, 170, 171, 0,
3340 172, 173, 0, 0, 0, 0, 174, 175, 89, 0,
3341 0, 90, 0, 0, 0, 0, 0, 0, 0, 0,
3342 0, 0, 91, 0, 0, 0, 0, 0, 272, 0,
3343 0, 0, 0, 92, 0, 0, 0, 0, 0, 0,
3344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3345 0, 93, 0, 0, 94, 0, 0, 95, 0, 0,
3346 0, 0, 0, 96, 0, 0, 0, 0, 97, 98,
3347 99, 0, 0, 0, 0, 0, 100, 0, 0, 101,
3348 0, 0, 0, 0, 0, 102, 0, 0, 103, 0,
3349 0, 104, 105, 106, 737, 107, 108, 0, 0, 0,
3350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3351 0, 0, 109, 110, 0, 0, 111, 0, 112, 113,
3352 114, 115, 116, 117, 118, 0, 119, 0, 120, 121,
3353 122, 123, 0, 124, 1719, 125, 0, 0, 0, 0,
3354 0, 0, 126, 0, 0, 127, 0, 0, 0, 0,
3355 0, 0, 738, 739, 740, 741, 742, 743, 744, 745,
3356 746, 747, 0, 0, 0, 748, 749, 750, 0, 751,
3357 752, 753, 754, 755, 756, 757, 758, 759, 760, 0,
3358 0, 0, 0, 0, 0, 0, 0, 0, 0, 325,
3359 326, 278, 279, 280, 281, 0, 0, 130, 0, 0,
3360 0, 131, 132, 133, 134, 135, 0, 0, 0, 0,
3361 0, 0, 136, 0, 0, 137, 138, 139, 140, 141,
3362 142, 143, 144, 145, 146, 147, 0, 148, 0, 0,
3363 0, 0, 0, 0, 149, 0, 0, 150, 0, 0,
3364 0, 151, 0, 0, 152, 153, 0, 154, 0, 0,
3365 155, 0, 156, 0, 0, 0, 327, 158, 0, 0,
3366 0, 0, 0, 159, 160, 161, 162, 163, 164, 0,
3367 165, 166, 167, 0, 168, 0, 0, 0, 0, 169,
3368 79, 80, 81, 82, 83, 84, 85, 0, 0, 0,
3369 0, 0, 0, 0, 0, 0, 0, 0, 86, 87,
3370 0, 0, 88, 170, 171, 0, 172, 173, 0, 0,
3371 0, 0, 174, 175, 89, 0, 0, 90, 0, 0,
3372 0, 0, 0, 0, 0, 0, 0, 0, 91, 0,
3373 0, 0, 0, 0, 0, 0, 0, 0, 0, 92,
3374 0, 0, 0, 198, 0, 1039, 199, 200, 0, 0,
3375 0, 0, 0, 0, 0, 0, 0, 93, 0, 0,
3376 94, 0, 0, 95, 0, 0, 0, 0, 0, 96,
3377 0, 0, 0, 0, 97, 98, 99, 0, 0, 0,
3378 0, 0, 100, 0, 0, 101, 0, 0, 0, 0,
3379 0, 102, 0, 0, 103, 0, 0, 104, 105, 106,
3380 737, 107, 108, 0, 0, 0, 0, 0, 0, 0,
3381 0, 0, 0, 0, 0, 0, 0, 0, 109, 110,
3382 0, 0, 111, 0, 112, 113, 114, 115, 116, 117,
3383 118, 0, 119, 0, 120, 121, 122, 123, 0, 124,
3384 1765, 125, 0, 0, 0, 0, 0, 0, 126, 1040,
3385 0, 127, 0, 0, 0, 0, 0, 0, 738, 739,
3386 740, 741, 742, 743, 744, 745, 746, 747, 0, 0,
3387 0, 748, 749, 750, 0, 751, 752, 753, 754, 755,
3388 756, 757, 758, 759, 760, 0, 0, 0, 0, 0,
3389 0, 0, 0, 0, 0, 128, 129, 0, 0, 0,
3390 0, 0, 0, 130, 0, 0, 0, 131, 132, 133,
3391 134, 135, 0, 0, 0, 0, 0, 0, 136, 0,
3392 0, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3393 146, 147, 0, 148, 0, 0, 0, 0, 0, 0,
3394 149, 0, 0, 150, 0, 0, 0, 151, 0, 0,
3395 152, 153, 0, 154, 0, 0, 155, 0, 156, 0,
3396 0, 0, 157, 158, 0, 0, 0, 0, 0, 159,
3397 160, 161, 162, 163, 164, 0, 165, 166, 167, 0,
3398 168, 0, 0, 0, 0, 169, 79, 80, 81, 82,
3399 83, 84, 85, 0, 0, 0, 0, 0, 0, 0,
3400 0, 0, 0, 0, 86, 87, 0, 0, 88, 170,
3401 171, 0, 172, 173, 0, 0, 0, 0, 174, 175,
3402 89, 0, 0, 90, 0, 0, 0, 0, 0, 0,
3403 0, 0, 0, 0, 91, 0, 0, 314, 315, 316,
3404 0, 0, 0, 0, 0, 317, 0, 0, 0, 0,
3405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3406 0, 0, 0, 93, 0, 0, 94, 0, 0, 95,
3407 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
3408 97, 98, 99, 0, 0, 0, 0, 0, 100, 0,
3409 0, 101, 0, 0, 0, 0, 0, 102, 0, 0,
3410 103, 0, 0, 104, 105, 106, 737, 107, 108, 0,
3411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3412 0, 0, 0, 0, 109, 110, 0, 0, 111, 0,
3413 112, 113, 114, 115, 116, 117, 118, 0, 119, 0,
3414 120, 121, 122, 123, 0, 124, 1768, 125, 0, 0,
3415 0, 0, 0, 0, 126, 318, 0, 127, 0, 0,
3416 0, 0, 0, 0, 738, 739, 740, 741, 742, 743,
3417 744, 745, 746, 747, 0, 0, 0, 748, 749, 750,
3418 0, 751, 752, 753, 754, 755, 756, 757, 758, 759,
3419 760, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3420 0, 128, 129, 0, 0, 0, 0, 0, 0, 130,
3421 0, 0, 0, 131, 132, 133, 134, 135, 0, 0,
3422 0, 0, 0, 0, 136, 0, 0, 137, 138, 139,
3423 140, 141, 142, 143, 144, 145, 146, 147, 0, 148,
3424 0, 0, 0, 0, 0, 0, 149, 0, 0, 319,
3425 0, 0, 0, 151, 0, 0, 152, 153, 0, 154,
3426 0, 0, 320, 0, 156, 0, 0, 0, 157, 158,
3427 0, 0, 0, 0, 0, 159, 321, 161, 162, 163,
3428 164, 0, 165, 166, 167, 0, 168, 0, 0, 0,
3429 0, 169, 79, 80, 81, 82, 83, 84, 85, 0,
3430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3431 86, 87, 0, 0, 88, 170, 171, 0, 172, 173,
3432 0, 0, 0, 0, 174, 175, 89, 0, 0, 90,
3433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3434 91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3435 0, 92, 0, 0, 0, 0, 0, 0, 0, 0,
3436 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
3437 0, 0, 94, 0, 0, 95, 0, 0, 0, 0,
3438 0, 96, 0, 0, 0, 0, 97, 98, 99, 0,
3439 0, 0, 0, 0, 100, 0, 0, 101, 0, 0,
3440 0, 0, 0, 102, 0, 0, 103, 0, 0, 104,
3441 105, 106, 737, 107, 108, 0, 0, 0, 0, 0,
3442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3443 109, 110, 0, 0, 111, 0, 112, 113, 114, 115,
3444 116, 117, 118, 0, 119, 0, 120, 121, 122, 123,
3445 0, 124, 2028, 823, 0, 0, 0, 0, 0, 0,
3446 126, 0, 0, 127, 0, 0, 0, 0, 0, 0,
3447 738, 739, 740, 741, 742, 743, 744, 745, 746, 747,
3448 0, 0, 0, 748, 749, 750, 0, 751, 752, 753,
3449 754, 755, 756, 757, 758, 759, 760, 0, 0, 0,
3450 0, 0, 0, 0, 0, 0, 0, 128, 129, 0,
3451 0, 0, 0, 0, 0, 130, 0, 0, 0, 131,
3452 132, 133, 134, 135, 493, 494, 495, 496, 0, 0,
3453 136, 0, 0, 137, 138, 139, 140, 141, 142, 143,
3454 144, 145, 146, 147, 0, 148, 0, 0, 0, 0,
3455 0, 0, 149, 0, 0, 150, 0, 0, 0, 151,
3456 0, 0, 152, 153, 0, 154, 0, 0, 155, 0,
3457 156, 0, 0, 0, 824, 158, 0, 0, 0, 0,
3458 0, 159, 160, 161, 162, 163, 164, 0, 165, 166,
3459 167, 0, 168, 0, 0, 0, 0, 169, 79, 80,
3460 81, 82, 1113, 1114, 1115, 0, 0, 0, 0, 0,
3461 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
3462 88, 170, 171, 0, 172, 173, 0, 0, 0, 0,
3463 174, 175, 89, 0, 0, 90, 0, 0, 0, 0,
3464 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
3465 0, 0, 0, 0, 0, 0, 0, 92, 0, 0,
3466 0, 198, 0, 0, 199, 200, 0, 0, 0, 0,
3467 0, 0, 0, 0, 0, 93, 0, 0, 94, 0,
3468 0, 95, 0, 0, 0, 0, 0, 96, 0, 0,
3469 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3470 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3471 0, 0, 103, 0, 0, 104, 105, 106, 0, 107,
3472 108, 0, 0, 0, 0, 737, 0, 0, 0, 0,
3473 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3474 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3475 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3476 0, 0, 0, 0, 0, 2029, 126, 0, 0, 127,
3477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3478 0, 0, 0, 738, 739, 740, 741, 742, 743, 744,
3479 745, 746, 747, 0, 0, 0, 748, 749, 750, 1116,
3480 751, 752, 753, 754, 755, 756, 757, 758, 759, 760,
3481 0, 0, 0, 128, 129, 0, 0, 0, 0, 0,
3482 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
3483 0, 0, 0, 0, 0, 0, 136, 0, 0, 137,
3484 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3485 0, 148, 0, 0, 0, 0, 0, 0, 149, 0,
3486 0, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3487 0, 154, 0, 0, 155, 0, 156, 0, 0, 0,
3488 157, 158, 0, 0, 0, 0, 0, 159, 160, 161,
3489 162, 163, 164, 0, 165, 166, 167, 0, 168, 0,
3490 0, 0, 0, 169, 79, 80, 81, 82, 83, 84,
3491 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3492 0, 0, 86, 87, 0, 0, 88, 170, 171, 0,
3493 172, 173, 0, 0, 0, 0, 174, 175, 89, 0,
3494 0, 90, 0, 0, 0, 0, 0, 0, 0, 0,
3495 0, 0, 91, 0, 0, 0, 0, 0, 0, 0,
3496 0, 0, 0, 92, 0, 0, 0, 198, 0, 0,
3497 199, 200, 0, 0, 0, 0, 0, 0, 0, 0,
3498 0, 93, 0, 0, 94, 0, 0, 95, 0, 0,
3499 0, 0, 0, 96, 0, 0, 0, 0, 97, 98,
3500 99, 0, 0, 0, 0, 0, 100, 0, 0, 101,
3501 0, 0, 0, 0, 0, 102, 0, 0, 103, 0,
3502 0, 104, 105, 106, 737, 107, 108, 0, 0, 0,
3503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3504 0, 0, 109, 110, 0, 0, 111, 0, 112, 113,
3505 114, 115, 116, 117, 118, 0, 119, 0, 120, 121,
3506 122, 123, 0, 124, 2030, 125, 0, 0, 0, 0,
3507 0, 0, 126, 674, 0, 127, 0, 0, 0, 0,
3508 0, 0, 738, 739, 740, 741, 742, 743, 744, 745,
3509 746, 747, 0, 0, 0, 748, 749, 750, 0, 751,
3510 752, 753, 754, 755, 756, 757, 758, 759, 760, 0,
3511 0, 0, 0, 0, 0, 0, 0, 0, 0, 128,
3512 129, 0, 0, 0, 0, 0, 0, 130, 0, 0,
3513 0, 131, 132, 133, 134, 135, 0, 0, 0, 0,
3514 0, 0, 136, 0, 0, 137, 138, 139, 140, 141,
3515 142, 143, 144, 145, 146, 147, 0, 148, 0, 0,
3516 0, 0, 0, 0, 149, 0, 0, 150, 0, 0,
3517 0, 151, 0, 0, 152, 153, 0, 154, 0, 0,
3518 155, 0, 156, 0, 0, 0, 157, 158, 0, 0,
3519 0, 0, 0, 159, 160, 161, 162, 163, 164, 0,
3520 165, 166, 167, 0, 168, 0, 0, 0, 0, 169,
3521 79, 80, 81, 82, 1113, 1114, 1115, 0, 0, 0,
3522 0, 0, 0, 0, 0, 0, 0, 0, 86, 87,
3523 0, 0, 88, 170, 171, 0, 172, 173, 0, 0,
3524 0, 0, 174, 175, 89, 0, 0, 90, 0, 0,
3525 0, 0, 0, 0, 0, 0, 0, 0, 91, 0,
3526 0, 0, 0, 0, 0, 0, 0, 0, 0, 92,
3527 0, 0, 0, 198, 0, 0, 199, 200, 0, 0,
3528 0, 0, 0, 0, 0, 0, 0, 93, 0, 0,
3529 94, 0, 0, 95, 0, 0, 0, 0, 0, 96,
3530 0, 0, 0, 0, 97, 98, 99, 0, 0, 0,
3531 0, 0, 100, 0, 0, 101, 0, 0, 0, 0,
3532 0, 102, 0, 0, 103, 737, 0, 104, 105, 106,
3533 0, 107, 108, 0, 0, 0, 0, 0, 0, 0,
3534 0, 0, 0, 0, 0, 0, 0, 0, 109, 110,
3535 0, 0, 111, 0, 112, 113, 114, 115, 116, 117,
3536 118, 0, 119, 0, 120, 121, 122, 123, 0, 124,
3537 0, 125, 0, 0, 0, 0, 0, 0, 126, 0,
3538 0, 127, 0, 738, 739, 740, 741, 742, 743, 744,
3539 745, 746, 747, 0, 0, 0, 748, 749, 750, 0,
3540 751, 752, 753, 754, 755, 756, 757, 758, 759, 760,
3541 0, 1589, 0, 0, 0, 0, 0, 0, 0, 0,
3542 0, 0, 0, 0, 0, 128, 129, 0, 0, 0,
3543 0, 0, 0, 130, 0, 0, 0, 131, 132, 133,
3544 134, 135, 0, 0, 0, 0, 0, 0, 136, 0,
3545 0, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3546 146, 147, 0, 148, 0, 0, 0, 0, 0, 0,
3547 149, 0, 0, 150, 0, 0, 0, 151, 0, 0,
3548 152, 153, 0, 154, 0, 0, 155, 0, 156, 0,
3549 0, 0, 157, 158, 0, 0, 0, 0, 0, 159,
3550 160, 161, 162, 163, 164, 0, 165, 166, 167, 0,
3551 168, 0, 0, 0, 0, 169, 79, 80, 81, 82,
3552 83, 84, 85, 0, 0, 0, 0, 0, 0, 0,
3553 0, 0, 0, 0, 86, 87, 0, 0, 88, 170,
3554 171, 0, 172, 173, 0, 0, 0, 0, 174, 175,
3555 89, 0, 0, 90, 0, 0, 0, 0, 0, 0,
3556 0, 0, 0, 0, 91, 0, 0, 0, 0, 0,
3557 0, 0, 0, 0, 0, 92, 0, 0, 0, 198,
3558 0, 0, 199, 200, 0, 0, 0, 0, 0, 0,
3559 0, 0, 0, 93, 0, 0, 94, 0, 0, 95,
3560 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
3561 97, 98, 99, 0, 0, 0, 0, 0, 100, 0,
3562 0, 101, 0, 0, 0, 0, 0, 102, 0, 0,
3563 103, 0, 0, 104, 105, 106, 0, 107, 108, 0,
3564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3565 0, 0, 0, 0, 109, 110, 0, 0, 111, 0,
3566 112, 113, 114, 115, 116, 117, 118, 0, 119, 0,
3567 120, 121, 122, 123, 0, 124, 0, 125, 0, 0,
3568 0, 0, 0, 0, 126, 0, 0, 127, 0, 0,
3569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3573 0, 128, 129, 0, 0, 0, 0, 0, 0, 130,
3574 0, 0, 0, 131, 132, 133, 134, 135, 0, 0,
3575 0, 0, 0, 0, 136, 0, 0, 137, 138, 139,
3576 140, 141, 142, 143, 144, 145, 146, 147, 0, 148,
3577 0, 0, 0, 0, 0, 0, 149, 0, 0, 150,
3578 0, 0, 0, 151, 0, 0, 152, 153, 0, 154,
3579 0, 0, 155, 0, 156, 0, 0, 0, 157, 158,
3580 0, 0, 0, 0, 0, 159, 160, 161, 162, 163,
3581 164, 0, 165, 166, 167, 0, 168, 0, 0, 0,
3582 0, 169, 79, 80, 81, 82, 83, 84, 85, 0,
3583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3584 86, 87, 0, 0, 88, 170, 171, 0, 172, 173,
3585 0, 0, 0, 0, 174, 175, 89, 0, 0, 90,
3586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3587 91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3588 0, 92, 0, 0, 193, 0, 0, 0, 0, 0,
3589 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
3590 0, 0, 94, 0, 0, 95, 0, 0, 0, 0,
3591 0, 96, 0, 0, 0, 0, 97, 98, 99, 0,
3592 0, 0, 0, 0, 100, 0, 0, 101, 0, 0,
3593 0, 0, 0, 102, 0, 0, 103, 0, 0, 104,
3594 105, 106, 0, 107, 108, 0, 0, 0, 0, 0,
3595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3596 109, 110, 0, 0, 111, 0, 112, 113, 114, 115,
3597 116, 117, 118, 0, 119, 0, 120, 121, 122, 123,
3598 0, 124, 0, 125, 0, 0, 0, 0, 0, 0,
3599 126, 14, 0, 127, 0, 0, 0, 0, 0, 0,
3600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3603 0, 0, 0, 0, 0, 0, 0, 128, 129, 0,
3604 0, 0, 0, 0, 0, 130, 0, 0, 0, 131,
3605 132, 133, 134, 135, 0, 0, 0, 0, 0, 0,
3606 136, 0, 0, 137, 138, 139, 140, 141, 142, 143,
3607 144, 145, 146, 147, 0, 148, 0, 0, 0, 0,
3608 0, 0, 149, 0, 0, 150, 0, 0, 0, 151,
3609 0, 0, 152, 153, 0, 154, 0, 0, 155, 0,
3610 156, 0, 0, 0, 157, 158, 0, 0, 35, 0,
3611 0, 159, 160, 161, 162, 163, 164, 0, 165, 166,
3612 167, 0, 168, 0, 0, 0, 0, 169, 79, 80,
3613 81, 82, 1113, 1114, 1115, 0, 0, 0, 0, 0,
3614 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
3615 88, 170, 171, 0, 172, 173, 0, 0, 0, 0,
3616 174, 175, 89, 0, 0, 90, 0, 0, 0, 0,
3617 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
3618 0, 0, 0, 0, 0, 0, 0, 92, 0, 0,
3619 0, 198, 0, 0, 199, 200, 0, 0, 0, 0,
3620 0, 0, 0, 0, 0, 93, 0, 0, 94, 0,
3621 0, 95, 0, 0, 0, 0, 0, 96, 0, 0,
3622 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3623 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3624 0, 0, 103, 0, 0, 104, 105, 106, 0, 107,
3625 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3626 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3627 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3628 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3629 0, 0, 0, 0, 0, 0, 126, 0, 0, 127,
3630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3634 0, 0, 0, 128, 129, 0, 0, 0, 0, 0,
3635 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
3636 0, 0, 0, 0, 0, 0, 136, 0, 0, 137,
3637 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3638 0, 148, 0, 0, 0, 0, 0, 0, 149, 0,
3639 0, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3640 0, 154, 0, 0, 155, 0, 156, 0, 0, 0,
3641 157, 158, 0, 0, 0, 0, 0, 159, 160, 161,
3642 162, 163, 164, 0, 165, 166, 167, 0, 168, 0,
3643 0, 0, 0, 169, 79, 80, 81, 82, 83, 84,
3644 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3645 0, 0, 86, 87, 0, 0, 88, 170, 171, 0,
3646 172, 173, 0, 0, 0, 0, 174, 175, 89, 0,
3647 0, 90, 0, 0, 0, 0, 0, 0, 0, 0,
3648 0, 0, 91, 0, 0, 0, 0, 0, 0, 0,
3649 0, 0, 0, 92, 0, 0, 0, 0, 0, 0,
3650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3651 0, 93, 0, 0, 94, 0, 0, 95, 0, 0,
3652 0, 0, 0, 96, 0, 0, 0, 0, 97, 98,
3653 99, 0, 0, 0, 0, 0, 100, 0, 0, 101,
3654 0, 0, 0, 0, 0, 102, 0, 0, 103, 0,
3655 0, 104, 105, 106, 0, 107, 108, 0, 0, 0,
3656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3657 0, 0, 109, 110, 0, 0, 111, 0, 112, 113,
3658 114, 115, 116, 117, 118, 0, 119, 0, 120, 121,
3659 122, 123, 0, 124, 0, 125, 0, 0, 0, 0,
3660 0, 0, 126, 0, 0, 127, 0, 0, 0, 0,
3661 0, 0, 0, 0, 0, 1452, 0, 0, 0, 0,
3662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3664 0, 0, 0, 0, 0, 0, 0, 0, 0, 128,
3665 129, 0, 0, 0, 0, 0, 0, 130, 0, 1453,
3666 0, 131, 132, 133, 134, 135, 0, 0, 0, 0,
3667 0, 0, 136, 0, 0, 137, 138, 139, 140, 141,
3668 142, 143, 144, 145, 146, 147, 0, 148, 0, 0,
3669 0, 0, 0, 0, 149, 0, 0, 150, 0, 0,
3670 0, 151, 0, 0, 152, 153, 0, 154, 0, 0,
3671 155, 0, 156, 0, 0, 0, 157, 158, 0, 0,
3672 0, 0, 0, 159, 160, 161, 162, 163, 164, 0,
3673 165, 166, 167, 0, 168, 0, 0, 0, 0, 169,
3674 79, 80, 81, 82, 83, 84, 85, 0, 0, 0,
3675 0, 0, 0, 0, 0, 0, 0, 0, 86, 87,
3676 0, 0, 88, 170, 171, 0, 172, 173, 0, 0,
3677 0, 0, 174, 175, 89, 0, 0, 90, 0, 0,
3678 0, 0, 0, 0, 0, 0, 0, 0, 91, 0,
3679 0, 0, 0, 0, 0, 0, 0, 0, 0, 92,
3680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3681 0, 0, 0, 0, 0, 0, 0, 93, 0, 0,
3682 94, 0, 0, 95, 0, 0, 0, 0, 0, 96,
3683 0, 0, 0, 0, 97, 98, 99, 0, 0, 0,
3684 0, 0, 100, 0, 0, 101, 0, 0, 0, 0,
3685 0, 102, 0, 0, 103, 0, 0, 104, 105, 106,
3686 0, 107, 108, 0, 0, 0, 0, 0, 0, 0,
3687 0, 0, 0, 0, 0, 0, 0, 0, 109, 110,
3688 0, 0, 111, 0, 112, 113, 114, 115, 116, 117,
3689 118, 0, 119, 0, 120, 121, 122, 123, 0, 124,
3690 0, 125, 0, 0, 0, 0, 0, 0, 126, 0,
3691 0, 127, 0, 0, 0, 0, 0, 0, 0, 0,
3692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3695 0, 0, 0, 0, 0, 128, 129, 0, 0, 0,
3696 0, 0, 0, 130, 0, 0, 0, 131, 132, 133,
3697 134, 135, 0, 0, 0, 0, 0, 0, 136, 0,
3698 0, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3699 146, 147, 0, 148, 0, 0, 0, 0, 0, 0,
3700 149, 0, 0, 150, 0, 0, 0, 151, 0, 0,
3701 152, 153, 0, 154, 0, 0, 155, 534, 156, 0,
3702 0, 0, 157, 158, 0, 0, 0, 0, 0, 159,
3703 160, 161, 162, 163, 164, 0, 165, 166, 167, 0,
3704 168, 0, 0, 0, 0, 169, 79, 80, 81, 82,
3705 83, 84, 85, 0, 0, 0, 0, 0, 0, 0,
3706 0, 0, 0, 0, 86, 87, 0, 0, 88, 170,
3707 171, 0, 172, 173, 0, 0, 0, 0, 174, 175,
3708 89, 0, 0, 90, 0, 0, 0, 0, 0, 0,
3709 0, 0, 0, 0, 91, 0, 0, 0, 0, 0,
3710 0, 0, 0, 0, 0, 92, 0, 0, 0, 0,
3711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3712 0, 0, 0, 93, 0, 0, 94, 0, 0, 95,
3713 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
3714 97, 98, 99, 0, 0, 0, 0, 0, 100, 0,
3715 0, 101, 0, 0, 0, 0, 0, 102, 0, 0,
3716 103, 0, 0, 104, 105, 106, 0, 107, 108, 0,
3717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3718 0, 0, 0, 0, 109, 110, 0, 0, 111, 0,
3719 112, 113, 114, 115, 116, 117, 118, 0, 119, 0,
3720 120, 121, 122, 123, 0, 124, 0, 125, 0, 0,
3721 0, 0, 0, 0, 126, 0, 0, 127, 0, 0,
3722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3723 723, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3726 0, 128, 129, 0, 0, 0, 0, 0, 0, 130,
3727 0, 0, 0, 131, 132, 133, 134, 135, 0, 0,
3728 0, 0, 0, 0, 136, 0, 0, 137, 138, 139,
3729 140, 141, 142, 143, 144, 145, 146, 147, 0, 148,
3730 0, 0, 0, 0, 0, 0, 149, 0, 0, 150,
3731 0, 0, 0, 151, 0, 0, 152, 153, 0, 154,
3732 0, 0, 155, 0, 156, 0, 0, 0, 157, 158,
3733 0, 0, 0, 0, 0, 159, 160, 161, 162, 163,
3734 164, 0, 165, 166, 167, 0, 168, 0, 0, 0,
3735 0, 169, 79, 80, 81, 82, 83, 84, 85, 0,
3736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3737 86, 87, 0, 0, 88, 170, 171, 0, 172, 342,
3738 0, 0, 0, 0, 174, 175, 89, 0, 0, 90,
3739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3740 91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3741 0, 92, 0, 0, 0, 0, 0, 0, 0, 0,
3742 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
3743 0, 0, 94, 0, 0, 95, 0, 0, 0, 0,
3744 0, 96, 0, 0, 0, 0, 97, 98, 99, 0,
3745 0, 0, 0, 0, 100, 0, 0, 101, 0, 0,
3746 0, 0, 0, 102, 0, 0, 103, 0, 0, 104,
3747 105, 106, 0, 107, 108, 0, 0, 0, 0, 0,
3748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3749 109, 110, 0, 0, 111, 0, 112, 113, 114, 115,
3750 116, 117, 118, 0, 119, 0, 120, 121, 122, 123,
3751 0, 124, 0, 125, 0, 0, 0, 0, 0, 0,
3752 126, 318, 0, 127, 0, 0, 0, 0, 0, 0,
3753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3756 0, 0, 0, 0, 0, 0, 0, 128, 129, 0,
3757 0, 0, 0, 0, 0, 130, 0, 0, 0, 131,
3758 132, 133, 134, 135, 0, 0, 0, 0, 0, 0,
3759 136, 0, 0, 137, 138, 139, 140, 141, 142, 143,
3760 144, 145, 146, 147, 0, 148, 0, 0, 0, 0,
3761 0, 0, 149, 0, 0, 150, 0, 0, 0, 151,
3762 0, 0, 152, 153, 0, 154, 0, 0, 155, 0,
3763 156, 0, 0, 0, 157, 158, 0, 0, 0, 0,
3764 0, 159, 160, 161, 162, 163, 164, 0, 165, 166,
3765 167, 0, 168, 0, 0, 0, 0, 169, 79, 80,
3766 81, 82, 83, 84, 85, 0, 0, 0, 0, 0,
3767 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
3768 88, 170, 171, 0, 172, 173, 0, 0, 0, 0,
3769 174, 175, 89, 0, 0, 90, 0, 0, 0, 0,
3770 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
3771 0, 0, 0, 0, 0, 0, 0, 92, 0, 0,
3772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3773 0, 0, 0, 0, 0, 93, 0, 0, 94, 0,
3774 0, 95, 0, 0, 0, 0, 0, 96, 0, 0,
3775 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3776 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3777 0, 0, 103, 0, 0, 104, 105, 106, 0, 107,
3778 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3779 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3780 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3781 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3782 0, 0, 0, 0, 0, 0, 126, 1100, 0, 127,
3783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3787 0, 0, 0, 128, 129, 0, 0, 0, 0, 0,
3788 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
3789 0, 0, 0, 0, 0, 0, 136, 0, 0, 137,
3790 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3791 0, 148, 0, 0, 0, 0, 0, 0, 149, 0,
3792 0, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3793 0, 154, 0, 0, 155, 0, 156, 0, 0, 0,
3794 157, 158, 0, 0, 0, 0, 0, 159, 160, 161,
3795 162, 163, 164, 0, 165, 166, 167, 0, 168, 0,
3796 0, 0, 0, 169, 79, 80, 81, 82, 83, 84,
3797 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3798 0, 0, 86, 87, 0, 0, 88, 170, 171, 0,
3799 172, 173, 0, 0, 0, 0, 174, 175, 89, 0,
3800 0, 90, 0, 0, 0, 0, 0, 0, 0, 0,
3801 0, 0, 91, 0, 0, 0, 0, 0, 0, 0,
3802 0, 0, 0, 92, 0, 0, 0, 0, 0, 0,
3803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3804 0, 93, 0, 0, 94, 0, 0, 95, 0, 0,
3805 0, 0, 0, 96, 0, 0, 0, 0, 97, 98,
3806 99, 0, 0, 0, 0, 0, 100, 0, 0, 101,
3807 0, 0, 0, 0, 0, 102, 0, 0, 103, 0,
3808 0, 104, 105, 106, 0, 107, 108, 0, 0, 0,
3809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3810 0, 0, 109, 110, 0, 0, 111, 0, 112, 113,
3811 114, 115, 116, 117, 118, 0, 119, 0, 120, 121,
3812 122, 123, 0, 124, 0, 125, 0, 0, 0, 0,
3813 0, 0, 126, 0, 0, 127, 0, 0, 0, 0,
3814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3816 0, 0, 0, 0, 0, 1214, 0, 0, 0, 0,
3817 0, 0, 0, 0, 0, 0, 0, 0, 0, 128,
3818 129, 0, 0, 0, 0, 0, 0, 130, 0, 0,
3819 0, 131, 132, 133, 134, 135, 0, 0, 0, 0,
3820 0, 0, 136, 0, 0, 137, 138, 139, 140, 141,
3821 142, 143, 144, 145, 146, 147, 0, 148, 0, 0,
3822 0, 0, 0, 0, 149, 0, 0, 150, 0, 0,
3823 0, 151, 0, 0, 152, 153, 0, 154, 0, 0,
3824 155, 0, 156, 0, 0, 0, 157, 158, 0, 0,
3825 0, 0, 0, 159, 160, 161, 162, 163, 164, 0,
3826 165, 166, 167, 0, 168, 0, 0, 0, 0, 169,
3827 79, 80, 81, 82, 83, 84, 85, 0, 0, 0,
3828 0, 0, 0, 0, 0, 0, 0, 0, 86, 87,
3829 0, 0, 88, 170, 171, 0, 172, 173, 0, 0,
3830 0, 0, 174, 175, 89, 0, 0, 90, 0, 0,
3831 0, 0, 0, 0, 0, 0, 0, 0, 91, 0,
3832 0, 0, 0, 0, 0, 0, 0, 0, 0, 92,
3833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3834 0, 0, 0, 0, 0, 0, 0, 93, 0, 0,
3835 94, 0, 0, 95, 0, 0, 0, 0, 0, 96,
3836 0, 0, 0, 0, 97, 98, 99, 0, 0, 0,
3837 0, 0, 100, 0, 0, 101, 0, 0, 0, 0,
3838 0, 102, 0, 0, 103, 0, 0, 104, 105, 106,
3839 0, 107, 108, 0, 0, 0, 0, 0, 0, 0,
3840 0, 0, 0, 0, 0, 0, 0, 0, 109, 110,
3841 0, 0, 111, 0, 112, 113, 114, 115, 116, 117,
3842 118, 0, 119, 0, 120, 121, 122, 123, 0, 124,
3843 0, 125, 0, 0, 0, 0, 0, 0, 126, 0,
3844 0, 127, 0, 0, 0, 0, 0, 0, 0, 0,
3845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3848 0, 0, 0, 0, 0, 128, 129, 0, 0, 0,
3849 0, 0, 0, 130, 0, 1453, 0, 131, 132, 133,
3850 134, 135, 0, 0, 0, 0, 0, 0, 136, 0,
3851 0, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3852 146, 147, 0, 148, 0, 0, 0, 0, 0, 0,
3853 149, 0, 0, 150, 0, 0, 0, 151, 0, 0,
3854 152, 153, 0, 154, 0, 0, 155, 0, 156, 0,
3855 0, 0, 157, 158, 0, 0, 0, 0, 0, 159,
3856 160, 161, 162, 163, 164, 0, 165, 166, 167, 0,
3857 168, 0, 0, 0, 0, 169, 79, 80, 81, 82,
3858 83, 84, 85, 0, 0, 0, 0, 0, 0, 0,
3859 0, 0, 0, 0, 86, 87, 0, 0, 88, 170,
3860 171, 0, 172, 173, 0, 0, 0, 0, 174, 175,
3861 89, 0, 0, 90, 0, 0, 0, 0, 0, 0,
3862 0, 0, 0, 0, 91, 0, 0, 0, 0, 0,
3863 0, 0, 0, 0, 0, 92, 0, 0, 0, 0,
3864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3865 0, 0, 0, 93, 0, 0, 94, 0, 0, 95,
3866 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
3867 97, 98, 99, 0, 0, 0, 0, 0, 100, 0,
3868 0, 101, 0, 0, 0, 0, 0, 102, 0, 0,
3869 103, 0, 0, 104, 105, 106, 0, 107, 108, 0,
3870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3871 0, 0, 0, 0, 109, 110, 0, 0, 111, 0,
3872 112, 113, 114, 115, 116, 117, 118, 0, 119, 0,
3873 120, 121, 122, 123, 0, 124, 0, 125, 0, 0,
3874 0, 0, 0, 0, 126, 0, 0, 127, 0, 0,
3875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3879 0, 128, 129, 0, 0, 0, 0, 0, 0, 130,
3880 0, 0, 0, 131, 132, 133, 134, 135, 0, 0,
3881 0, 0, 0, 0, 136, 0, 0, 137, 138, 139,
3882 140, 141, 142, 143, 144, 145, 146, 147, 0, 148,
3883 0, 0, 0, 0, 0, 0, 149, 0, 0, 150,
3884 0, 0, 0, 151, 0, 0, 152, 153, 0, 154,
3885 0, 0, 155, 0, 156, 0, 0, 0, 157, 158,
3886 0, 0, 0, 0, 0, 159, 160, 161, 162, 163,
3887 164, 0, 165, 166, 167, 0, 168, 0, 0, 0,
3888 0, 169, 79, 80, 81, 82, 83, 84, 85, 0,
3889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3890 86, 87, 0, 0, 88, 170, 171, 0, 172, 173,
3891 0, 0, 0, 0, 174, 175, 89, 0, 0, 90,
3892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3893 91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3894 0, 92, 0, 0, 0, 0, 0, 0, 0, 0,
3895 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
3896 0, 0, 94, 0, 0, 95, 0, 0, 0, 0,
3897 0, 96, 0, 0, 0, 0, 97, 98, 99, 0,
3898 0, 0, 0, 0, 100, 0, 0, 101, 0, 0,
3899 0, 0, 0, 102, 0, 0, 103, 0, 0, 104,
3900 105, 106, 0, 107, 108, 0, 0, 0, 0, 0,
3901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3902 109, 110, 0, 0, 111, 0, 112, 113, 114, 115,
3903 116, 117, 118, 0, 119, 0, 120, 121, 122, 123,
3904 0, 124, 0, 125, 0, 0, 0, 0, 0, 0,
3905 126, 0, 0, 127, 0, 0, 0, 0, 0, 0,
3906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3909 0, 0, 0, 0, 0, 0, 0, 128, 129, 0,
3910 0, 0, 0, 0, 0, 130, 0, 0, 0, 131,
3911 132, 133, 134, 135, 0, 0, 0, 0, 0, 0,
3912 136, 0, 0, 137, 138, 139, 140, 141, 142, 143,
3913 144, 145, 146, 147, 0, 148, 0, 0, 0, 0,
3914 0, 0, 149, 0, 0, 150, 0, 0, 0, 151,
3915 0, 0, 152, 153, 0, 154, 0, 0, 155, 0,
3916 156, 0, 0, 0, 210, 158, 0, 0, 0, 0,
3917 0, 159, 160, 161, 162, 163, 164, 0, 165, 166,
3918 167, 0, 168, 0, 0, 0, 0, 169, 79, 80,
3919 81, 82, 83, 84, 85, 0, 0, 0, 0, 0,
3920 0, 0, 0, 0, 0, 0, 86, 87, 0, 0,
3921 88, 170, 171, 0, 172, 173, 0, 0, 0, 0,
3922 174, 175, 89, 0, 0, 90, 0, 0, 0, 0,
3923 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
3924 0, 0, 0, 0, 0, 0, 0, 92, 0, 0,
3925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3926 0, 0, 0, 0, 0, 93, 0, 0, 94, 0,
3927 0, 95, 0, 0, 0, 0, 0, 96, 0, 0,
3928 0, 0, 97, 98, 99, 0, 0, 0, 0, 0,
3929 100, 0, 0, 101, 0, 0, 0, 0, 0, 102,
3930 0, 0, 103, 0, 0, 104, 105, 106, 0, 107,
3931 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3932 0, 0, 0, 0, 0, 0, 109, 110, 0, 0,
3933 111, 0, 112, 113, 114, 115, 116, 117, 118, 0,
3934 119, 0, 120, 121, 122, 123, 0, 124, 0, 125,
3935 0, 0, 0, 0, 0, 0, 126, 0, 0, 127,
3936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3940 0, 0, 0, 128, 129, 0, 0, 0, 0, 0,
3941 0, 130, 0, 0, 0, 131, 132, 133, 134, 135,
3942 0, 0, 0, 0, 0, 0, 136, 0, 0, 137,
3943 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3944 0, 148, 0, 0, 0, 0, 0, 0, 149, 0,
3945 0, 150, 0, 0, 0, 151, 0, 0, 152, 153,
3946 0, 154, 0, 0, 155, 0, 156, 0, 0, 0,
3947 157, 158, 0, 0, 0, 0, 0, 159, 160, 161,
3948 162, 163, 164, 0, 165, 166, 167, 0, 168, 0,
3949 0, 0, 0, 169, 79, 80, 81, 82, 83, 84,
3950 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3951 0, 0, 86, 87, 0, 0, 88, 170, 171, 0,
3952 172, 342, 0, 0, 0, 0, 174, 175, 89, 0,
3953 0, 90, 0, 0, 0, 0, 0, 0, 0, 0,
3954 0, 0, 91, 0, 0, 0, 0, 0, 0, 0,
3955 0, 0, 0, 92, 0, 0, 0, 0, 0, 0,
3956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3957 0, 93, 0, 0, 94, 0, 0, 95, 0, 0,
3958 0, 0, 0, 96, 0, 0, 0, 0, 97, 98,
3959 99, 0, 0, 0, 0, 0, 100, 0, 0, 101,
3960 0, 0, 0, 0, 0, 102, 0, 0, 103, 0,
3961 0, 104, 105, 106, 0, 107, 108, 0, 0, 0,
3962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3963 0, 0, 109, 110, 0, 0, 111, 0, 112, 113,
3964 114, 115, 116, 117, 118, 0, 119, 0, 120, 121,
3965 122, 123, 0, 124, 0, 125, 0, 0, 0, 0,
3966 0, 0, 126, 0, 0, 127, 0, 0, 0, 0,
3967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3970 0, 0, 0, 0, 0, 0, 0, 0, 0, 128,
3971 129, 0, 0, 0, 0, 0, 0, 889, 0, 0,
3972 0, 131, 132, 133, 134, 135, 0, 0, 0, 0,
3973 0, 0, 136, 0, 0, 137, 138, 139, 140, 141,
3974 142, 143, 144, 145, 146, 147, 0, 148, 0, 0,
3975 0, 0, 0, 0, 149, 0, 0, 150, 0, 0,
3976 0, 151, 0, 0, 152, 153, 0, 154, 0, 0,
3977 155, 0, 156, 0, 0, 0, 157, 158, 0, 0,
3978 0, 0, 0, 159, 160, 161, 162, 163, 164, 0,
3979 165, 166, 167, 0, 168, 0, 0, 0, 0, 169,
3980 79, 80, 81, 82, 83, 84, 85, 0, 0, 0,
3981 0, 0, 0, 0, 0, 0, 0, 0, 86, 87,
3982 0, 0, 88, 170, 171, 0, 172, 173, 0, 0,
3983 0, 0, 174, 175, 89, 0, 0, 90, 0, 0,
3984 0, 0, 0, 0, 0, 0, 0, 0, 91, 0,
3985 0, 0, 0, 0, 0, 0, 0, 0, 0, 92,
3986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3987 0, 0, 0, 0, 0, 0, 0, 93, 0, 0,
3988 94, 0, 0, 95, 0, 0, 0, 0, 0, 96,
3989 0, 0, 0, 0, 97, 98, 99, 0, 0, 0,
3990 0, 0, 100, 0, 0, 101, 0, 0, 0, 0,
3991 0, 102, 0, 0, 103, 0, 0, 104, 105, 106,
3992 0, 107, 108, 0, 0, 0, 0, 0, 0, 0,
3993 0, 0, 0, 0, 0, 0, 0, 0, 109, 110,
3994 0, 0, 111, 0, 112, 113, 114, 115, 116, 117,
3995 118, 0, 119, 0, 120, 121, 122, 123, 0, 124,
3996 0, 125, 0, 0, 0, 0, 0, 0, 126, 0,
3997 0, 127, 0, 0, 0, 0, 0, 0, 0, 0,
3998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4001 0, 0, 0, 0, 0, 128, 129, 0, 0, 0,
4002 0, 0, 0, 130, 0, 0, 0, 131, 132, 133,
4003 134, 135, 0, 0, 0, 0, 0, 0, 136, 0,
4004 0, 137, 138, 139, 140, 141, 142, 143, 144, 145,
4005 146, 147, 0, 148, 0, 0, 0, 0, 0, 0,
4006 149, 0, 0, 150, 0, 0, 0, 151, 0, 0,
4007 152, 153, 0, 154, 0, 0, 155, 0, 156, 0,
4008 0, 0, 157, 158, 0, 0, 0, 0, 0, 159,
4009 160, 161, 162, 163, 164, 0, 165, 166, 167, 0,
4010 168, 0, 0, 0, 0, 169, 0, 0, 0, 0,
4011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4012 0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
4013 171, 0, 172, 1346, 0, 0, 0, 0, 174, 175
4014};
4015
4016static const yytype_int16 yycheck[] =
4017{
4018 4, 43, 0, 254, 776, 9, 0, 466, 44, 13,
4019 0, 193, 878, 252, 0, 19, 20, 837, 0, 1207,
4020 192, 330, 0, 487, 340, 719, 30, 373, 1184, 636,
4021 248, 330, 39, 205, 676, 351, 0, 505, 1433, 43,
4022 44, 1470, 767, 0, 31, 1824, 31, 39, 220, 221,
4023 0, 681, 653, 225, 874, 0, 679, 514, 14, 689,
4024 14, 17, 247, 1207, 687, 994, 330, 996, 1501, 1826,
4025 794, 795, 796, 19, 78, 536, 1064, 1065, 1007, 844,
4026 845, 635, 398, 284, 19, 116, 3, 4, 524, 243,
4027 1044, 389, 390, 897, 898, 899, 1040, 19, 1046, 3,
4028 4, 116, 0, 116, 1299, 116, 61, 405, 1448, 58,
4029 1874, 1853, 1448, 1877, 58, 177, 1572, 293, 303, 304,
4030 305, 306, 0, 308, 309, 310, 115, 312, 653, 2108,
4031 446, 447, 176, 449, 707, 1619, 593, 1052, 61, 7,
4032 8, 9, 10, 11, 12, 13, 2238, 213, 23, 89,
4033 1929, 289, 27, 28, 174, 30, 31, 32, 33, 34,
4034 35, 36, 37, 38, 39, 40, 176, 69, 91, 87,
4035 161, 120, 176, 115, 177, 116, 136, 116, 182, 183,
4036 314, 56, 57, 359, 188, 195, 196, 911, 912, 913,
4037 914, 195, 2284, 272, 87, 59, 114, 331, 83, 265,
4038 190, 65, 67, 68, 1961, 70, 210, 345, 206, 207,
4039 208, 209, 206, 207, 208, 209, 206, 207, 208, 209,
4040 206, 207, 208, 209, 206, 207, 208, 209, 206, 207,
4041 208, 209, 69, 1975, 177, 176, 1424, 179, 554, 1981,
4042 244, 245, 206, 207, 208, 209, 847, 182, 177, 206,
4043 207, 208, 209, 389, 241, 240, 206, 207, 208, 209,
4044 0, 206, 207, 208, 209, 263, 612, 271, 2047, 263,
4045 259, 275, 176, 263, 176, 116, 67, 263, 282, 283,
4046 1424, 263, 175, 808, 350, 263, 504, 174, 292, 293,
4047 294, 295, 296, 297, 298, 299, 176, 88, 302, 263,
4048 1640, 363, 770, 307, 1640, 556, 263, 311, 206, 207,
4049 208, 209, 190, 263, 318, 319, 320, 776, 263, 1775,
4050 364, 265, 266, 330, 2303, 70, 1810, 176, 206, 207,
4051 208, 209, 363, 272, 283, 339, 943, 174, 342, 176,
4052 289, 345, 2084, 363, 299, 1540, 14, 92, 363, 2113,
4053 363, 2093, 363, 275, 0, 812, 67, 68, 69, 70,
4054 363, 1276, 30, 936, 937, 263, 567, 568, 569, 570,
4055 2149, 1300, 363, 377, 1303, 1329, 577, 2156, 532, 1009,
4056 1003, 1106, 1330, 1108, 450, 263, 332, 1331, 849, 857,
4057 944, 293, 690, 176, 710, 831, 832, 262, 1163, 1164,
4058 85, 69, 587, 1968, 540, 409, 176, 1131, 2165, 1213,
4059 176, 583, 368, 281, 368, 177, 420, 334, 191, 359,
4060 363, 361, 45, 46, 466, 1854, 1191, 725, 726, 333,
4061 1859, 2173, 389, 2175, 363, 353, 1130, 735, 1871, 964,
4062 358, 7, 8, 9, 10, 11, 12, 13, 323, 906,
4063 907, 908, 909, 2232, 174, 177, 293, 177, 915, 916,
4064 917, 177, 177, 1651, 87, 176, 206, 207, 208, 209,
4065 261, 69, 108, 477, 177, 91, 363, 116, 614, 115,
4066 14, 177, 87, 487, 364, 489, 802, 491, 363, 493,
4067 494, 495, 496, 497, 498, 499, 500, 501, 716, 69,
4068 191, 505, 2281, 1227, 177, 177, 174, 1651, 176, 191,
4069 177, 647, 177, 120, 225, 364, 121, 122, 154, 124,
4070 125, 126, 526, 263, 129, 161, 177, 87, 191, 665,
4071 666, 2096, 69, 2098, 538, 539, 523, 191, 283, 848,
4072 191, 272, 527, 1938, 289, 549, 319, 765, 552, 848,
4073 157, 555, 487, 1982, 690, 115, 2298, 808, 1546, 1547,
4074 206, 207, 208, 209, 1165, 1166, 177, 876, 177, 177,
4075 574, 575, 576, 241, 578, 711, 174, 876, 176, 615,
4076 339, 364, 293, 540, 848, 589, 590, 591, 592, 1518,
4077 594, 595, 596, 597, 364, 599, 600, 601, 364, 603,
4078 1529, 363, 191, 607, 174, 177, 176, 1536, 177, 613,
4079 177, 615, 876, 1255, 19, 866, 658, 263, 927, 935,
4080 3, 4, 3, 4, 176, 293, 58, 318, 927, 3,
4081 4, 177, 275, 272, 638, 177, 177, 174, 856, 176,
4082 858, 363, 1336, 363, 326, 177, 314, 363, 363, 1343,
4083 409, 1376, 363, 1809, 658, 1285, 319, 136, 191, 71,
4084 363, 284, 177, 927, 177, 319, 2061, 363, 73, 74,
4085 75, 181, 77, 78, 177, 80, 67, 68, 69, 70,
4086 7, 8, 9, 10, 11, 12, 13, 859, 120, 259,
4087 363, 363, 864, 1039, 276, 293, 363, 704, 363, 706,
4088 177, 177, 268, 87, 340, 271, 181, 1023, 136, 1025,
4089 3, 4, 704, 964, 706, 719, 720, 674, 252, 1017,
4090 291, 0, 259, 293, 42, 43, 1072, 363, 193, 87,
4091 489, 289, 868, 690, 112, 340, 168, 24, 25, 1037,
4092 67, 68, 69, 70, 3, 4, 3, 4, 276, 181,
4093 260, 155, 363, 157, 363, 363, 293, 75, 762, 176,
4094 764, 1059, 766, 103, 1062, 1063, 770, 179, 173, 773,
4095 318, 1228, 320, 4, 2126, 115, 232, 87, 785, 163,
4096 90, 363, 166, 1939, 719, 260, 319, 345, 792, 20,
4097 181, 363, 363, 785, 363, 176, 363, 1985, 156, 30,
4098 174, 159, 176, 1404, 88, 1406, 238, 239, 240, 241,
4099 242, 121, 195, 196, 124, 125, 126, 363, 1164, 129,
4100 824, 363, 363, 1132, 174, 168, 115, 130, 120, 764,
4101 966, 363, 135, 289, 290, 363, 1437, 364, 270, 179,
4102 1156, 848, 67, 68, 69, 70, 339, 78, 363, 280,
4103 363, 283, 261, 857, 181, 389, 115, 289, 115, 2211,
4104 363, 145, 294, 116, 117, 154, 257, 258, 1132, 876,
4105 275, 262, 1566, 106, 1568, 284, 168, 881, 882, 883,
4106 884, 174, 1489, 176, 1352, 889, 363, 363, 176, 176,
4107 894, 282, 896, 897, 898, 899, 239, 240, 241, 242,
4108 904, 905, 364, 106, 206, 207, 338, 1375, 1217, 341,
4109 363, 868, 1535, 363, 264, 1538, 128, 367, 1217, 259,
4110 927, 928, 291, 1141, 931, 932, 933, 137, 1274, 232,
4111 257, 258, 276, 186, 284, 262, 169, 170, 171, 330,
4112 152, 933, 949, 950, 951, 952, 953, 239, 240, 241,
4113 242, 191, 183, 1217, 275, 282, 259, 949, 73, 74,
4114 75, 263, 77, 78, 195, 80, 169, 170, 171, 973,
4115 1279, 1280, 276, 177, 177, 115, 161, 233, 363, 210,
4116 1279, 1280, 1221, 87, 91, 989, 90, 191, 228, 229,
4117 130, 283, 177, 997, 2182, 135, 363, 289, 290, 318,
4118 1004, 320, 294, 330, 177, 261, 540, 217, 218, 219,
4119 220, 221, 268, 269, 245, 1279, 1280, 121, 191, 120,
4120 124, 125, 126, 3, 4, 129, 560, 122, 123, 115,
4121 340, 287, 257, 258, 136, 1039, 1040, 262, 323, 179,
4122 1044, 1045, 1046, 115, 275, 244, 338, 1051, 1364, 248,
4123 272, 282, 92, 161, 155, 272, 157, 282, 173, 99,
4124 100, 292, 293, 294, 295, 296, 297, 14, 299, 177,
4125 263, 302, 174, 177, 58, 1769, 56, 7, 8, 151,
4126 311, 153, 154, 1040, 14, 1401, 279, 169, 170, 171,
4127 272, 231, 232, 179, 92, 177, 1100, 95, 272, 292,
4128 1318, 222, 223, 101, 1039, 1040, 2097, 1325, 2099, 1327,
4129 1426, 176, 3, 4, 1430, 6, 323, 1121, 1434, 259,
4130 1436, 73, 74, 75, 1944, 1132, 1130, 289, 80, 1265,
4131 318, 233, 320, 1137, 289, 1152, 120, 1154, 1155, 279,
4132 674, 1277, 282, 289, 1172, 231, 1174, 1175, 1605, 1606,
4133 1607, 289, 292, 1462, 1158, 1159, 690, 338, 168, 261,
4134 275, 289, 1040, 1462, 240, 261, 268, 269, 264, 240,
4135 318, 1128, 320, 180, 230, 1179, 183, 184, 185, 186,
4136 187, 188, 189, 190, 168, 287, 312, 194, 284, 420,
4137 180, 287, 288, 279, 1198, 1130, 282, 181, 1462, 222,
4138 223, 1205, 180, 1207, 45, 46, 292, 1211, 180, 1213,
4139 1217, 3, 4, 1672, 73, 74, 75, 284, 77, 78,
4140 79, 80, 1194, 1195, 1196, 1197, 289, 1466, 289, 239,
4141 240, 241, 242, 1275, 3, 4, 340, 3, 4, 773,
4142 1212, 73, 74, 75, 1179, 77, 78, 363, 80, 313,
4143 1128, 169, 170, 171, 238, 239, 240, 241, 242, 177,
4144 491, 108, 493, 494, 495, 496, 3, 498, 1891, 500,
4145 501, 1275, 1279, 1280, 368, 369, 370, 371, 931, 932,
4146 933, 1579, 1580, 302, 294, 1594, 270, 306, 176, 308,
4147 309, 310, 311, 86, 87, 526, 949, 950, 951, 952,
4148 953, 176, 1618, 93, 94, 289, 176, 1623, 539, 176,
4149 294, 169, 170, 171, 173, 176, 1632, 193, 549, 177,
4150 25, 552, 265, 266, 555, 1329, 1330, 1331, 343, 344,
4151 1594, 341, 1336, 176, 868, 351, 1554, 176, 2158, 1343,
4152 176, 173, 1346, 128, 575, 1661, 176, 578, 1352, 1353,
4153 124, 125, 126, 176, 338, 176, 363, 341, 589, 590,
4154 591, 592, 176, 594, 595, 596, 597, 176, 599, 600,
4155 601, 1375, 603, 1377, 1331, 1839, 176, 302, 169, 170,
4156 171, 306, 1389, 308, 309, 310, 311, 3, 4, 1698,
4157 1699, 2100, 1701, 2102, 2103, 2104, 1331, 1389, 176, 1698,
4158 1699, 1336, 1701, 104, 105, 1409, 1410, 1411, 1343, 176,
4159 1414, 1415, 1416, 195, 196, 1419, 1420, 176, 1422, 1423,
4160 1424, 185, 186, 2289, 958, 959, 960, 97, 98, 137,
4161 176, 732, 733, 734, 1698, 1699, 176, 1701, 346, 347,
4162 348, 1477, 176, 1447, 290, 291, 176, 1451, 1452, 1453,
4163 1448, 289, 290, 1331, 1448, 1462, 1592, 336, 337, 176,
4164 1464, 93, 94, 236, 237, 176, 1470, 1471, 364, 347,
4165 348, 345, 346, 1477, 1478, 355, 356, 1484, 176, 1486,
4166 20, 1488, 355, 356, 176, 1667, 1493, 67, 68, 1805,
4167 291, 1807, 1484, 176, 1486, 1811, 1488, 1501, 1448, 67,
4168 68, 1493, 176, 1448, 212, 213, 214, 215, 216, 217,
4169 218, 219, 220, 221, 1973, 363, 1451, 351, 58, 20,
4170 137, 61, 208, 209, 335, 336, 1530, 651, 652, 96,
4171 1064, 1065, 102, 340, 363, 273, 1672, 240, 1674, 315,
4172 136, 136, 132, 132, 330, 1861, 117, 110, 117, 176,
4173 1448, 116, 106, 177, 314, 136, 2328, 58, 179, 174,
4174 61, 792, 1566, 244, 1568, 174, 176, 107, 1572, 109,
4175 176, 1575, 183, 184, 185, 186, 187, 188, 189, 190,
4176 120, 240, 136, 194, 176, 176, 41, 1594, 176, 176,
4177 176, 1595, 176, 824, 176, 172, 213, 214, 215, 216,
4178 217, 218, 219, 220, 221, 1921, 107, 314, 109, 364,
4179 1926, 295, 1654, 26, 176, 169, 170, 171, 176, 120,
4180 176, 1937, 177, 177, 176, 176, 176, 1663, 117, 1633,
4181 158, 1566, 245, 1568, 3, 177, 1772, 245, 174, 362,
4182 366, 176, 1640, 1779, 1780, 176, 1640, 1651, 1784, 208,
4183 881, 882, 883, 884, 293, 1189, 86, 83, 176, 1663,
4184 116, 19, 176, 894, 364, 250, 267, 1671, 291, 283,
4185 108, 174, 116, 904, 905, 275, 331, 174, 271, 233,
4186 259, 264, 222, 223, 224, 225, 226, 227, 245, 110,
4187 1640, 1698, 1699, 230, 1701, 1640, 176, 275, 238, 1917,
4188 7, 8, 9, 10, 11, 12, 13, 261, 191, 340,
4189 26, 363, 1848, 108, 268, 269, 291, 180, 180, 1855,
4190 340, 222, 223, 224, 225, 226, 227, 363, 1732, 1771,
4191 270, 116, 161, 287, 176, 363, 1671, 238, 149, 106,
4192 2056, 177, 1640, 283, 297, 177, 137, 115, 176, 289,
4193 2066, 363, 292, 329, 177, 177, 363, 176, 989, 313,
4194 314, 315, 176, 92, 363, 1769, 271, 316, 116, 270,
4195 268, 1775, 267, 290, 1778, 291, 1912, 1819, 1820, 116,
4196 115, 2097, 116, 2099, 332, 267, 2095, 176, 289, 23,
4197 278, 292, 241, 1797, 103, 340, 2095, 1331, 338, 177,
4198 177, 177, 363, 177, 1808, 275, 177, 177, 342, 363,
4199 291, 1815, 115, 340, 177, 177, 180, 2035, 177, 183,
4200 184, 185, 186, 187, 188, 189, 190, 130, 177, 193,
4201 194, 2095, 135, 136, 1769, 1839, 1840, 338, 363, 363,
4202 363, 177, 235, 2159, 177, 176, 108, 177, 363, 177,
4203 1854, 177, 177, 164, 176, 1859, 176, 329, 312, 177,
4204 177, 137, 177, 79, 79, 76, 176, 1871, 1872, 2328,
4205 363, 340, 114, 177, 177, 352, 179, 177, 177, 363,
4206 177, 19, 180, 248, 1888, 183, 184, 185, 186, 187,
4207 188, 189, 190, 364, 276, 193, 194, 2033, 94, 340,
4208 352, 2073, 180, 276, 1839, 183, 184, 185, 186, 187,
4209 188, 189, 190, 176, 275, 259, 194, 177, 1922, 275,
4210 243, 248, 243, 174, 284, 177, 146, 177, 231, 232,
4211 233, 340, 208, 209, 210, 2071, 212, 213, 214, 215,
4212 216, 217, 218, 219, 220, 221, 146, 177, 291, 177,
4213 177, 79, 2261, 1957, 176, 176, 259, 108, 261, 113,
4214 108, 106, 2261, 177, 1968, 268, 269, 177, 348, 363,
4215 284, 2287, 291, 363, 340, 176, 279, 245, 1982, 282,
4216 1211, 1985, 108, 274, 287, 274, 174, 277, 2160, 292,
4217 81, 363, 245, 325, 7, 244, 231, 2261, 350, 177,
4218 177, 177, 177, 327, 176, 2223, 2142, 177, 365, 363,
4219 275, 364, 1546, 1547, 275, 177, 363, 363, 275, 2023,
4220 275, 177, 363, 165, 108, 194, 391, 392, 267, 283,
4221 259, 87, 397, 174, 174, 131, 245, 402, 276, 352,
4222 2176, 300, 301, 302, 303, 304, 305, 306, 307, 308,
4223 309, 310, 311, 176, 2058, 176, 176, 176, 2062, 2195,
4224 363, 115, 117, 115, 2068, 115, 177, 275, 275, 177,
4225 363, 318, 115, 232, 340, 363, 2080, 283, 282, 115,
4226 274, 2085, 176, 175, 89, 89, 2090, 272, 2095, 364,
4227 136, 2342, 2096, 329, 2098, 245, 7, 7, 2349, 245,
4228 318, 349, 159, 340, 2108, 3, 364, 2111, 157, 154,
4229 2108, 356, 154, 345, 2108, 356, 193, 363, 2108, 71,
4230 115, 2125, 2108, 354, 62, 176, 2108, 317, 176, 176,
4231 2108, 267, 132, 2305, 329, 136, 177, 329, 176, 504,
4232 162, 159, 156, 125, 2108, 319, 293, 291, 291, 193,
4233 63, 176, 118, 2157, 317, 136, 329, 64, 329, 327,
4234 357, 345, 319, 267, 325, 177, 2170, 177, 177, 275,
4235 323, 284, 174, 70, 124, 275, 2180, 275, 2182, 115,
4236 1411, 67, 136, 335, 2188, 2189, 2190, 2191, 68, 1420,
4237 293, 176, 1423, 44, 1205, 560, 363, 1640, 1394, 1149,
4238 2246, 241, 849, 240, 44, 2281, 2280, 7, 8, 9,
4239 10, 1424, 1651, 525, 1616, 1929, 2317, 2288, 2296, 527,
4240 2295, 1452, 2245, 23, 1859, 1980, 2303, 27, 28, 29,
4241 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
4242 40, 1980, 2322, 1701, 1850, 1997, 1996, 1478, 1594, 526,
4243 2254, 8, 2256, 786, 2261, 55, 56, 57, 7, 8,
4244 9, 10, 2304, 186, 1627, 2058, 2154, 1434, 2239, 1618,
4245 190, 511, 190, 2144, 23, 0, 1, 1189, 27, 28,
4246 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
4247 39, 40, 1920, 1275, 190, 190, 2300, 1340, 858, 2303,
4248 2304, 1774, 2304, 1353, 1048, 2303, 55, 56, 57, 2303,
4249 856, 477, 1575, 2303, 679, 680, 681, 2303, 2322, 969,
4250 1784, 2303, 687, 723, 689, 2303, 1011, 965, 1144, 54,
4251 1265, 1912, 728, 735, 699, 700, 701, 736, 788, 2303,
4252 1778, 1917, 67, 68, 69, 70, 2223, 764, 1026, 43,
4253 715, 716, 1877, 765, 1030, 611, 81, 82, 83, 84,
4254 666, 1030, 847, 714, 2110, 90, 731, 732, 733, 734,
4255 1875, 1724, 737, 738, 739, 740, 741, 742, 743, 744,
4256 745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
4257 755, 756, 757, 758, 759, 760, 1528, 1891, 1517, 1731,
4258 765, 766, 767, 688, 2017, 2122, 1520, 2130, -1, -1,
4259 -1, 136, -1, -1, -1, -1, -1, -1, -1, -1,
4260 -1, -1, -1, -1, -1, -1, -1, -1, 177, -1,
4261 -1, -1, 7, 8, 9, 10, -1, -1, -1, -1,
4262 1671, -1, -1, -1, -1, -1, -1, -1, 23, 174,
4263 -1, 176, 27, 28, 29, 30, 31, 32, 33, 34,
4264 35, 36, 37, 38, 39, 40, -1, -1, -1, -1,
4265 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4266 55, 56, 57, -1, -1, -1, -1, -1, -1, -1,
4267 -1, 856, -1, 858, -1, -1, 296, 297, 298, 299,
4268 225, -1, -1, -1, -1, -1, -1, -1, 233, 234,
4269 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4270 -1, 246, 247, -1, 249, -1, 251, 252, 253, 254,
4271 255, 256, 257, 258, -1, -1, 261, 262, -1, -1,
4272 -1, -1, -1, 268, 269, -1, -1, 296, 297, 298,
4273 299, 7, 8, 9, 10, -1, -1, -1, -1, 284,
4274 -1, -1, 287, 363, -1, -1, -1, 23, 293, -1,
4275 -1, 27, 28, 29, 30, 31, 32, 33, 34, 35,
4276 36, 37, 38, 39, 40, -1, -1, 7, 8, 9,
4277 10, -1, -1, -1, -1, -1, -1, -1, -1, 55,
4278 56, 57, -1, 23, -1, 330, -1, 27, 28, 29,
4279 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
4280 40, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4281 -1, -1, -1, -1, 999, 55, 56, 57, 1003, -1,
4282 -1, -1, -1, -1, 1009, -1, -1, -1, -1, -1,
4283 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4284 -1, -1, -1, 1028, -1, -1, 1031, -1, -1, -1,
4285 -1, -1, -1, -1, -1, -1, -1, 133, 134, -1,
4286 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4287 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1064,
4288 1065, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4289 -1, -1, -1, -1, 289, -1, -1, -1, -1, -1,
4290 -1, 296, 297, 298, 299, -1, 1957, -1, -1, -1,
4291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4292 -1, 1106, -1, 1108, -1, -1, 3, 4, 5, -1,
4293 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
4294 17, 18, -1, -1, 21, 22, -1, -1, 25, 26,
4295 -1, -1, 29, 30, 31, -1, 1141, -1, -1, -1,
4296 -1, -1, -1, -1, 41, -1, -1, 44, -1, -1,
4297 47, 48, 49, 50, 51, 52, 53, -1, 55, -1,
4298 -1, 58, 59, 60, -1, -1, -1, -1, 65, 66,
4299 -1, -1, 69, 70, -1, -1, 73, 74, -1, -1,
4300 -1, -1, -1, -1, 1189, -1, -1, 84, -1, -1,
4301 87, -1, -1, 90, -1, -1, -1, 2068, -1, 96,
4302 296, 297, 298, 299, 101, 102, 103, -1, -1, -1,
4303 -1, -1, 109, 110, -1, 112, -1, -1, 115, -1,
4304 -1, 118, 119, -1, 121, -1, -1, 124, 125, 126,
4305 127, 128, 129, -1, -1, -1, 296, 297, 298, 299,
4306 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
4307 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
4308 157, -1, 159, 160, 161, 162, 163, 164, -1, 166,
4309 167, 168, -1, -1, -1, -1, 1281, 174, 175, 176,
4310 1285, 178, 179, -1, -1, 1290, -1, -1, -1, -1,
4311 -1, -1, -1, -1, -1, -1, -1, -1, 195, 196,
4312 -1, -1, -1, 1308, 1309, 1310, 1311, -1, 205, 206,
4313 207, -1, -1, 1318, -1, 212, -1, -1, -1, 1324,
4314 1325, -1, 1327, -1, -1, 222, 223, -1, -1, -1,
4315 -1, -1, -1, 230, -1, -1, -1, 234, 235, 236,
4316 237, 238, -1, -1, -1, -1, -1, -1, 245, -1,
4317 -1, 248, 249, 250, 251, 252, 253, 254, 255, 256,
4318 257, 258, -1, 260, -1, -1, -1, -1, -1, -1,
4319 267, 1376, -1, 270, -1, -1, -1, 274, -1, -1,
4320 277, 278, -1, 280, -1, -1, 283, -1, 285, -1,
4321 -1, -1, 289, 290, -1, 116, 293, -1, -1, 296,
4322 297, 298, 299, 300, 301, -1, 303, 304, 305, -1,
4323 307, -1, -1, -1, -1, 312, 137, -1, -1, -1,
4324 317, -1, -1, -1, 321, 322, -1, -1, -1, -1,
4325 -1, -1, -1, -1, -1, -1, -1, -1, -1, 336,
4326 337, -1, 339, 340, -1, -1, -1, -1, 345, 346,
4327 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4328 -1, -1, -1, -1, -1, -1, -1, -1, -1, 366,
4329 -1, 368, -1, -1, 195, 196, 197, 198, 199, 200,
4330 201, 202, 203, 204, -1, -1, -1, 208, 209, 210,
4331 -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
4332 221, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4333 -1, -1, 1517, -1, -1, 1520, -1, -1, -1, -1,
4334 -1, -1, -1, 1528, -1, -1, -1, -1, -1, -1,
4335 1535, -1, -1, 1538, -1, -1, -1, -1, -1, -1,
4336 -1, 1546, 1547, -1, -1, -1, -1, -1, -1, 1554,
4337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4338 -1, 7, 8, 9, 10, 11, 12, 13, -1, -1,
4339 -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
4340 26, -1, -1, 29, -1, -1, -1, -1, -1, -1,
4341 -1, -1, -1, -1, -1, 41, -1, -1, 44, -1,
4342 -1, -1, -1, -1, -1, -1, -1, -1, -1, 55,
4343 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4344 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
4345 -1, -1, -1, -1, -1, 81, 82, 83, 84, -1,
4346 -1, 87, 363, -1, 90, -1, -1, -1, -1, -1,
4347 96, -1, -1, -1, -1, 101, 102, 103, -1, -1,
4348 -1, -1, -1, 109, -1, -1, 112, -1, 1673, -1,
4349 -1, -1, 118, -1, -1, 121, -1, -1, 124, 125,
4350 126, -1, 128, 129, -1, -1, -1, -1, -1, -1,
4351 -1, -1, -1, -1, -1, -1, -1, -1, -1, 145,
4352 146, -1, -1, 149, -1, 151, 152, 153, 154, 155,
4353 156, 157, -1, 159, -1, 161, 162, 163, 164, -1,
4354 166, -1, 168, -1, -1, -1, 1731, -1, -1, 175,
4355 -1, -1, 178, -1, -1, -1, -1, -1, -1, -1,
4356 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4357 -1, -1, -1, -1, -1, -1, 1761, -1, -1, 1764,
4358 -1, 1766, -1, -1, -1, -1, -1, -1, -1, -1,
4359 -1, -1, -1, -1, -1, -1, 222, 223, -1, 225,
4360 -1, -1, -1, -1, 230, -1, -1, 233, 234, 235,
4361 236, 237, 238, -1, -1, -1, -1, -1, -1, 245,
4362 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
4363 256, 257, 258, -1, 260, 261, 262, -1, -1, 1824,
4364 -1, 267, 268, 269, 270, -1, -1, -1, 274, -1,
4365 -1, 277, 278, -1, 280, -1, -1, 283, 284, 285,
4366 286, 287, -1, 289, 290, -1, -1, -1, -1, -1,
4367 296, 297, 298, 299, 300, 301, -1, 303, 304, 305,
4368 -1, 307, -1, -1, -1, -1, 312, -1, 1873, 1874,
4369 1875, 317, 1877, 137, 320, -1, -1, 323, 324, 325,
4370 -1, -1, -1, -1, 330, -1, 1891, -1, -1, -1,
4371 336, 337, -1, 339, 340, -1, -1, -1, -1, 345,
4372 346, -1, 67, 68, 69, 70, -1, -1, -1, -1,
4373 -1, -1, 1917, 177, -1, -1, 81, 82, 83, 84,
4374 137, -1, -1, -1, 1929, 90, -1, -1, -1, -1,
4375 -1, 195, 196, 197, 198, 199, 200, 201, 202, 203,
4376 204, -1, -1, -1, 208, 209, 210, -1, 212, 213,
4377 214, 215, 216, 217, 218, 219, 220, 221, -1, -1,
4378 -1, -1, -1, -1, -1, -1, -1, 1972, -1, -1,
4379 -1, -1, -1, 1978, 137, -1, -1, -1, 195, 196,
4380 197, 198, 199, 200, 201, 202, 203, 204, -1, -1,
4381 -1, 208, 209, 210, -1, 212, 213, 214, 215, 216,
4382 217, 218, 219, 220, 221, -1, -1, -1, -1, 174,
4383 -1, 176, -1, -1, -1, -1, -1, -1, -1, -1,
4384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4385 2035, -1, 195, 196, 197, 198, 199, 200, 201, 202,
4386 203, 204, 2047, -1, -1, 208, 209, 210, -1, 212,
4387 213, 214, 215, 216, 217, 218, 219, 220, 221, -1,
4388 225, -1, -1, -1, -1, -1, -1, -1, 233, 234,
4389 -1, -1, -1, -1, -1, 117, -1, -1, -1, -1,
4390 -1, 246, 247, -1, 249, -1, -1, -1, -1, -1,
4391 -1, -1, -1, -1, -1, 137, 261, 262, -1, 363,
4392 -1, -1, -1, 268, 269, 2110, -1, -1, 2113, -1,
4393 -1, -1, -1, -1, -1, -1, -1, -1, -1, 284,
4394 -1, -1, 287, -1, -1, -1, -1, -1, 293, -1,
4395 -1, -1, -1, -1, -1, 177, -1, -1, -1, -1,
4396 -1, -1, -1, -1, 2149, -1, 363, -1, -1, -1,
4397 -1, 2156, -1, 195, 196, 197, 198, 199, 200, 201,
4398 202, 203, 204, 2168, -1, 330, 208, 209, 210, -1,
4399 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
4400 -1, -1, -1, -1, 3, 4, 5, -1, 7, 8,
4401 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
4402 363, -1, 21, 22, -1, -1, 25, 26, -1, -1,
4403 29, 30, 31, -1, -1, -1, -1, -1, 2223, -1,
4404 -1, -1, 41, -1, -1, 44, -1, 2232, 47, 48,
4405 49, 50, 51, 52, 53, -1, 55, -1, -1, 58,
4406 59, 60, -1, -1, -1, -1, 65, 66, -1, -1,
4407 -1, 70, -1, -1, 73, 74, -1, -1, -1, -1,
4408 -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
4409 -1, 90, -1, -1, -1, -1, 2281, 96, -1, -1,
4410 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
4411 109, 110, -1, 112, -1, -1, 115, -1, -1, 118,
4412 119, -1, 121, -1, -1, 124, 125, 126, 127, 128,
4413 129, -1, -1, -1, -1, -1, -1, -1, 137, 138,
4414 139, 140, 141, -1, 143, 144, 145, 146, 147, 148,
4415 149, 150, 151, 152, 153, 154, 155, 156, 157, -1,
4416 159, 160, 161, 162, 163, 164, -1, 166, 167, 168,
4417 -1, -1, -1, -1, -1, -1, 175, 176, -1, 178,
4418 179, -1, 181, 182, -1, -1, -1, -1, -1, -1,
4419 -1, -1, -1, 192, -1, -1, 195, 196, -1, -1,
4420 -1, -1, -1, -1, -1, -1, 205, 206, 207, -1,
4421 -1, -1, -1, 212, -1, -1, -1, -1, -1, -1,
4422 -1, -1, -1, 222, 223, -1, -1, -1, -1, -1,
4423 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
4424 -1, -1, -1, -1, -1, -1, 245, -1, -1, 248,
4425 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
4426 -1, 260, -1, -1, -1, -1, -1, -1, 267, -1,
4427 -1, 270, -1, -1, -1, 274, -1, -1, 277, 278,
4428 -1, 280, -1, -1, 283, -1, 285, -1, -1, -1,
4429 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
4430 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
4431 -1, -1, -1, 312, -1, -1, -1, -1, 317, -1,
4432 -1, -1, 321, 322, -1, -1, -1, -1, -1, -1,
4433 -1, -1, -1, -1, -1, -1, -1, 336, 337, -1,
4434 339, 340, -1, -1, -1, -1, 345, 346, -1, -1,
4435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4436 -1, -1, -1, -1, -1, -1, -1, 366, -1, 368,
4437 3, 4, 5, -1, 7, 8, 9, 10, 11, 12,
4438 13, 14, 15, 16, 17, 18, -1, -1, 21, 22,
4439 -1, -1, 25, 26, -1, -1, 29, 30, 31, -1,
4440 -1, -1, -1, -1, -1, -1, -1, -1, 41, -1,
4441 -1, 44, -1, -1, 47, 48, 49, 50, 51, 52,
4442 53, -1, 55, -1, -1, 58, 59, 60, -1, -1,
4443 -1, -1, 65, 66, -1, -1, 69, 70, -1, -1,
4444 73, 74, -1, -1, -1, -1, -1, -1, -1, -1,
4445 -1, 84, -1, -1, 87, -1, -1, 90, -1, -1,
4446 -1, -1, -1, 96, -1, -1, -1, -1, 101, 102,
4447 103, -1, -1, -1, -1, -1, 109, 110, -1, 112,
4448 -1, -1, 115, -1, -1, 118, 119, -1, 121, -1,
4449 -1, 124, 125, 126, 127, 128, 129, -1, -1, -1,
4450 -1, -1, -1, -1, 137, 138, 139, 140, 141, -1,
4451 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
4452 153, 154, 155, 156, 157, -1, 159, 160, 161, 162,
4453 163, 164, -1, 166, 167, 168, -1, -1, -1, -1,
4454 -1, 174, 175, 176, -1, 178, 179, -1, -1, -1,
4455 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4456 -1, -1, 195, 196, -1, -1, -1, -1, -1, -1,
4457 -1, -1, 205, 206, 207, -1, -1, -1, -1, 212,
4458 -1, -1, -1, -1, -1, -1, -1, -1, -1, 222,
4459 223, -1, -1, -1, -1, -1, -1, 230, -1, -1,
4460 -1, 234, 235, 236, 237, 238, -1, -1, -1, -1,
4461 -1, -1, 245, -1, -1, 248, 249, 250, 251, 252,
4462 253, 254, 255, 256, 257, 258, -1, 260, -1, -1,
4463 -1, -1, -1, -1, 267, -1, -1, 270, -1, -1,
4464 -1, 274, -1, -1, 277, 278, -1, 280, -1, -1,
4465 283, -1, 285, -1, -1, -1, 289, 290, -1, -1,
4466 293, -1, -1, 296, 297, 298, 299, 300, 301, -1,
4467 303, 304, 305, -1, 307, -1, -1, -1, -1, 312,
4468 -1, -1, -1, -1, 317, -1, -1, -1, 321, 322,
4469 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4470 -1, -1, -1, 336, 337, -1, 339, 340, -1, -1,
4471 -1, -1, 345, 346, -1, -1, -1, -1, -1, -1,
4472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4473 -1, -1, -1, 366, -1, 368, 3, 4, 5, -1,
4474 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
4475 17, 18, -1, -1, 21, 22, -1, -1, 25, 26,
4476 -1, -1, 29, 30, 31, -1, -1, -1, -1, -1,
4477 -1, -1, -1, -1, 41, -1, -1, 44, -1, -1,
4478 47, 48, 49, 50, 51, 52, 53, -1, 55, -1,
4479 -1, 58, 59, 60, -1, -1, -1, -1, 65, 66,
4480 -1, -1, -1, 70, -1, -1, 73, 74, -1, -1,
4481 -1, -1, -1, -1, -1, -1, -1, 84, -1, -1,
4482 87, -1, -1, 90, -1, -1, -1, -1, -1, 96,
4483 -1, -1, -1, -1, 101, 102, 103, -1, -1, -1,
4484 -1, -1, 109, 110, -1, 112, -1, -1, 115, -1,
4485 -1, 118, 119, -1, 121, -1, -1, 124, 125, 126,
4486 127, 128, 129, -1, -1, -1, -1, -1, -1, -1,
4487 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
4488 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
4489 157, -1, 159, 160, 161, 162, 163, 164, -1, 166,
4490 167, 168, -1, -1, -1, -1, -1, -1, 175, 176,
4491 -1, 178, 179, -1, -1, -1, -1, -1, -1, -1,
4492 -1, -1, -1, -1, -1, -1, -1, -1, 195, 196,
4493 -1, -1, -1, -1, -1, -1, -1, -1, 205, 206,
4494 207, 208, -1, -1, -1, 212, -1, -1, -1, -1,
4495 -1, -1, -1, -1, -1, 222, 223, -1, -1, -1,
4496 -1, -1, -1, 230, -1, -1, -1, 234, 235, 236,
4497 237, 238, -1, -1, -1, -1, -1, -1, 245, -1,
4498 -1, 248, 249, 250, 251, 252, 253, 254, 255, 256,
4499 257, 258, -1, 260, -1, -1, -1, -1, -1, -1,
4500 267, -1, -1, 270, -1, -1, -1, 274, -1, -1,
4501 277, 278, -1, 280, -1, -1, 283, -1, 285, -1,
4502 -1, -1, 289, 290, -1, -1, -1, -1, -1, 296,
4503 297, 298, 299, 300, 301, -1, 303, 304, 305, -1,
4504 307, -1, -1, -1, -1, 312, -1, -1, -1, -1,
4505 317, -1, -1, -1, 321, 322, -1, -1, -1, -1,
4506 -1, -1, -1, -1, -1, -1, -1, -1, -1, 336,
4507 337, -1, 339, 340, -1, -1, -1, -1, 345, 346,
4508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4509 -1, -1, -1, -1, -1, -1, -1, -1, -1, 366,
4510 -1, 368, 3, 4, 5, -1, 7, 8, 9, 10,
4511 11, 12, 13, 14, 15, 16, 17, 18, -1, -1,
4512 21, 22, -1, -1, 25, 26, -1, -1, 29, 30,
4513 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4514 41, -1, -1, 44, -1, -1, 47, 48, 49, 50,
4515 51, 52, 53, -1, 55, -1, -1, 58, 59, 60,
4516 -1, -1, -1, -1, 65, 66, -1, -1, -1, 70,
4517 -1, -1, 73, 74, -1, -1, -1, -1, -1, -1,
4518 -1, -1, -1, 84, -1, -1, 87, -1, -1, 90,
4519 -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
4520 101, 102, 103, -1, -1, -1, -1, -1, 109, 110,
4521 -1, 112, -1, -1, 115, -1, -1, 118, 119, -1,
4522 121, -1, -1, 124, 125, 126, 127, 128, 129, -1,
4523 -1, -1, -1, -1, -1, -1, 137, 138, 139, 140,
4524 141, -1, 143, 144, 145, 146, 147, 148, 149, 150,
4525 151, 152, 153, 154, 155, 156, 157, -1, 159, 160,
4526 161, 162, 163, 164, -1, 166, 167, 168, -1, -1,
4527 -1, -1, -1, -1, 175, 176, -1, 178, 179, -1,
4528 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4529 -1, -1, -1, -1, 195, 196, -1, -1, -1, -1,
4530 -1, -1, -1, -1, 205, 206, 207, -1, -1, -1,
4531 -1, 212, -1, -1, -1, -1, -1, -1, -1, -1,
4532 -1, 222, 223, -1, -1, -1, -1, -1, -1, 230,
4533 -1, -1, -1, 234, 235, 236, 237, 238, -1, -1,
4534 -1, -1, -1, -1, 245, -1, -1, 248, 249, 250,
4535 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
4536 -1, -1, -1, -1, -1, -1, 267, -1, -1, 270,
4537 -1, -1, -1, 274, -1, -1, 277, 278, -1, 280,
4538 -1, -1, 283, -1, 285, -1, -1, -1, 289, 290,
4539 -1, -1, -1, -1, -1, 296, 297, 298, 299, 300,
4540 301, -1, 303, 304, 305, -1, 307, -1, -1, -1,
4541 -1, 312, -1, -1, -1, -1, 317, -1, -1, -1,
4542 321, 322, -1, -1, -1, -1, -1, -1, -1, -1,
4543 -1, -1, -1, -1, -1, 336, 337, -1, 339, 340,
4544 -1, -1, -1, -1, 345, 346, -1, -1, -1, -1,
4545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4546 -1, -1, -1, -1, -1, 366, -1, 368, 3, 4,
4547 5, -1, 7, 8, 9, 10, 11, 12, 13, 14,
4548 15, 16, 17, 18, -1, -1, 21, 22, -1, -1,
4549 25, 26, -1, -1, 29, 30, 31, -1, -1, -1,
4550 -1, -1, -1, -1, -1, -1, 41, -1, -1, 44,
4551 -1, -1, 47, 48, 49, 50, 51, 52, 53, -1,
4552 55, -1, -1, 58, 59, 60, -1, -1, -1, -1,
4553 65, 66, -1, -1, -1, 70, -1, -1, 73, 74,
4554 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
4555 -1, -1, 87, -1, -1, 90, -1, -1, -1, -1,
4556 -1, 96, -1, -1, -1, -1, 101, 102, 103, -1,
4557 -1, -1, -1, -1, 109, 110, -1, 112, -1, -1,
4558 115, -1, -1, 118, 119, -1, 121, -1, -1, 124,
4559 125, 126, 127, 128, 129, -1, -1, -1, -1, -1,
4560 -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
4561 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
4562 155, 156, 157, -1, 159, 160, 161, 162, 163, 164,
4563 -1, 166, 167, 168, -1, -1, -1, -1, -1, -1,
4564 175, 176, -1, 178, 179, -1, -1, -1, -1, -1,
4565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4566 195, 196, -1, -1, -1, -1, -1, -1, -1, -1,
4567 205, 206, 207, -1, -1, -1, -1, 212, -1, -1,
4568 -1, -1, -1, -1, -1, -1, -1, 222, 223, -1,
4569 -1, -1, -1, -1, -1, 230, -1, -1, -1, 234,
4570 235, 236, 237, 238, -1, -1, -1, -1, -1, -1,
4571 245, -1, -1, 248, 249, 250, 251, 252, 253, 254,
4572 255, 256, 257, 258, -1, 260, -1, -1, -1, -1,
4573 -1, -1, 267, -1, -1, 270, -1, -1, -1, 274,
4574 -1, -1, 277, 278, -1, 280, -1, -1, 283, -1,
4575 285, -1, -1, -1, 289, 290, -1, -1, -1, -1,
4576 -1, 296, 297, 298, 299, 300, 301, -1, 303, 304,
4577 305, -1, 307, -1, -1, -1, -1, 312, -1, -1,
4578 -1, -1, 317, -1, -1, -1, 321, 322, -1, -1,
4579 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4580 -1, 336, 337, -1, 339, 340, -1, -1, -1, -1,
4581 345, 346, -1, -1, -1, -1, -1, -1, -1, -1,
4582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4583 -1, 366, -1, 368, 3, 4, 5, -1, 7, 8,
4584 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
4585 -1, -1, 21, 22, -1, -1, 25, 26, -1, -1,
4586 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
4587 -1, -1, 41, -1, -1, 44, -1, -1, 47, 48,
4588 49, 50, 51, 52, 53, -1, 55, -1, -1, 58,
4589 59, 60, -1, -1, -1, -1, 65, 66, -1, -1,
4590 69, 70, -1, -1, 73, 74, -1, -1, -1, -1,
4591 -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
4592 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
4593 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
4594 109, -1, -1, 112, -1, -1, 115, -1, -1, 118,
4595 119, -1, 121, -1, -1, 124, 125, 126, 127, 128,
4596 129, -1, -1, -1, -1, -1, -1, -1, 137, 138,
4597 139, 140, 141, -1, 143, 144, 145, 146, 147, 148,
4598 149, 150, 151, 152, 153, 154, 155, 156, 157, -1,
4599 159, 160, 161, 162, 163, 164, -1, 166, 167, 168,
4600 -1, -1, -1, -1, -1, -1, 175, 176, 177, 178,
4601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4602 -1, -1, -1, -1, -1, -1, 195, 196, -1, -1,
4603 -1, -1, -1, -1, -1, -1, 205, 206, 207, -1,
4604 -1, -1, -1, 212, -1, -1, -1, -1, -1, -1,
4605 -1, -1, -1, 222, 223, -1, -1, -1, -1, -1,
4606 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
4607 -1, -1, -1, -1, -1, -1, 245, -1, -1, 248,
4608 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
4609 -1, 260, -1, -1, -1, -1, -1, -1, 267, -1,
4610 -1, 270, -1, -1, -1, 274, -1, -1, 277, 278,
4611 -1, 280, -1, -1, 283, -1, 285, -1, -1, -1,
4612 289, 290, -1, -1, 293, -1, -1, 296, 297, 298,
4613 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
4614 -1, -1, -1, 312, -1, -1, -1, -1, 317, -1,
4615 -1, -1, 321, 322, -1, -1, -1, -1, -1, -1,
4616 -1, -1, -1, -1, -1, -1, -1, 336, 337, -1,
4617 339, 340, -1, -1, -1, -1, 345, 346, 3, 4,
4618 5, -1, 7, 8, 9, 10, 11, 12, 13, 14,
4619 15, 16, 17, 18, -1, -1, 21, 22, -1, 368,
4620 25, 26, -1, -1, 29, 30, 31, -1, -1, -1,
4621 -1, -1, -1, -1, -1, -1, 41, -1, -1, 44,
4622 -1, -1, 47, 48, 49, 50, 51, 52, 53, -1,
4623 55, -1, -1, 58, 59, 60, -1, -1, -1, -1,
4624 65, 66, -1, -1, -1, 70, -1, -1, 73, 74,
4625 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
4626 -1, -1, 87, -1, -1, 90, -1, -1, -1, -1,
4627 -1, 96, -1, -1, -1, -1, 101, 102, 103, -1,
4628 -1, -1, -1, -1, 109, -1, -1, 112, -1, -1,
4629 115, -1, -1, 118, 119, -1, 121, -1, -1, 124,
4630 125, 126, 127, 128, 129, -1, -1, -1, -1, -1,
4631 -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
4632 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
4633 155, 156, 157, -1, 159, 160, 161, 162, 163, 164,
4634 -1, 166, 167, 168, -1, -1, -1, -1, -1, -1,
4635 175, 176, -1, 178, -1, -1, -1, -1, -1, 184,
4636 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4637 195, 196, -1, -1, -1, -1, -1, -1, -1, -1,
4638 205, 206, 207, -1, -1, -1, -1, 212, -1, -1,
4639 -1, -1, -1, -1, -1, -1, -1, 222, 223, -1,
4640 -1, -1, -1, -1, -1, 230, -1, -1, -1, 234,
4641 235, 236, 237, 238, -1, -1, -1, -1, -1, -1,
4642 245, -1, -1, 248, 249, 250, 251, 252, 253, 254,
4643 255, 256, 257, 258, -1, 260, -1, -1, -1, -1,
4644 -1, -1, 267, -1, -1, 270, -1, -1, -1, 274,
4645 -1, -1, 277, 278, -1, 280, -1, -1, 283, -1,
4646 285, -1, -1, -1, 289, 290, -1, -1, -1, -1,
4647 -1, 296, 297, 298, 299, 300, 301, -1, 303, 304,
4648 305, -1, 307, -1, -1, -1, -1, 312, -1, -1,
4649 -1, -1, 317, -1, -1, -1, 321, 322, -1, -1,
4650 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4651 -1, 336, 337, -1, 339, 340, -1, -1, -1, -1,
4652 345, 346, -1, -1, -1, -1, -1, -1, 353, -1,
4653 -1, -1, -1, -1, -1, 360, -1, -1, -1, -1,
4654 3, 4, 5, 368, 7, 8, 9, 10, 11, 12,
4655 13, 14, 15, 16, 17, 18, -1, -1, 21, 22,
4656 -1, -1, 25, 26, -1, -1, 29, 30, 31, -1,
4657 -1, -1, -1, -1, -1, -1, -1, -1, 41, -1,
4658 -1, 44, -1, -1, 47, 48, 49, 50, 51, 52,
4659 53, -1, 55, -1, -1, 58, 59, 60, -1, -1,
4660 -1, -1, 65, 66, -1, -1, -1, 70, -1, -1,
4661 73, 74, -1, -1, -1, -1, -1, -1, -1, -1,
4662 -1, 84, -1, -1, 87, -1, -1, 90, -1, -1,
4663 -1, -1, -1, 96, -1, -1, -1, -1, 101, 102,
4664 103, -1, -1, -1, -1, -1, 109, -1, -1, 112,
4665 -1, -1, 115, -1, -1, 118, 119, -1, 121, -1,
4666 -1, 124, 125, 126, 127, 128, 129, -1, -1, -1,
4667 -1, -1, -1, -1, 137, 138, 139, 140, 141, -1,
4668 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
4669 153, 154, 155, 156, 157, -1, 159, 160, 161, 162,
4670 163, 164, -1, 166, 167, 168, -1, -1, -1, -1,
4671 -1, -1, 175, 176, -1, 178, -1, -1, 181, -1,
4672 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4673 -1, -1, 195, 196, -1, -1, -1, -1, -1, -1,
4674 -1, -1, 205, 206, 207, 208, -1, -1, -1, 212,
4675 -1, -1, -1, -1, -1, -1, -1, -1, -1, 222,
4676 223, -1, -1, -1, -1, -1, -1, 230, -1, -1,
4677 -1, 234, 235, 236, 237, 238, -1, -1, -1, -1,
4678 -1, -1, 245, -1, -1, 248, 249, 250, 251, 252,
4679 253, 254, 255, 256, 257, 258, -1, 260, -1, -1,
4680 -1, -1, -1, -1, 267, -1, -1, 270, -1, -1,
4681 -1, 274, -1, -1, 277, 278, -1, 280, -1, -1,
4682 283, -1, 285, -1, -1, -1, 289, 290, -1, -1,
4683 -1, -1, -1, 296, 297, 298, 299, 300, 301, -1,
4684 303, 304, 305, -1, 307, -1, -1, -1, -1, 312,
4685 -1, -1, -1, -1, 317, -1, -1, -1, 321, 322,
4686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4687 -1, -1, -1, 336, 337, -1, 339, 340, -1, -1,
4688 -1, -1, 345, 346, 3, 4, 5, -1, 7, 8,
4689 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
4690 -1, -1, 21, 22, -1, 368, 25, 26, -1, -1,
4691 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
4692 -1, -1, 41, -1, -1, 44, -1, -1, 47, 48,
4693 49, 50, 51, 52, 53, -1, 55, -1, -1, 58,
4694 59, 60, -1, -1, -1, -1, 65, 66, -1, -1,
4695 69, 70, -1, -1, 73, 74, -1, -1, -1, -1,
4696 -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
4697 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
4698 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
4699 109, -1, -1, 112, -1, -1, 115, -1, -1, 118,
4700 119, -1, 121, -1, -1, 124, 125, 126, 127, 128,
4701 129, -1, -1, -1, -1, -1, -1, -1, 137, 138,
4702 139, 140, 141, -1, 143, 144, 145, 146, 147, 148,
4703 149, 150, 151, 152, 153, 154, 155, 156, 157, -1,
4704 159, 160, 161, 162, 163, 164, -1, 166, 167, 168,
4705 -1, -1, -1, -1, -1, -1, 175, 176, -1, 178,
4706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4707 -1, -1, -1, -1, -1, -1, 195, 196, -1, -1,
4708 -1, -1, -1, -1, -1, -1, 205, 206, 207, -1,
4709 -1, -1, -1, 212, -1, -1, -1, -1, -1, -1,
4710 -1, -1, -1, 222, 223, -1, -1, -1, -1, -1,
4711 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
4712 -1, -1, -1, -1, -1, -1, 245, -1, -1, 248,
4713 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
4714 -1, 260, -1, -1, -1, -1, -1, -1, 267, -1,
4715 -1, 270, -1, -1, -1, 274, -1, -1, 277, 278,
4716 -1, 280, -1, -1, 283, -1, 285, -1, -1, -1,
4717 289, 290, -1, -1, 293, -1, -1, 296, 297, 298,
4718 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
4719 -1, -1, -1, 312, -1, -1, -1, -1, 317, -1,
4720 -1, -1, 321, 322, -1, -1, -1, -1, -1, -1,
4721 -1, -1, -1, -1, -1, -1, -1, 336, 337, -1,
4722 339, 340, -1, -1, -1, -1, 345, 346, 3, 4,
4723 5, -1, 7, 8, 9, 10, 11, 12, 13, 14,
4724 15, 16, 17, 18, -1, -1, 21, 22, -1, 368,
4725 25, 26, -1, -1, 29, 30, 31, -1, -1, -1,
4726 -1, -1, -1, -1, -1, -1, 41, -1, -1, 44,
4727 -1, -1, 47, 48, 49, 50, 51, 52, 53, -1,
4728 55, -1, -1, 58, 59, 60, -1, -1, -1, -1,
4729 65, 66, -1, -1, -1, 70, -1, -1, 73, 74,
4730 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
4731 -1, -1, 87, -1, -1, 90, -1, -1, -1, -1,
4732 -1, 96, -1, -1, -1, -1, 101, 102, 103, -1,
4733 -1, -1, -1, -1, 109, -1, -1, 112, -1, -1,
4734 115, -1, -1, 118, 119, -1, 121, -1, -1, 124,
4735 125, 126, 127, 128, 129, -1, -1, -1, -1, -1,
4736 -1, -1, 137, 138, 139, 140, 141, 142, 143, 144,
4737 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
4738 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
4739 -1, 166, 167, 168, -1, -1, -1, -1, -1, -1,
4740 175, 176, -1, 178, -1, -1, -1, -1, -1, -1,
4741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4742 195, 196, -1, -1, -1, -1, -1, -1, -1, -1,
4743 205, 206, 207, -1, -1, -1, -1, 212, -1, -1,
4744 -1, -1, -1, -1, -1, -1, -1, 222, 223, -1,
4745 -1, -1, -1, -1, -1, 230, -1, -1, -1, 234,
4746 235, 236, 237, 238, -1, -1, -1, -1, -1, -1,
4747 245, -1, -1, 248, 249, 250, 251, 252, 253, 254,
4748 255, 256, 257, 258, -1, 260, -1, -1, -1, -1,
4749 -1, -1, 267, -1, -1, 270, -1, -1, -1, 274,
4750 -1, -1, 277, 278, -1, 280, -1, -1, 283, -1,
4751 285, -1, -1, -1, 289, 290, -1, -1, -1, -1,
4752 -1, 296, 297, 298, 299, 300, 301, -1, 303, 304,
4753 305, -1, 307, -1, -1, -1, -1, 312, -1, -1,
4754 -1, -1, 317, -1, -1, -1, 321, 322, -1, -1,
4755 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4756 -1, 336, 337, -1, 339, 340, -1, -1, -1, -1,
4757 345, 346, 3, 4, 5, -1, 7, 8, 9, 10,
4758 11, 12, 13, 14, 15, 16, 17, 18, -1, -1,
4759 21, 22, -1, 368, 25, 26, -1, -1, 29, 30,
4760 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4761 41, -1, -1, 44, -1, -1, 47, 48, 49, 50,
4762 51, 52, 53, -1, 55, -1, -1, 58, 59, 60,
4763 -1, -1, -1, -1, 65, 66, -1, -1, -1, 70,
4764 -1, -1, 73, 74, -1, -1, -1, -1, -1, -1,
4765 -1, -1, -1, 84, -1, -1, 87, -1, -1, 90,
4766 -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
4767 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
4768 -1, 112, -1, -1, 115, -1, -1, 118, 119, -1,
4769 121, -1, -1, 124, 125, 126, 127, 128, 129, -1,
4770 -1, -1, -1, -1, -1, -1, 137, 138, 139, 140,
4771 141, -1, 143, 144, 145, 146, 147, 148, 149, 150,
4772 151, 152, 153, 154, 155, 156, 157, -1, 159, 160,
4773 161, 162, 163, 164, -1, 166, 167, 168, -1, -1,
4774 -1, -1, -1, -1, 175, 176, -1, 178, -1, -1,
4775 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4776 -1, -1, -1, -1, 195, 196, -1, -1, -1, -1,
4777 -1, -1, -1, -1, 205, 206, 207, -1, -1, -1,
4778 -1, 212, -1, -1, -1, -1, -1, -1, -1, -1,
4779 -1, 222, 223, -1, -1, -1, -1, -1, -1, 230,
4780 -1, -1, -1, 234, 235, 236, 237, 238, -1, -1,
4781 -1, -1, -1, -1, 245, -1, -1, 248, 249, 250,
4782 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
4783 -1, -1, -1, -1, -1, -1, 267, -1, -1, 270,
4784 -1, -1, -1, 274, -1, -1, 277, 278, -1, 280,
4785 -1, -1, 283, -1, 285, -1, -1, -1, 289, 290,
4786 -1, -1, -1, -1, -1, 296, 297, 298, 299, 300,
4787 301, -1, 303, 304, 305, -1, 307, -1, -1, -1,
4788 -1, 312, -1, -1, -1, -1, 317, -1, -1, -1,
4789 321, 322, -1, -1, -1, -1, -1, -1, -1, -1,
4790 -1, -1, -1, -1, -1, 336, 337, -1, 339, 340,
4791 -1, -1, -1, -1, 345, 346, -1, -1, -1, -1,
4792 -1, -1, 353, -1, -1, -1, -1, -1, -1, 360,
4793 -1, -1, -1, -1, 3, 4, 5, 368, 7, 8,
4794 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
4795 -1, -1, 21, 22, -1, -1, 25, 26, -1, -1,
4796 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
4797 -1, -1, 41, -1, -1, 44, -1, -1, 47, 48,
4798 49, 50, 51, 52, 53, -1, 55, -1, -1, 58,
4799 59, 60, -1, -1, -1, -1, 65, 66, -1, -1,
4800 -1, 70, -1, -1, 73, 74, -1, -1, -1, -1,
4801 -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
4802 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
4803 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
4804 109, -1, -1, 112, -1, -1, 115, -1, -1, 118,
4805 119, -1, 121, -1, -1, 124, 125, 126, 127, 128,
4806 129, -1, -1, -1, -1, -1, -1, -1, 137, 138,
4807 139, 140, 141, -1, 143, 144, 145, 146, 147, 148,
4808 149, 150, 151, 152, 153, 154, 155, 156, 157, -1,
4809 159, 160, 161, 162, 163, 164, -1, 166, 167, 168,
4810 -1, -1, -1, -1, -1, -1, 175, 176, -1, 178,
4811 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4812 -1, -1, -1, -1, -1, -1, 195, 196, -1, -1,
4813 -1, -1, -1, -1, -1, -1, 205, 206, 207, -1,
4814 -1, -1, -1, 212, -1, -1, -1, -1, -1, -1,
4815 -1, -1, -1, 222, 223, -1, -1, -1, -1, -1,
4816 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
4817 -1, -1, -1, -1, -1, -1, 245, -1, -1, 248,
4818 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
4819 259, 260, -1, -1, -1, -1, -1, -1, 267, -1,
4820 -1, 270, -1, -1, -1, 274, -1, -1, 277, 278,
4821 -1, 280, -1, -1, 283, -1, 285, -1, -1, -1,
4822 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
4823 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
4824 -1, -1, -1, 312, -1, -1, -1, -1, 317, -1,
4825 -1, -1, 321, 322, -1, -1, -1, -1, -1, -1,
4826 -1, -1, -1, -1, -1, -1, -1, 336, 337, -1,
4827 339, 340, -1, -1, -1, -1, 345, 346, 3, 4,
4828 5, -1, 7, 8, 9, 10, 11, 12, 13, 14,
4829 15, 16, 17, 18, -1, -1, 21, 22, -1, 368,
4830 25, 26, -1, -1, 29, 30, 31, -1, -1, -1,
4831 -1, -1, -1, -1, -1, -1, 41, -1, -1, 44,
4832 -1, -1, 47, 48, 49, 50, 51, 52, 53, -1,
4833 55, -1, -1, 58, 59, 60, -1, -1, -1, -1,
4834 65, 66, -1, -1, -1, 70, -1, -1, 73, 74,
4835 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
4836 -1, -1, 87, -1, -1, 90, -1, -1, -1, -1,
4837 -1, 96, -1, -1, -1, -1, 101, 102, 103, -1,
4838 -1, -1, -1, -1, 109, -1, -1, 112, -1, -1,
4839 115, -1, -1, 118, 119, -1, 121, -1, -1, 124,
4840 125, 126, 127, 128, 129, -1, -1, -1, -1, -1,
4841 -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
4842 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
4843 155, 156, 157, -1, 159, 160, 161, 162, 163, 164,
4844 -1, 166, 167, 168, -1, -1, -1, -1, -1, -1,
4845 175, 176, -1, 178, -1, -1, -1, -1, -1, -1,
4846 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4847 195, 196, -1, -1, -1, -1, -1, -1, -1, -1,
4848 205, 206, 207, -1, -1, -1, -1, 212, -1, -1,
4849 -1, -1, -1, -1, -1, -1, -1, 222, 223, -1,
4850 -1, -1, -1, -1, -1, 230, -1, -1, -1, 234,
4851 235, 236, 237, 238, -1, -1, -1, -1, -1, -1,
4852 245, -1, -1, 248, 249, 250, 251, 252, 253, 254,
4853 255, 256, 257, 258, -1, 260, -1, -1, -1, -1,
4854 -1, -1, 267, -1, -1, 270, -1, -1, -1, 274,
4855 -1, -1, 277, 278, -1, 280, -1, -1, 283, -1,
4856 285, -1, -1, -1, 289, 290, -1, -1, -1, -1,
4857 -1, 296, 297, 298, 299, 300, 301, -1, 303, 304,
4858 305, -1, 307, -1, -1, -1, -1, 312, -1, -1,
4859 -1, -1, 317, 318, -1, -1, 321, 322, -1, -1,
4860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4861 -1, 336, 337, -1, 339, 340, -1, -1, -1, -1,
4862 345, 346, 3, 4, 5, -1, 7, 8, 9, 10,
4863 11, 12, 13, 14, 15, 16, 17, 18, -1, -1,
4864 21, 22, -1, 368, 25, 26, -1, -1, 29, 30,
4865 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4866 41, -1, -1, 44, -1, -1, 47, 48, 49, 50,
4867 51, 52, 53, -1, 55, -1, -1, 58, 59, 60,
4868 -1, -1, -1, -1, 65, 66, -1, -1, -1, 70,
4869 -1, -1, 73, 74, -1, -1, -1, -1, -1, -1,
4870 -1, -1, -1, 84, -1, -1, 87, -1, -1, 90,
4871 -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
4872 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
4873 -1, 112, -1, -1, 115, -1, -1, 118, 119, -1,
4874 121, -1, -1, 124, 125, 126, 127, 128, 129, -1,
4875 -1, -1, -1, -1, -1, -1, 137, 138, 139, 140,
4876 141, -1, 143, 144, 145, 146, 147, 148, 149, 150,
4877 151, 152, 153, 154, 155, 156, 157, -1, 159, 160,
4878 161, 162, 163, 164, -1, 166, 167, 168, -1, -1,
4879 -1, -1, -1, -1, 175, 176, 177, 178, -1, -1,
4880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4881 -1, -1, -1, -1, 195, 196, -1, -1, -1, -1,
4882 -1, -1, -1, -1, 205, 206, 207, -1, -1, -1,
4883 -1, 212, -1, -1, -1, -1, -1, -1, -1, -1,
4884 -1, 222, 223, -1, -1, -1, -1, -1, -1, 230,
4885 -1, -1, -1, 234, 235, 236, 237, 238, -1, -1,
4886 -1, -1, -1, -1, 245, -1, -1, 248, 249, 250,
4887 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
4888 -1, -1, -1, -1, -1, -1, 267, -1, -1, 270,
4889 -1, -1, -1, 274, -1, -1, 277, 278, -1, 280,
4890 -1, -1, 283, -1, 285, -1, -1, -1, 289, 290,
4891 -1, -1, -1, -1, -1, 296, 297, 298, 299, 300,
4892 301, -1, 303, 304, 305, -1, 307, -1, -1, -1,
4893 -1, 312, -1, -1, -1, -1, 317, -1, -1, -1,
4894 321, 322, -1, -1, -1, -1, -1, -1, -1, -1,
4895 -1, -1, -1, -1, -1, 336, 337, -1, 339, 340,
4896 -1, -1, -1, -1, 345, 346, 3, 4, 5, -1,
4897 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
4898 17, 18, -1, -1, 21, 22, -1, 368, 25, 26,
4899 -1, -1, 29, 30, 31, -1, -1, -1, -1, -1,
4900 -1, -1, -1, -1, 41, -1, -1, 44, -1, -1,
4901 47, 48, 49, 50, 51, 52, 53, -1, 55, -1,
4902 -1, 58, 59, 60, -1, -1, -1, -1, 65, 66,
4903 -1, -1, -1, 70, -1, -1, 73, 74, -1, -1,
4904 -1, -1, -1, -1, -1, -1, -1, 84, -1, -1,
4905 87, -1, -1, 90, -1, -1, -1, -1, -1, 96,
4906 -1, -1, -1, -1, 101, 102, 103, -1, -1, -1,
4907 -1, -1, 109, -1, -1, 112, -1, -1, 115, -1,
4908 -1, 118, 119, -1, 121, -1, -1, 124, 125, 126,
4909 127, 128, 129, -1, -1, -1, -1, -1, -1, -1,
4910 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
4911 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
4912 157, -1, 159, 160, 161, 162, 163, 164, -1, 166,
4913 167, 168, -1, -1, -1, -1, -1, -1, 175, 176,
4914 177, 178, -1, -1, -1, -1, -1, -1, -1, -1,
4915 -1, -1, -1, -1, -1, -1, -1, -1, 195, 196,
4916 -1, -1, -1, -1, -1, -1, -1, -1, 205, 206,
4917 207, -1, -1, -1, -1, 212, -1, -1, -1, -1,
4918 -1, -1, -1, -1, -1, 222, 223, -1, -1, -1,
4919 -1, -1, -1, 230, -1, -1, -1, 234, 235, 236,
4920 237, 238, -1, -1, -1, -1, -1, -1, 245, -1,
4921 -1, 248, 249, 250, 251, 252, 253, 254, 255, 256,
4922 257, 258, -1, 260, -1, -1, -1, -1, -1, -1,
4923 267, -1, -1, 270, -1, -1, -1, 274, -1, -1,
4924 277, 278, -1, 280, -1, -1, 283, -1, 285, -1,
4925 -1, -1, 289, 290, -1, -1, -1, -1, -1, 296,
4926 297, 298, 299, 300, 301, -1, 303, 304, 305, -1,
4927 307, -1, -1, -1, -1, 312, -1, -1, -1, -1,
4928 317, -1, -1, -1, 321, 322, -1, -1, -1, -1,
4929 -1, -1, -1, -1, -1, -1, -1, -1, -1, 336,
4930 337, -1, 339, 340, -1, -1, -1, -1, 345, 346,
4931 3, 4, 5, -1, 7, 8, 9, 10, 11, 12,
4932 13, 14, 15, 16, 17, 18, -1, -1, 21, 22,
4933 -1, 368, 25, 26, -1, -1, 29, 30, 31, -1,
4934 -1, -1, -1, -1, -1, -1, -1, -1, 41, -1,
4935 -1, 44, -1, -1, 47, 48, 49, 50, 51, 52,
4936 53, -1, 55, -1, -1, 58, 59, 60, -1, -1,
4937 -1, -1, 65, 66, -1, -1, -1, 70, -1, -1,
4938 73, 74, -1, -1, -1, -1, -1, -1, -1, -1,
4939 -1, 84, -1, -1, 87, -1, -1, 90, -1, -1,
4940 -1, -1, -1, 96, -1, -1, -1, -1, 101, 102,
4941 103, -1, -1, -1, -1, -1, 109, -1, -1, 112,
4942 -1, -1, 115, -1, -1, 118, 119, -1, 121, -1,
4943 -1, 124, 125, 126, 127, 128, 129, -1, -1, -1,
4944 -1, -1, -1, -1, 137, 138, 139, 140, 141, -1,
4945 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
4946 153, 154, 155, 156, 157, -1, 159, 160, 161, 162,
4947 163, 164, -1, 166, 167, 168, -1, -1, -1, -1,
4948 -1, -1, 175, 176, -1, 178, -1, -1, -1, -1,
4949 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4950 -1, -1, 195, 196, -1, -1, -1, -1, -1, -1,
4951 -1, -1, 205, 206, 207, -1, -1, -1, -1, 212,
4952 -1, -1, -1, -1, -1, -1, -1, -1, -1, 222,
4953 223, -1, -1, -1, -1, -1, -1, 230, -1, -1,
4954 -1, 234, 235, 236, 237, 238, -1, -1, -1, -1,
4955 -1, -1, 245, -1, -1, 248, 249, 250, 251, 252,
4956 253, 254, 255, 256, 257, 258, 259, 260, -1, -1,
4957 -1, -1, -1, -1, 267, -1, -1, 270, -1, -1,
4958 -1, 274, -1, -1, 277, 278, -1, 280, -1, -1,
4959 283, -1, 285, -1, -1, -1, 289, 290, -1, -1,
4960 -1, -1, -1, 296, 297, 298, 299, 300, 301, -1,
4961 303, 304, 305, -1, 307, -1, -1, -1, -1, 312,
4962 -1, -1, -1, -1, 317, -1, -1, -1, 321, 322,
4963 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4964 -1, -1, -1, 336, 337, -1, 339, 340, -1, -1,
4965 -1, -1, 345, 346, 3, 4, 5, -1, 7, 8,
4966 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
4967 -1, -1, 21, 22, -1, 368, 25, 26, -1, -1,
4968 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
4969 -1, -1, 41, -1, -1, 44, -1, -1, 47, 48,
4970 49, 50, 51, 52, 53, -1, 55, -1, -1, 58,
4971 59, 60, -1, -1, -1, -1, 65, 66, -1, -1,
4972 -1, 70, -1, -1, 73, 74, -1, -1, -1, -1,
4973 -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
4974 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
4975 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
4976 109, -1, -1, 112, -1, -1, 115, -1, -1, 118,
4977 119, -1, 121, -1, -1, 124, 125, 126, 127, 128,
4978 129, -1, -1, -1, -1, -1, -1, -1, 137, 138,
4979 139, 140, 141, -1, 143, 144, 145, 146, 147, 148,
4980 149, 150, 151, 152, 153, 154, 155, 156, 157, -1,
4981 159, 160, 161, 162, 163, 164, -1, 166, 167, 168,
4982 -1, -1, -1, -1, -1, -1, 175, 176, -1, 178,
4983 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4984 -1, -1, -1, -1, -1, -1, 195, 196, -1, -1,
4985 -1, -1, -1, -1, -1, -1, 205, 206, 207, -1,
4986 -1, -1, -1, 212, -1, -1, -1, -1, -1, -1,
4987 -1, -1, -1, 222, 223, -1, -1, -1, -1, -1,
4988 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
4989 -1, -1, -1, -1, -1, -1, 245, -1, -1, 248,
4990 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
4991 -1, 260, -1, -1, -1, -1, -1, -1, 267, -1,
4992 -1, 270, -1, -1, -1, 274, -1, -1, 277, 278,
4993 -1, 280, -1, -1, 283, -1, 285, -1, -1, -1,
4994 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
4995 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
4996 -1, -1, -1, 312, -1, -1, -1, -1, 317, 318,
4997 -1, -1, 321, 322, -1, -1, -1, -1, -1, -1,
4998 -1, -1, -1, -1, -1, -1, -1, 336, 337, -1,
4999 339, 340, -1, -1, -1, -1, 345, 346, 3, 4,
5000 5, -1, 7, 8, 9, 10, 11, 12, 13, 14,
5001 15, 16, 17, 18, -1, -1, 21, 22, -1, 368,
5002 25, 26, -1, -1, 29, 30, 31, -1, -1, -1,
5003 -1, -1, -1, -1, -1, -1, 41, -1, -1, 44,
5004 -1, -1, 47, 48, 49, 50, 51, 52, 53, -1,
5005 55, -1, -1, 58, 59, 60, -1, -1, -1, -1,
5006 65, 66, -1, -1, -1, 70, -1, -1, 73, 74,
5007 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
5008 -1, -1, 87, -1, -1, 90, -1, -1, -1, -1,
5009 -1, 96, -1, -1, -1, -1, 101, 102, 103, -1,
5010 -1, -1, -1, -1, 109, -1, -1, 112, -1, -1,
5011 115, -1, -1, 118, 119, -1, 121, -1, -1, 124,
5012 125, 126, 127, 128, 129, -1, -1, -1, -1, -1,
5013 -1, -1, 137, 138, 139, 140, 141, 142, 143, 144,
5014 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
5015 155, 156, 157, -1, 159, 160, 161, 162, 163, 164,
5016 -1, 166, 167, 168, -1, -1, -1, -1, -1, -1,
5017 175, 176, -1, 178, -1, -1, -1, -1, -1, -1,
5018 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5019 195, 196, -1, -1, -1, -1, -1, -1, -1, -1,
5020 205, 206, 207, -1, -1, -1, -1, 212, -1, -1,
5021 -1, -1, -1, -1, -1, -1, -1, 222, 223, -1,
5022 -1, -1, -1, -1, -1, 230, -1, -1, -1, 234,
5023 235, 236, 237, 238, -1, -1, -1, -1, -1, -1,
5024 245, -1, -1, 248, 249, 250, 251, 252, 253, 254,
5025 255, 256, 257, 258, -1, 260, -1, -1, -1, -1,
5026 -1, -1, 267, -1, -1, 270, -1, -1, -1, 274,
5027 -1, -1, 277, 278, -1, 280, -1, -1, 283, -1,
5028 285, -1, -1, -1, 289, 290, -1, -1, -1, -1,
5029 -1, 296, 297, 298, 299, 300, 301, -1, 303, 304,
5030 305, -1, 307, -1, -1, -1, -1, 312, -1, -1,
5031 -1, -1, 317, -1, -1, -1, 321, 322, -1, -1,
5032 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5033 -1, 336, 337, -1, 339, 340, -1, -1, -1, -1,
5034 345, 346, 3, 4, 5, -1, 7, 8, 9, 10,
5035 11, 12, 13, 14, 15, 16, 17, 18, -1, -1,
5036 21, 22, -1, 368, 25, 26, -1, -1, 29, 30,
5037 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5038 41, -1, -1, 44, -1, -1, 47, 48, 49, 50,
5039 51, 52, 53, -1, 55, -1, -1, 58, 59, 60,
5040 -1, -1, -1, -1, 65, 66, -1, -1, -1, 70,
5041 -1, -1, 73, 74, -1, -1, -1, -1, -1, -1,
5042 -1, -1, -1, 84, -1, -1, 87, -1, -1, 90,
5043 -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
5044 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
5045 -1, 112, -1, -1, 115, -1, -1, 118, 119, -1,
5046 121, -1, -1, 124, 125, 126, 127, 128, 129, -1,
5047 -1, -1, -1, -1, -1, -1, 137, 138, 139, 140,
5048 141, -1, 143, 144, 145, 146, 147, 148, 149, 150,
5049 151, 152, 153, 154, 155, 156, 157, -1, 159, 160,
5050 161, 162, 163, 164, -1, 166, 167, 168, -1, -1,
5051 -1, -1, -1, -1, 175, 176, -1, 178, -1, -1,
5052 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5053 -1, -1, -1, -1, 195, 196, -1, -1, -1, -1,
5054 -1, -1, -1, -1, 205, 206, 207, -1, -1, -1,
5055 -1, 212, -1, -1, -1, -1, -1, -1, -1, -1,
5056 -1, 222, 223, -1, -1, -1, -1, -1, -1, 230,
5057 -1, -1, -1, 234, 235, 236, 237, 238, -1, -1,
5058 -1, -1, -1, -1, 245, -1, -1, 248, 249, 250,
5059 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
5060 -1, -1, -1, -1, -1, -1, 267, -1, -1, 270,
5061 -1, -1, -1, 274, -1, -1, 277, 278, -1, 280,
5062 -1, -1, 283, -1, 285, -1, -1, -1, 289, 290,
5063 -1, -1, -1, -1, -1, 296, 297, 298, 299, 300,
5064 301, -1, 303, 304, 305, -1, 307, -1, -1, -1,
5065 -1, 312, -1, -1, -1, -1, 317, -1, -1, -1,
5066 321, 322, -1, -1, -1, -1, -1, -1, -1, -1,
5067 -1, -1, -1, -1, -1, 336, 337, -1, 339, 340,
5068 -1, -1, -1, -1, 345, 346, -1, -1, -1, -1,
5069 -1, -1, -1, -1, -1, -1, -1, -1, 359, -1,
5070 -1, -1, -1, -1, 3, 4, 5, 368, 7, 8,
5071 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
5072 -1, -1, 21, 22, -1, -1, 25, 26, -1, -1,
5073 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
5074 -1, -1, 41, -1, -1, 44, -1, -1, 47, 48,
5075 49, 50, 51, 52, 53, -1, 55, -1, -1, 58,
5076 59, 60, -1, -1, -1, -1, 65, 66, -1, -1,
5077 -1, 70, -1, -1, 73, 74, -1, -1, -1, -1,
5078 -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
5079 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5080 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5081 109, -1, -1, 112, -1, -1, 115, -1, -1, 118,
5082 119, -1, 121, -1, -1, 124, 125, 126, 127, 128,
5083 129, -1, -1, -1, -1, -1, -1, -1, 137, 138,
5084 139, 140, 141, -1, 143, 144, 145, 146, 147, 148,
5085 149, 150, 151, 152, 153, 154, 155, 156, 157, -1,
5086 159, 160, 161, 162, 163, 164, -1, 166, 167, 168,
5087 -1, -1, -1, -1, -1, -1, 175, 176, -1, 178,
5088 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5089 -1, -1, -1, -1, -1, -1, 195, 196, -1, -1,
5090 -1, -1, -1, -1, -1, -1, 205, 206, 207, -1,
5091 -1, -1, -1, 212, -1, -1, -1, -1, -1, -1,
5092 -1, -1, -1, 222, 223, -1, -1, -1, -1, -1,
5093 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
5094 -1, -1, -1, -1, -1, -1, 245, -1, -1, 248,
5095 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5096 -1, 260, -1, -1, -1, -1, -1, -1, 267, -1,
5097 -1, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5098 -1, 280, -1, -1, 283, -1, 285, -1, -1, -1,
5099 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
5100 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
5101 -1, -1, -1, 312, -1, -1, -1, -1, 317, -1,
5102 -1, -1, 321, 322, -1, -1, -1, -1, -1, -1,
5103 -1, -1, -1, -1, -1, -1, -1, 336, 337, -1,
5104 339, 340, -1, -1, -1, -1, 345, 346, -1, -1,
5105 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5106 359, -1, -1, -1, -1, -1, 3, 4, 5, 368,
5107 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
5108 17, 18, -1, -1, 21, 22, -1, -1, 25, 26,
5109 -1, -1, 29, 30, 31, -1, -1, -1, -1, -1,
5110 -1, -1, -1, -1, 41, -1, -1, 44, -1, -1,
5111 47, 48, 49, 50, 51, 52, 53, -1, 55, -1,
5112 -1, 58, 59, 60, -1, -1, -1, -1, 65, 66,
5113 -1, -1, -1, 70, -1, -1, 73, 74, -1, -1,
5114 -1, -1, -1, -1, -1, -1, -1, 84, -1, -1,
5115 87, -1, -1, 90, -1, -1, -1, -1, -1, 96,
5116 -1, -1, -1, -1, 101, 102, 103, -1, -1, -1,
5117 -1, -1, 109, -1, -1, 112, -1, -1, 115, -1,
5118 -1, 118, 119, -1, 121, -1, -1, 124, 125, 126,
5119 127, 128, 129, -1, -1, -1, -1, -1, -1, -1,
5120 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
5121 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
5122 157, -1, 159, 160, 161, 162, 163, 164, -1, 166,
5123 167, 168, -1, -1, -1, -1, -1, -1, 175, 176,
5124 -1, 178, -1, -1, -1, -1, -1, -1, -1, -1,
5125 -1, -1, -1, -1, -1, -1, -1, -1, 195, 196,
5126 -1, -1, -1, -1, -1, -1, -1, -1, 205, 206,
5127 207, -1, -1, -1, -1, 212, -1, -1, -1, -1,
5128 -1, -1, -1, -1, -1, 222, 223, -1, -1, -1,
5129 -1, -1, -1, 230, -1, -1, -1, 234, 235, 236,
5130 237, 238, -1, -1, -1, -1, -1, -1, 245, -1,
5131 -1, 248, 249, 250, 251, 252, 253, 254, 255, 256,
5132 257, 258, -1, 260, -1, -1, -1, -1, -1, -1,
5133 267, -1, -1, 270, -1, -1, -1, 274, -1, -1,
5134 277, 278, -1, 280, -1, -1, 283, -1, 285, -1,
5135 -1, -1, 289, 290, -1, -1, -1, -1, -1, 296,
5136 297, 298, 299, 300, 301, -1, 303, 304, 305, -1,
5137 307, -1, -1, -1, -1, 312, -1, -1, -1, -1,
5138 317, -1, -1, -1, 321, 322, -1, -1, 7, 8,
5139 9, 10, 11, 12, 13, -1, -1, -1, -1, 336,
5140 337, -1, 339, 340, -1, -1, 25, 26, 345, 346,
5141 29, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5142 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
5143 -1, 368, -1, -1, -1, -1, 55, -1, -1, -1,
5144 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
5145 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
5146 -1, -1, 81, 82, 83, 84, -1, -1, 87, -1,
5147 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5148 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5149 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
5150 -1, -1, 121, -1, -1, 124, 125, 126, -1, 128,
5151 129, 137, -1, -1, -1, -1, -1, -1, -1, -1,
5152 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
5153 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
5154 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
5155 -1, -1, -1, -1, -1, -1, 175, -1, -1, 178,
5156 -1, -1, -1, -1, -1, -1, -1, -1, -1, 195,
5157 196, 197, 198, 199, 200, 201, 202, 203, 204, -1,
5158 -1, -1, 208, 209, 210, -1, 212, 213, 214, 215,
5159 216, 217, 218, 219, 220, 221, -1, -1, -1, -1,
5160 -1, -1, -1, 222, 223, -1, 225, -1, -1, -1,
5161 -1, 230, -1, -1, 233, 234, 235, 236, 237, 238,
5162 -1, -1, -1, -1, -1, 244, 245, 246, 247, 248,
5163 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5164 -1, 260, 261, 262, -1, -1, -1, -1, 267, 268,
5165 269, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5166 -1, 280, -1, -1, 283, 284, 285, 286, 287, -1,
5167 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
5168 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
5169 -1, -1, -1, 312, -1, -1, -1, -1, 317, -1,
5170 -1, -1, -1, -1, 323, -1, -1, -1, -1, 328,
5171 -1, 330, -1, -1, -1, -1, -1, 336, 337, -1,
5172 339, 340, -1, -1, -1, -1, 345, 346, 7, 8,
5173 9, 10, 11, 12, 13, -1, -1, 363, -1, -1,
5174 -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
5175 29, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5176 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
5177 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
5178 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
5179 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
5180 -1, -1, 81, 82, 83, 84, -1, -1, 87, -1,
5181 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5182 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5183 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
5184 -1, -1, 121, -1, -1, 124, 125, 126, 137, 128,
5185 129, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5186 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
5187 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
5188 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
5189 -1, -1, -1, -1, -1, -1, 175, -1, -1, 178,
5190 -1, -1, -1, -1, -1, -1, 195, 196, 197, 198,
5191 199, 200, 201, 202, 203, 204, -1, -1, -1, 208,
5192 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
5193 219, 220, 221, -1, -1, -1, -1, -1, -1, -1,
5194 -1, -1, -1, 222, 223, -1, 225, -1, -1, -1,
5195 -1, 230, -1, -1, 233, 234, 235, 236, 237, 238,
5196 -1, -1, -1, -1, -1, 244, 245, 246, 247, 248,
5197 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5198 -1, 260, 261, 262, -1, -1, -1, -1, 267, 268,
5199 269, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5200 -1, 280, -1, -1, 283, 284, 285, 286, 287, -1,
5201 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
5202 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
5203 319, -1, -1, 312, -1, -1, -1, -1, 317, -1,
5204 -1, -1, -1, -1, 323, -1, -1, -1, -1, 328,
5205 -1, 330, -1, -1, -1, -1, -1, 336, 337, -1,
5206 339, 340, -1, -1, -1, -1, 345, 346, 7, 8,
5207 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
5208 -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
5209 29, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5210 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
5211 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
5212 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
5213 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
5214 -1, -1, 81, 82, 83, 84, -1, -1, 87, -1,
5215 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5216 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5217 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
5218 -1, -1, 121, -1, -1, 124, 125, 126, 137, 128,
5219 129, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5220 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
5221 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
5222 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
5223 -1, -1, -1, -1, -1, -1, 175, -1, -1, 178,
5224 -1, -1, -1, -1, -1, -1, 195, 196, 197, 198,
5225 199, 200, 201, 202, 203, 204, -1, -1, -1, 208,
5226 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
5227 219, 220, 221, -1, -1, -1, -1, -1, -1, -1,
5228 -1, -1, -1, 222, 223, -1, 225, -1, -1, -1,
5229 -1, 230, -1, -1, 233, 234, 235, 236, 237, 238,
5230 -1, -1, -1, -1, -1, -1, 245, 246, 247, 248,
5231 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5232 -1, 260, 261, 262, -1, -1, -1, -1, 267, 268,
5233 269, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5234 -1, 280, -1, -1, 283, 284, 285, 286, 287, -1,
5235 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
5236 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
5237 319, -1, -1, 312, -1, -1, -1, -1, 317, -1,
5238 -1, -1, -1, -1, 323, -1, 325, -1, -1, -1,
5239 -1, 330, -1, -1, -1, -1, -1, 336, 337, -1,
5240 339, 340, -1, -1, -1, -1, 345, 346, 7, 8,
5241 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
5242 -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
5243 29, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5244 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
5245 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
5246 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
5247 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
5248 -1, -1, 81, 82, 83, 84, -1, -1, 87, -1,
5249 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5250 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5251 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
5252 -1, -1, 121, -1, -1, 124, 125, 126, 137, 128,
5253 129, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5254 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
5255 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
5256 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
5257 -1, -1, -1, -1, -1, -1, 175, -1, -1, 178,
5258 -1, -1, -1, -1, -1, -1, 195, 196, 197, 198,
5259 199, 200, 201, 202, 203, 204, -1, -1, -1, 208,
5260 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
5261 219, 220, 221, -1, -1, -1, -1, -1, -1, -1,
5262 -1, -1, -1, 222, 223, -1, 225, -1, -1, -1,
5263 -1, 230, -1, -1, 233, 234, 235, 236, 237, 238,
5264 -1, -1, -1, -1, -1, -1, 245, 246, 247, 248,
5265 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5266 -1, 260, 261, 262, -1, -1, -1, -1, 267, 268,
5267 269, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5268 -1, 280, -1, -1, 283, 284, 285, 286, 287, -1,
5269 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
5270 299, 300, 301, -1, 303, 304, 305, -1, 307, 318,
5271 -1, -1, -1, 312, -1, -1, -1, -1, 317, -1,
5272 -1, -1, -1, -1, 323, -1, -1, -1, -1, -1,
5273 329, 330, -1, -1, -1, -1, -1, 336, 337, -1,
5274 339, 340, -1, -1, -1, -1, 345, 346, 7, 8,
5275 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
5276 -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
5277 29, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5278 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
5279 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
5280 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
5281 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
5282 -1, -1, 81, 82, 83, 84, -1, -1, 87, -1,
5283 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5284 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5285 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
5286 -1, -1, 121, -1, -1, 124, 125, 126, 137, 128,
5287 129, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5288 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
5289 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
5290 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
5291 -1, -1, -1, -1, -1, -1, 175, -1, -1, 178,
5292 -1, -1, -1, -1, -1, -1, 195, 196, 197, 198,
5293 199, 200, 201, 202, 203, 204, -1, -1, -1, 208,
5294 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
5295 219, 220, 221, -1, -1, -1, -1, -1, -1, -1,
5296 -1, -1, -1, 222, 223, -1, 225, -1, -1, -1,
5297 -1, 230, -1, -1, 233, 234, 235, 236, 237, 238,
5298 -1, -1, -1, -1, -1, -1, 245, 246, 247, 248,
5299 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5300 -1, 260, 261, 262, -1, -1, -1, -1, 267, 268,
5301 269, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5302 -1, 280, -1, -1, 283, 284, 285, 286, 287, -1,
5303 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
5304 299, 300, 301, -1, 303, 304, 305, -1, 307, 318,
5305 -1, -1, -1, 312, -1, -1, -1, -1, 317, -1,
5306 -1, -1, -1, -1, 323, -1, -1, -1, -1, -1,
5307 -1, 330, -1, -1, -1, -1, -1, 336, 337, -1,
5308 339, 340, -1, -1, -1, -1, 345, 346, 7, 8,
5309 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
5310 -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
5311 29, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5312 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
5313 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
5314 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
5315 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
5316 -1, -1, 81, 82, 83, 84, -1, -1, 87, -1,
5317 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5318 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5319 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
5320 -1, -1, 121, -1, 137, 124, 125, 126, -1, 128,
5321 129, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5322 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
5323 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
5324 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
5325 -1, -1, -1, -1, -1, -1, 175, -1, -1, 178,
5326 -1, -1, 195, 196, 197, 198, 199, 200, 201, 202,
5327 203, 204, -1, -1, -1, 208, 209, 210, -1, 212,
5328 213, 214, 215, 216, 217, 218, 219, 220, 221, -1,
5329 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5330 -1, -1, -1, 222, 223, -1, 225, -1, -1, -1,
5331 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
5332 -1, -1, -1, -1, -1, -1, 245, 246, 247, 248,
5333 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5334 273, 260, -1, 262, -1, -1, -1, -1, 267, 268,
5335 269, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5336 -1, 280, -1, -1, 283, 284, 285, 286, -1, -1,
5337 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
5338 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
5339 -1, -1, -1, 312, -1, -1, -1, -1, 317, -1,
5340 -1, -1, -1, -1, 323, -1, -1, -1, -1, 328,
5341 -1, 330, -1, -1, -1, -1, -1, 336, 337, -1,
5342 339, 340, -1, -1, -1, -1, 345, 346, 7, 8,
5343 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
5344 -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
5345 29, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5346 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
5347 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
5348 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
5349 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
5350 -1, -1, 81, 82, 83, 84, -1, -1, 87, -1,
5351 -1, 90, -1, -1, -1, -1, -1, 96, 111, -1,
5352 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5353 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
5354 -1, -1, 121, -1, 137, 124, 125, 126, -1, 128,
5355 129, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5356 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
5357 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
5358 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
5359 -1, -1, -1, -1, -1, -1, 175, -1, -1, 178,
5360 -1, -1, 195, 196, 197, 198, 199, 200, 201, 202,
5361 203, 204, -1, -1, -1, 208, 209, 210, -1, 212,
5362 213, 214, 215, 216, 217, 218, 219, 220, 221, -1,
5363 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5364 -1, -1, -1, 222, 223, -1, 225, -1, -1, -1,
5365 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
5366 -1, -1, -1, -1, -1, -1, 245, 246, 247, 248,
5367 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5368 -1, 260, -1, 262, -1, -1, -1, -1, 267, 268,
5369 269, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5370 -1, 280, -1, -1, 283, 284, 285, 286, -1, -1,
5371 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
5372 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
5373 -1, -1, -1, 312, -1, -1, -1, -1, 317, -1,
5374 -1, -1, -1, -1, 323, -1, -1, -1, -1, -1,
5375 329, 330, -1, -1, -1, -1, -1, 336, 337, -1,
5376 339, 340, -1, -1, -1, -1, 345, 346, 7, 8,
5377 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
5378 -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
5379 29, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5380 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
5381 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
5382 -1, -1, -1, -1, -1, -1, -1, 66, -1, -1,
5383 69, 70, -1, 72, 73, 74, -1, -1, -1, -1,
5384 -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
5385 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5386 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5387 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
5388 -1, -1, 121, 137, -1, 124, 125, 126, -1, 128,
5389 129, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5390 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
5391 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
5392 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
5393 -1, -1, 186, -1, -1, 174, 175, 176, -1, 178,
5394 -1, 195, 196, 197, 198, 199, 200, 201, 202, 203,
5395 204, -1, -1, -1, 208, 209, 210, -1, 212, 213,
5396 214, 215, 216, 217, 218, 219, 220, 221, -1, -1,
5397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5398 -1, -1, -1, 222, 223, -1, -1, -1, -1, -1,
5399 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
5400 -1, -1, -1, -1, -1, -1, 245, -1, -1, 248,
5401 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5402 -1, 260, -1, -1, -1, -1, -1, -1, 267, -1,
5403 -1, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5404 -1, 280, -1, -1, 283, -1, 285, -1, -1, -1,
5405 289, 290, -1, -1, 293, -1, -1, 296, 297, 298,
5406 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
5407 -1, -1, -1, 312, 7, 8, 9, 10, 11, 12,
5408 13, -1, -1, -1, -1, -1, -1, 20, -1, -1,
5409 -1, -1, 25, 26, -1, -1, 29, 336, 337, -1,
5410 339, 340, -1, -1, -1, -1, 345, 346, 41, -1,
5411 -1, 44, -1, -1, -1, -1, -1, -1, -1, -1,
5412 -1, -1, 55, -1, -1, -1, -1, -1, 61, -1,
5413 -1, -1, -1, 66, -1, -1, -1, -1, -1, -1,
5414 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5415 -1, 84, -1, -1, 87, -1, -1, 90, -1, -1,
5416 -1, -1, -1, 96, -1, -1, -1, -1, 101, 102,
5417 103, -1, -1, -1, -1, -1, 109, -1, -1, 112,
5418 -1, -1, -1, -1, -1, 118, -1, -1, 121, -1,
5419 -1, 124, 125, 126, 137, 128, 129, -1, -1, -1,
5420 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5421 -1, -1, 145, 146, -1, -1, 149, -1, 151, 152,
5422 153, 154, 155, 156, 157, -1, 159, -1, 161, 162,
5423 163, 164, -1, 166, 177, 168, -1, -1, -1, -1,
5424 -1, -1, 175, -1, -1, 178, -1, -1, -1, -1,
5425 -1, -1, 195, 196, 197, 198, 199, 200, 201, 202,
5426 203, 204, -1, -1, -1, 208, 209, 210, -1, 212,
5427 213, 214, 215, 216, 217, 218, 219, 220, 221, -1,
5428 -1, -1, -1, -1, -1, -1, -1, -1, -1, 222,
5429 223, 224, 225, 226, 227, -1, -1, 230, -1, -1,
5430 -1, 234, 235, 236, 237, 238, -1, -1, -1, -1,
5431 -1, -1, 245, -1, -1, 248, 249, 250, 251, 252,
5432 253, 254, 255, 256, 257, 258, -1, 260, -1, -1,
5433 -1, -1, -1, -1, 267, -1, -1, 270, -1, -1,
5434 -1, 274, -1, -1, 277, 278, -1, 280, -1, -1,
5435 283, -1, 285, -1, -1, -1, 289, 290, -1, -1,
5436 -1, -1, -1, 296, 297, 298, 299, 300, 301, -1,
5437 303, 304, 305, -1, 307, -1, -1, -1, -1, 312,
5438 7, 8, 9, 10, 11, 12, 13, -1, -1, -1,
5439 -1, -1, -1, -1, -1, -1, -1, -1, 25, 26,
5440 -1, -1, 29, 336, 337, -1, 339, 340, -1, -1,
5441 -1, -1, 345, 346, 41, -1, -1, 44, -1, -1,
5442 -1, -1, -1, -1, -1, -1, -1, -1, 55, -1,
5443 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
5444 -1, -1, -1, 70, -1, 72, 73, 74, -1, -1,
5445 -1, -1, -1, -1, -1, -1, -1, 84, -1, -1,
5446 87, -1, -1, 90, -1, -1, -1, -1, -1, 96,
5447 -1, -1, -1, -1, 101, 102, 103, -1, -1, -1,
5448 -1, -1, 109, -1, -1, 112, -1, -1, -1, -1,
5449 -1, 118, -1, -1, 121, -1, -1, 124, 125, 126,
5450 137, 128, 129, -1, -1, -1, -1, -1, -1, -1,
5451 -1, -1, -1, -1, -1, -1, -1, -1, 145, 146,
5452 -1, -1, 149, -1, 151, 152, 153, 154, 155, 156,
5453 157, -1, 159, -1, 161, 162, 163, 164, -1, 166,
5454 177, 168, -1, -1, -1, -1, -1, -1, 175, 176,
5455 -1, 178, -1, -1, -1, -1, -1, -1, 195, 196,
5456 197, 198, 199, 200, 201, 202, 203, 204, -1, -1,
5457 -1, 208, 209, 210, -1, 212, 213, 214, 215, 216,
5458 217, 218, 219, 220, 221, -1, -1, -1, -1, -1,
5459 -1, -1, -1, -1, -1, 222, 223, -1, -1, -1,
5460 -1, -1, -1, 230, -1, -1, -1, 234, 235, 236,
5461 237, 238, -1, -1, -1, -1, -1, -1, 245, -1,
5462 -1, 248, 249, 250, 251, 252, 253, 254, 255, 256,
5463 257, 258, -1, 260, -1, -1, -1, -1, -1, -1,
5464 267, -1, -1, 270, -1, -1, -1, 274, -1, -1,
5465 277, 278, -1, 280, -1, -1, 283, -1, 285, -1,
5466 -1, -1, 289, 290, -1, -1, -1, -1, -1, 296,
5467 297, 298, 299, 300, 301, -1, 303, 304, 305, -1,
5468 307, -1, -1, -1, -1, 312, 7, 8, 9, 10,
5469 11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
5470 -1, -1, -1, -1, 25, 26, -1, -1, 29, 336,
5471 337, -1, 339, 340, -1, -1, -1, -1, 345, 346,
5472 41, -1, -1, 44, -1, -1, -1, -1, -1, -1,
5473 -1, -1, -1, -1, 55, -1, -1, 58, 59, 60,
5474 -1, -1, -1, -1, -1, 66, -1, -1, -1, -1,
5475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5476 -1, -1, -1, 84, -1, -1, 87, -1, -1, 90,
5477 -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
5478 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
5479 -1, 112, -1, -1, -1, -1, -1, 118, -1, -1,
5480 121, -1, -1, 124, 125, 126, 137, 128, 129, -1,
5481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5482 -1, -1, -1, -1, 145, 146, -1, -1, 149, -1,
5483 151, 152, 153, 154, 155, 156, 157, -1, 159, -1,
5484 161, 162, 163, 164, -1, 166, 177, 168, -1, -1,
5485 -1, -1, -1, -1, 175, 176, -1, 178, -1, -1,
5486 -1, -1, -1, -1, 195, 196, 197, 198, 199, 200,
5487 201, 202, 203, 204, -1, -1, -1, 208, 209, 210,
5488 -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
5489 221, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5490 -1, 222, 223, -1, -1, -1, -1, -1, -1, 230,
5491 -1, -1, -1, 234, 235, 236, 237, 238, -1, -1,
5492 -1, -1, -1, -1, 245, -1, -1, 248, 249, 250,
5493 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
5494 -1, -1, -1, -1, -1, -1, 267, -1, -1, 270,
5495 -1, -1, -1, 274, -1, -1, 277, 278, -1, 280,
5496 -1, -1, 283, -1, 285, -1, -1, -1, 289, 290,
5497 -1, -1, -1, -1, -1, 296, 297, 298, 299, 300,
5498 301, -1, 303, 304, 305, -1, 307, -1, -1, -1,
5499 -1, 312, 7, 8, 9, 10, 11, 12, 13, -1,
5500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5501 25, 26, -1, -1, 29, 336, 337, -1, 339, 340,
5502 -1, -1, -1, -1, 345, 346, 41, -1, -1, 44,
5503 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5504 55, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5505 -1, 66, -1, -1, -1, -1, -1, -1, -1, -1,
5506 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
5507 -1, -1, 87, -1, -1, 90, -1, -1, -1, -1,
5508 -1, 96, -1, -1, -1, -1, 101, 102, 103, -1,
5509 -1, -1, -1, -1, 109, -1, -1, 112, -1, -1,
5510 -1, -1, -1, 118, -1, -1, 121, -1, -1, 124,
5511 125, 126, 137, 128, 129, -1, -1, -1, -1, -1,
5512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5513 145, 146, -1, -1, 149, -1, 151, 152, 153, 154,
5514 155, 156, 157, -1, 159, -1, 161, 162, 163, 164,
5515 -1, 166, 177, 168, -1, -1, -1, -1, -1, -1,
5516 175, -1, -1, 178, -1, -1, -1, -1, -1, -1,
5517 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
5518 -1, -1, -1, 208, 209, 210, -1, 212, 213, 214,
5519 215, 216, 217, 218, 219, 220, 221, -1, -1, -1,
5520 -1, -1, -1, -1, -1, -1, -1, 222, 223, -1,
5521 -1, -1, -1, -1, -1, 230, -1, -1, -1, 234,
5522 235, 236, 237, 238, 239, 240, 241, 242, -1, -1,
5523 245, -1, -1, 248, 249, 250, 251, 252, 253, 254,
5524 255, 256, 257, 258, -1, 260, -1, -1, -1, -1,
5525 -1, -1, 267, -1, -1, 270, -1, -1, -1, 274,
5526 -1, -1, 277, 278, -1, 280, -1, -1, 283, -1,
5527 285, -1, -1, -1, 289, 290, -1, -1, -1, -1,
5528 -1, 296, 297, 298, 299, 300, 301, -1, 303, 304,
5529 305, -1, 307, -1, -1, -1, -1, 312, 7, 8,
5530 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
5531 -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
5532 29, 336, 337, -1, 339, 340, -1, -1, -1, -1,
5533 345, 346, 41, -1, -1, 44, -1, -1, -1, -1,
5534 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
5535 -1, -1, -1, -1, -1, -1, -1, 66, -1, -1,
5536 -1, 70, -1, -1, 73, 74, -1, -1, -1, -1,
5537 -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
5538 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5539 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5540 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
5541 -1, -1, 121, -1, -1, 124, 125, 126, -1, 128,
5542 129, -1, -1, -1, -1, 137, -1, -1, -1, -1,
5543 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
5544 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
5545 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
5546 -1, -1, -1, -1, -1, 177, 175, -1, -1, 178,
5547 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5548 -1, -1, -1, 195, 196, 197, 198, 199, 200, 201,
5549 202, 203, 204, -1, -1, -1, 208, 209, 210, 208,
5550 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
5551 -1, -1, -1, 222, 223, -1, -1, -1, -1, -1,
5552 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
5553 -1, -1, -1, -1, -1, -1, 245, -1, -1, 248,
5554 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5555 -1, 260, -1, -1, -1, -1, -1, -1, 267, -1,
5556 -1, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5557 -1, 280, -1, -1, 283, -1, 285, -1, -1, -1,
5558 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
5559 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
5560 -1, -1, -1, 312, 7, 8, 9, 10, 11, 12,
5561 13, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5562 -1, -1, 25, 26, -1, -1, 29, 336, 337, -1,
5563 339, 340, -1, -1, -1, -1, 345, 346, 41, -1,
5564 -1, 44, -1, -1, -1, -1, -1, -1, -1, -1,
5565 -1, -1, 55, -1, -1, -1, -1, -1, -1, -1,
5566 -1, -1, -1, 66, -1, -1, -1, 70, -1, -1,
5567 73, 74, -1, -1, -1, -1, -1, -1, -1, -1,
5568 -1, 84, -1, -1, 87, -1, -1, 90, -1, -1,
5569 -1, -1, -1, 96, -1, -1, -1, -1, 101, 102,
5570 103, -1, -1, -1, -1, -1, 109, -1, -1, 112,
5571 -1, -1, -1, -1, -1, 118, -1, -1, 121, -1,
5572 -1, 124, 125, 126, 137, 128, 129, -1, -1, -1,
5573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5574 -1, -1, 145, 146, -1, -1, 149, -1, 151, 152,
5575 153, 154, 155, 156, 157, -1, 159, -1, 161, 162,
5576 163, 164, -1, 166, 177, 168, -1, -1, -1, -1,
5577 -1, -1, 175, 176, -1, 178, -1, -1, -1, -1,
5578 -1, -1, 195, 196, 197, 198, 199, 200, 201, 202,
5579 203, 204, -1, -1, -1, 208, 209, 210, -1, 212,
5580 213, 214, 215, 216, 217, 218, 219, 220, 221, -1,
5581 -1, -1, -1, -1, -1, -1, -1, -1, -1, 222,
5582 223, -1, -1, -1, -1, -1, -1, 230, -1, -1,
5583 -1, 234, 235, 236, 237, 238, -1, -1, -1, -1,
5584 -1, -1, 245, -1, -1, 248, 249, 250, 251, 252,
5585 253, 254, 255, 256, 257, 258, -1, 260, -1, -1,
5586 -1, -1, -1, -1, 267, -1, -1, 270, -1, -1,
5587 -1, 274, -1, -1, 277, 278, -1, 280, -1, -1,
5588 283, -1, 285, -1, -1, -1, 289, 290, -1, -1,
5589 -1, -1, -1, 296, 297, 298, 299, 300, 301, -1,
5590 303, 304, 305, -1, 307, -1, -1, -1, -1, 312,
5591 7, 8, 9, 10, 11, 12, 13, -1, -1, -1,
5592 -1, -1, -1, -1, -1, -1, -1, -1, 25, 26,
5593 -1, -1, 29, 336, 337, -1, 339, 340, -1, -1,
5594 -1, -1, 345, 346, 41, -1, -1, 44, -1, -1,
5595 -1, -1, -1, -1, -1, -1, -1, -1, 55, -1,
5596 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
5597 -1, -1, -1, 70, -1, -1, 73, 74, -1, -1,
5598 -1, -1, -1, -1, -1, -1, -1, 84, -1, -1,
5599 87, -1, -1, 90, -1, -1, -1, -1, -1, 96,
5600 -1, -1, -1, -1, 101, 102, 103, -1, -1, -1,
5601 -1, -1, 109, -1, -1, 112, -1, -1, -1, -1,
5602 -1, 118, -1, -1, 121, 137, -1, 124, 125, 126,
5603 -1, 128, 129, -1, -1, -1, -1, -1, -1, -1,
5604 -1, -1, -1, -1, -1, -1, -1, -1, 145, 146,
5605 -1, -1, 149, -1, 151, 152, 153, 154, 155, 156,
5606 157, -1, 159, -1, 161, 162, 163, 164, -1, 166,
5607 -1, 168, -1, -1, -1, -1, -1, -1, 175, -1,
5608 -1, 178, -1, 195, 196, 197, 198, 199, 200, 201,
5609 202, 203, 204, -1, -1, -1, 208, 209, 210, -1,
5610 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
5611 -1, 208, -1, -1, -1, -1, -1, -1, -1, -1,
5612 -1, -1, -1, -1, -1, 222, 223, -1, -1, -1,
5613 -1, -1, -1, 230, -1, -1, -1, 234, 235, 236,
5614 237, 238, -1, -1, -1, -1, -1, -1, 245, -1,
5615 -1, 248, 249, 250, 251, 252, 253, 254, 255, 256,
5616 257, 258, -1, 260, -1, -1, -1, -1, -1, -1,
5617 267, -1, -1, 270, -1, -1, -1, 274, -1, -1,
5618 277, 278, -1, 280, -1, -1, 283, -1, 285, -1,
5619 -1, -1, 289, 290, -1, -1, -1, -1, -1, 296,
5620 297, 298, 299, 300, 301, -1, 303, 304, 305, -1,
5621 307, -1, -1, -1, -1, 312, 7, 8, 9, 10,
5622 11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
5623 -1, -1, -1, -1, 25, 26, -1, -1, 29, 336,
5624 337, -1, 339, 340, -1, -1, -1, -1, 345, 346,
5625 41, -1, -1, 44, -1, -1, -1, -1, -1, -1,
5626 -1, -1, -1, -1, 55, -1, -1, -1, -1, -1,
5627 -1, -1, -1, -1, -1, 66, -1, -1, -1, 70,
5628 -1, -1, 73, 74, -1, -1, -1, -1, -1, -1,
5629 -1, -1, -1, 84, -1, -1, 87, -1, -1, 90,
5630 -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
5631 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
5632 -1, 112, -1, -1, -1, -1, -1, 118, -1, -1,
5633 121, -1, -1, 124, 125, 126, -1, 128, 129, -1,
5634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5635 -1, -1, -1, -1, 145, 146, -1, -1, 149, -1,
5636 151, 152, 153, 154, 155, 156, 157, -1, 159, -1,
5637 161, 162, 163, 164, -1, 166, -1, 168, -1, -1,
5638 -1, -1, -1, -1, 175, -1, -1, 178, -1, -1,
5639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5640 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5643 -1, 222, 223, -1, -1, -1, -1, -1, -1, 230,
5644 -1, -1, -1, 234, 235, 236, 237, 238, -1, -1,
5645 -1, -1, -1, -1, 245, -1, -1, 248, 249, 250,
5646 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
5647 -1, -1, -1, -1, -1, -1, 267, -1, -1, 270,
5648 -1, -1, -1, 274, -1, -1, 277, 278, -1, 280,
5649 -1, -1, 283, -1, 285, -1, -1, -1, 289, 290,
5650 -1, -1, -1, -1, -1, 296, 297, 298, 299, 300,
5651 301, -1, 303, 304, 305, -1, 307, -1, -1, -1,
5652 -1, 312, 7, 8, 9, 10, 11, 12, 13, -1,
5653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5654 25, 26, -1, -1, 29, 336, 337, -1, 339, 340,
5655 -1, -1, -1, -1, 345, 346, 41, -1, -1, 44,
5656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5657 55, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5658 -1, 66, -1, -1, 69, -1, -1, -1, -1, -1,
5659 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
5660 -1, -1, 87, -1, -1, 90, -1, -1, -1, -1,
5661 -1, 96, -1, -1, -1, -1, 101, 102, 103, -1,
5662 -1, -1, -1, -1, 109, -1, -1, 112, -1, -1,
5663 -1, -1, -1, 118, -1, -1, 121, -1, -1, 124,
5664 125, 126, -1, 128, 129, -1, -1, -1, -1, -1,
5665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5666 145, 146, -1, -1, 149, -1, 151, 152, 153, 154,
5667 155, 156, 157, -1, 159, -1, 161, 162, 163, 164,
5668 -1, 166, -1, 168, -1, -1, -1, -1, -1, -1,
5669 175, 176, -1, 178, -1, -1, -1, -1, -1, -1,
5670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5671 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5672 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5673 -1, -1, -1, -1, -1, -1, -1, 222, 223, -1,
5674 -1, -1, -1, -1, -1, 230, -1, -1, -1, 234,
5675 235, 236, 237, 238, -1, -1, -1, -1, -1, -1,
5676 245, -1, -1, 248, 249, 250, 251, 252, 253, 254,
5677 255, 256, 257, 258, -1, 260, -1, -1, -1, -1,
5678 -1, -1, 267, -1, -1, 270, -1, -1, -1, 274,
5679 -1, -1, 277, 278, -1, 280, -1, -1, 283, -1,
5680 285, -1, -1, -1, 289, 290, -1, -1, 293, -1,
5681 -1, 296, 297, 298, 299, 300, 301, -1, 303, 304,
5682 305, -1, 307, -1, -1, -1, -1, 312, 7, 8,
5683 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
5684 -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
5685 29, 336, 337, -1, 339, 340, -1, -1, -1, -1,
5686 345, 346, 41, -1, -1, 44, -1, -1, -1, -1,
5687 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
5688 -1, -1, -1, -1, -1, -1, -1, 66, -1, -1,
5689 -1, 70, -1, -1, 73, 74, -1, -1, -1, -1,
5690 -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
5691 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5692 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5693 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
5694 -1, -1, 121, -1, -1, 124, 125, 126, -1, 128,
5695 129, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5696 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
5697 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
5698 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
5699 -1, -1, -1, -1, -1, -1, 175, -1, -1, 178,
5700 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5701 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5703 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5704 -1, -1, -1, 222, 223, -1, -1, -1, -1, -1,
5705 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
5706 -1, -1, -1, -1, -1, -1, 245, -1, -1, 248,
5707 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5708 -1, 260, -1, -1, -1, -1, -1, -1, 267, -1,
5709 -1, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5710 -1, 280, -1, -1, 283, -1, 285, -1, -1, -1,
5711 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
5712 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
5713 -1, -1, -1, 312, 7, 8, 9, 10, 11, 12,
5714 13, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5715 -1, -1, 25, 26, -1, -1, 29, 336, 337, -1,
5716 339, 340, -1, -1, -1, -1, 345, 346, 41, -1,
5717 -1, 44, -1, -1, -1, -1, -1, -1, -1, -1,
5718 -1, -1, 55, -1, -1, -1, -1, -1, -1, -1,
5719 -1, -1, -1, 66, -1, -1, -1, -1, -1, -1,
5720 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5721 -1, 84, -1, -1, 87, -1, -1, 90, -1, -1,
5722 -1, -1, -1, 96, -1, -1, -1, -1, 101, 102,
5723 103, -1, -1, -1, -1, -1, 109, -1, -1, 112,
5724 -1, -1, -1, -1, -1, 118, -1, -1, 121, -1,
5725 -1, 124, 125, 126, -1, 128, 129, -1, -1, -1,
5726 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5727 -1, -1, 145, 146, -1, -1, 149, -1, 151, 152,
5728 153, 154, 155, 156, 157, -1, 159, -1, 161, 162,
5729 163, 164, -1, 166, -1, 168, -1, -1, -1, -1,
5730 -1, -1, 175, -1, -1, 178, -1, -1, -1, -1,
5731 -1, -1, -1, -1, -1, 188, -1, -1, -1, -1,
5732 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5734 -1, -1, -1, -1, -1, -1, -1, -1, -1, 222,
5735 223, -1, -1, -1, -1, -1, -1, 230, -1, 232,
5736 -1, 234, 235, 236, 237, 238, -1, -1, -1, -1,
5737 -1, -1, 245, -1, -1, 248, 249, 250, 251, 252,
5738 253, 254, 255, 256, 257, 258, -1, 260, -1, -1,
5739 -1, -1, -1, -1, 267, -1, -1, 270, -1, -1,
5740 -1, 274, -1, -1, 277, 278, -1, 280, -1, -1,
5741 283, -1, 285, -1, -1, -1, 289, 290, -1, -1,
5742 -1, -1, -1, 296, 297, 298, 299, 300, 301, -1,
5743 303, 304, 305, -1, 307, -1, -1, -1, -1, 312,
5744 7, 8, 9, 10, 11, 12, 13, -1, -1, -1,
5745 -1, -1, -1, -1, -1, -1, -1, -1, 25, 26,
5746 -1, -1, 29, 336, 337, -1, 339, 340, -1, -1,
5747 -1, -1, 345, 346, 41, -1, -1, 44, -1, -1,
5748 -1, -1, -1, -1, -1, -1, -1, -1, 55, -1,
5749 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
5750 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5751 -1, -1, -1, -1, -1, -1, -1, 84, -1, -1,
5752 87, -1, -1, 90, -1, -1, -1, -1, -1, 96,
5753 -1, -1, -1, -1, 101, 102, 103, -1, -1, -1,
5754 -1, -1, 109, -1, -1, 112, -1, -1, -1, -1,
5755 -1, 118, -1, -1, 121, -1, -1, 124, 125, 126,
5756 -1, 128, 129, -1, -1, -1, -1, -1, -1, -1,
5757 -1, -1, -1, -1, -1, -1, -1, -1, 145, 146,
5758 -1, -1, 149, -1, 151, 152, 153, 154, 155, 156,
5759 157, -1, 159, -1, 161, 162, 163, 164, -1, 166,
5760 -1, 168, -1, -1, -1, -1, -1, -1, 175, -1,
5761 -1, 178, -1, -1, -1, -1, -1, -1, -1, -1,
5762 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5763 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5765 -1, -1, -1, -1, -1, 222, 223, -1, -1, -1,
5766 -1, -1, -1, 230, -1, -1, -1, 234, 235, 236,
5767 237, 238, -1, -1, -1, -1, -1, -1, 245, -1,
5768 -1, 248, 249, 250, 251, 252, 253, 254, 255, 256,
5769 257, 258, -1, 260, -1, -1, -1, -1, -1, -1,
5770 267, -1, -1, 270, -1, -1, -1, 274, -1, -1,
5771 277, 278, -1, 280, -1, -1, 283, 284, 285, -1,
5772 -1, -1, 289, 290, -1, -1, -1, -1, -1, 296,
5773 297, 298, 299, 300, 301, -1, 303, 304, 305, -1,
5774 307, -1, -1, -1, -1, 312, 7, 8, 9, 10,
5775 11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
5776 -1, -1, -1, -1, 25, 26, -1, -1, 29, 336,
5777 337, -1, 339, 340, -1, -1, -1, -1, 345, 346,
5778 41, -1, -1, 44, -1, -1, -1, -1, -1, -1,
5779 -1, -1, -1, -1, 55, -1, -1, -1, -1, -1,
5780 -1, -1, -1, -1, -1, 66, -1, -1, -1, -1,
5781 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5782 -1, -1, -1, 84, -1, -1, 87, -1, -1, 90,
5783 -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
5784 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
5785 -1, 112, -1, -1, -1, -1, -1, 118, -1, -1,
5786 121, -1, -1, 124, 125, 126, -1, 128, 129, -1,
5787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5788 -1, -1, -1, -1, 145, 146, -1, -1, 149, -1,
5789 151, 152, 153, 154, 155, 156, 157, -1, 159, -1,
5790 161, 162, 163, 164, -1, 166, -1, 168, -1, -1,
5791 -1, -1, -1, -1, 175, -1, -1, 178, -1, -1,
5792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5793 191, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5794 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5795 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5796 -1, 222, 223, -1, -1, -1, -1, -1, -1, 230,
5797 -1, -1, -1, 234, 235, 236, 237, 238, -1, -1,
5798 -1, -1, -1, -1, 245, -1, -1, 248, 249, 250,
5799 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
5800 -1, -1, -1, -1, -1, -1, 267, -1, -1, 270,
5801 -1, -1, -1, 274, -1, -1, 277, 278, -1, 280,
5802 -1, -1, 283, -1, 285, -1, -1, -1, 289, 290,
5803 -1, -1, -1, -1, -1, 296, 297, 298, 299, 300,
5804 301, -1, 303, 304, 305, -1, 307, -1, -1, -1,
5805 -1, 312, 7, 8, 9, 10, 11, 12, 13, -1,
5806 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5807 25, 26, -1, -1, 29, 336, 337, -1, 339, 340,
5808 -1, -1, -1, -1, 345, 346, 41, -1, -1, 44,
5809 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5810 55, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5811 -1, 66, -1, -1, -1, -1, -1, -1, -1, -1,
5812 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
5813 -1, -1, 87, -1, -1, 90, -1, -1, -1, -1,
5814 -1, 96, -1, -1, -1, -1, 101, 102, 103, -1,
5815 -1, -1, -1, -1, 109, -1, -1, 112, -1, -1,
5816 -1, -1, -1, 118, -1, -1, 121, -1, -1, 124,
5817 125, 126, -1, 128, 129, -1, -1, -1, -1, -1,
5818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5819 145, 146, -1, -1, 149, -1, 151, 152, 153, 154,
5820 155, 156, 157, -1, 159, -1, 161, 162, 163, 164,
5821 -1, 166, -1, 168, -1, -1, -1, -1, -1, -1,
5822 175, 176, -1, 178, -1, -1, -1, -1, -1, -1,
5823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5824 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5826 -1, -1, -1, -1, -1, -1, -1, 222, 223, -1,
5827 -1, -1, -1, -1, -1, 230, -1, -1, -1, 234,
5828 235, 236, 237, 238, -1, -1, -1, -1, -1, -1,
5829 245, -1, -1, 248, 249, 250, 251, 252, 253, 254,
5830 255, 256, 257, 258, -1, 260, -1, -1, -1, -1,
5831 -1, -1, 267, -1, -1, 270, -1, -1, -1, 274,
5832 -1, -1, 277, 278, -1, 280, -1, -1, 283, -1,
5833 285, -1, -1, -1, 289, 290, -1, -1, -1, -1,
5834 -1, 296, 297, 298, 299, 300, 301, -1, 303, 304,
5835 305, -1, 307, -1, -1, -1, -1, 312, 7, 8,
5836 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
5837 -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
5838 29, 336, 337, -1, 339, 340, -1, -1, -1, -1,
5839 345, 346, 41, -1, -1, 44, -1, -1, -1, -1,
5840 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
5841 -1, -1, -1, -1, -1, -1, -1, 66, -1, -1,
5842 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5843 -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
5844 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5845 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5846 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
5847 -1, -1, 121, -1, -1, 124, 125, 126, -1, 128,
5848 129, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5849 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
5850 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
5851 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
5852 -1, -1, -1, -1, -1, -1, 175, 176, -1, 178,
5853 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5857 -1, -1, -1, 222, 223, -1, -1, -1, -1, -1,
5858 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
5859 -1, -1, -1, -1, -1, -1, 245, -1, -1, 248,
5860 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5861 -1, 260, -1, -1, -1, -1, -1, -1, 267, -1,
5862 -1, 270, -1, -1, -1, 274, -1, -1, 277, 278,
5863 -1, 280, -1, -1, 283, -1, 285, -1, -1, -1,
5864 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
5865 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
5866 -1, -1, -1, 312, 7, 8, 9, 10, 11, 12,
5867 13, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5868 -1, -1, 25, 26, -1, -1, 29, 336, 337, -1,
5869 339, 340, -1, -1, -1, -1, 345, 346, 41, -1,
5870 -1, 44, -1, -1, -1, -1, -1, -1, -1, -1,
5871 -1, -1, 55, -1, -1, -1, -1, -1, -1, -1,
5872 -1, -1, -1, 66, -1, -1, -1, -1, -1, -1,
5873 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5874 -1, 84, -1, -1, 87, -1, -1, 90, -1, -1,
5875 -1, -1, -1, 96, -1, -1, -1, -1, 101, 102,
5876 103, -1, -1, -1, -1, -1, 109, -1, -1, 112,
5877 -1, -1, -1, -1, -1, 118, -1, -1, 121, -1,
5878 -1, 124, 125, 126, -1, 128, 129, -1, -1, -1,
5879 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5880 -1, -1, 145, 146, -1, -1, 149, -1, 151, 152,
5881 153, 154, 155, 156, 157, -1, 159, -1, 161, 162,
5882 163, 164, -1, 166, -1, 168, -1, -1, -1, -1,
5883 -1, -1, 175, -1, -1, 178, -1, -1, -1, -1,
5884 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5885 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5886 -1, -1, -1, -1, -1, 208, -1, -1, -1, -1,
5887 -1, -1, -1, -1, -1, -1, -1, -1, -1, 222,
5888 223, -1, -1, -1, -1, -1, -1, 230, -1, -1,
5889 -1, 234, 235, 236, 237, 238, -1, -1, -1, -1,
5890 -1, -1, 245, -1, -1, 248, 249, 250, 251, 252,
5891 253, 254, 255, 256, 257, 258, -1, 260, -1, -1,
5892 -1, -1, -1, -1, 267, -1, -1, 270, -1, -1,
5893 -1, 274, -1, -1, 277, 278, -1, 280, -1, -1,
5894 283, -1, 285, -1, -1, -1, 289, 290, -1, -1,
5895 -1, -1, -1, 296, 297, 298, 299, 300, 301, -1,
5896 303, 304, 305, -1, 307, -1, -1, -1, -1, 312,
5897 7, 8, 9, 10, 11, 12, 13, -1, -1, -1,
5898 -1, -1, -1, -1, -1, -1, -1, -1, 25, 26,
5899 -1, -1, 29, 336, 337, -1, 339, 340, -1, -1,
5900 -1, -1, 345, 346, 41, -1, -1, 44, -1, -1,
5901 -1, -1, -1, -1, -1, -1, -1, -1, 55, -1,
5902 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
5903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5904 -1, -1, -1, -1, -1, -1, -1, 84, -1, -1,
5905 87, -1, -1, 90, -1, -1, -1, -1, -1, 96,
5906 -1, -1, -1, -1, 101, 102, 103, -1, -1, -1,
5907 -1, -1, 109, -1, -1, 112, -1, -1, -1, -1,
5908 -1, 118, -1, -1, 121, -1, -1, 124, 125, 126,
5909 -1, 128, 129, -1, -1, -1, -1, -1, -1, -1,
5910 -1, -1, -1, -1, -1, -1, -1, -1, 145, 146,
5911 -1, -1, 149, -1, 151, 152, 153, 154, 155, 156,
5912 157, -1, 159, -1, 161, 162, 163, 164, -1, 166,
5913 -1, 168, -1, -1, -1, -1, -1, -1, 175, -1,
5914 -1, 178, -1, -1, -1, -1, -1, -1, -1, -1,
5915 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5916 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5917 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5918 -1, -1, -1, -1, -1, 222, 223, -1, -1, -1,
5919 -1, -1, -1, 230, -1, 232, -1, 234, 235, 236,
5920 237, 238, -1, -1, -1, -1, -1, -1, 245, -1,
5921 -1, 248, 249, 250, 251, 252, 253, 254, 255, 256,
5922 257, 258, -1, 260, -1, -1, -1, -1, -1, -1,
5923 267, -1, -1, 270, -1, -1, -1, 274, -1, -1,
5924 277, 278, -1, 280, -1, -1, 283, -1, 285, -1,
5925 -1, -1, 289, 290, -1, -1, -1, -1, -1, 296,
5926 297, 298, 299, 300, 301, -1, 303, 304, 305, -1,
5927 307, -1, -1, -1, -1, 312, 7, 8, 9, 10,
5928 11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
5929 -1, -1, -1, -1, 25, 26, -1, -1, 29, 336,
5930 337, -1, 339, 340, -1, -1, -1, -1, 345, 346,
5931 41, -1, -1, 44, -1, -1, -1, -1, -1, -1,
5932 -1, -1, -1, -1, 55, -1, -1, -1, -1, -1,
5933 -1, -1, -1, -1, -1, 66, -1, -1, -1, -1,
5934 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5935 -1, -1, -1, 84, -1, -1, 87, -1, -1, 90,
5936 -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
5937 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
5938 -1, 112, -1, -1, -1, -1, -1, 118, -1, -1,
5939 121, -1, -1, 124, 125, 126, -1, 128, 129, -1,
5940 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5941 -1, -1, -1, -1, 145, 146, -1, -1, 149, -1,
5942 151, 152, 153, 154, 155, 156, 157, -1, 159, -1,
5943 161, 162, 163, 164, -1, 166, -1, 168, -1, -1,
5944 -1, -1, -1, -1, 175, -1, -1, 178, -1, -1,
5945 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5947 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5948 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5949 -1, 222, 223, -1, -1, -1, -1, -1, -1, 230,
5950 -1, -1, -1, 234, 235, 236, 237, 238, -1, -1,
5951 -1, -1, -1, -1, 245, -1, -1, 248, 249, 250,
5952 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
5953 -1, -1, -1, -1, -1, -1, 267, -1, -1, 270,
5954 -1, -1, -1, 274, -1, -1, 277, 278, -1, 280,
5955 -1, -1, 283, -1, 285, -1, -1, -1, 289, 290,
5956 -1, -1, -1, -1, -1, 296, 297, 298, 299, 300,
5957 301, -1, 303, 304, 305, -1, 307, -1, -1, -1,
5958 -1, 312, 7, 8, 9, 10, 11, 12, 13, -1,
5959 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5960 25, 26, -1, -1, 29, 336, 337, -1, 339, 340,
5961 -1, -1, -1, -1, 345, 346, 41, -1, -1, 44,
5962 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5963 55, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5964 -1, 66, -1, -1, -1, -1, -1, -1, -1, -1,
5965 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
5966 -1, -1, 87, -1, -1, 90, -1, -1, -1, -1,
5967 -1, 96, -1, -1, -1, -1, 101, 102, 103, -1,
5968 -1, -1, -1, -1, 109, -1, -1, 112, -1, -1,
5969 -1, -1, -1, 118, -1, -1, 121, -1, -1, 124,
5970 125, 126, -1, 128, 129, -1, -1, -1, -1, -1,
5971 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5972 145, 146, -1, -1, 149, -1, 151, 152, 153, 154,
5973 155, 156, 157, -1, 159, -1, 161, 162, 163, 164,
5974 -1, 166, -1, 168, -1, -1, -1, -1, -1, -1,
5975 175, -1, -1, 178, -1, -1, -1, -1, -1, -1,
5976 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5977 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5978 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5979 -1, -1, -1, -1, -1, -1, -1, 222, 223, -1,
5980 -1, -1, -1, -1, -1, 230, -1, -1, -1, 234,
5981 235, 236, 237, 238, -1, -1, -1, -1, -1, -1,
5982 245, -1, -1, 248, 249, 250, 251, 252, 253, 254,
5983 255, 256, 257, 258, -1, 260, -1, -1, -1, -1,
5984 -1, -1, 267, -1, -1, 270, -1, -1, -1, 274,
5985 -1, -1, 277, 278, -1, 280, -1, -1, 283, -1,
5986 285, -1, -1, -1, 289, 290, -1, -1, -1, -1,
5987 -1, 296, 297, 298, 299, 300, 301, -1, 303, 304,
5988 305, -1, 307, -1, -1, -1, -1, 312, 7, 8,
5989 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
5990 -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
5991 29, 336, 337, -1, 339, 340, -1, -1, -1, -1,
5992 345, 346, 41, -1, -1, 44, -1, -1, -1, -1,
5993 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
5994 -1, -1, -1, -1, -1, -1, -1, 66, -1, -1,
5995 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5996 -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
5997 -1, 90, -1, -1, -1, -1, -1, 96, -1, -1,
5998 -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
5999 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
6000 -1, -1, 121, -1, -1, 124, 125, 126, -1, 128,
6001 129, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6002 -1, -1, -1, -1, -1, -1, 145, 146, -1, -1,
6003 149, -1, 151, 152, 153, 154, 155, 156, 157, -1,
6004 159, -1, 161, 162, 163, 164, -1, 166, -1, 168,
6005 -1, -1, -1, -1, -1, -1, 175, -1, -1, 178,
6006 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6007 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6008 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6009 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6010 -1, -1, -1, 222, 223, -1, -1, -1, -1, -1,
6011 -1, 230, -1, -1, -1, 234, 235, 236, 237, 238,
6012 -1, -1, -1, -1, -1, -1, 245, -1, -1, 248,
6013 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
6014 -1, 260, -1, -1, -1, -1, -1, -1, 267, -1,
6015 -1, 270, -1, -1, -1, 274, -1, -1, 277, 278,
6016 -1, 280, -1, -1, 283, -1, 285, -1, -1, -1,
6017 289, 290, -1, -1, -1, -1, -1, 296, 297, 298,
6018 299, 300, 301, -1, 303, 304, 305, -1, 307, -1,
6019 -1, -1, -1, 312, 7, 8, 9, 10, 11, 12,
6020 13, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6021 -1, -1, 25, 26, -1, -1, 29, 336, 337, -1,
6022 339, 340, -1, -1, -1, -1, 345, 346, 41, -1,
6023 -1, 44, -1, -1, -1, -1, -1, -1, -1, -1,
6024 -1, -1, 55, -1, -1, -1, -1, -1, -1, -1,
6025 -1, -1, -1, 66, -1, -1, -1, -1, -1, -1,
6026 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6027 -1, 84, -1, -1, 87, -1, -1, 90, -1, -1,
6028 -1, -1, -1, 96, -1, -1, -1, -1, 101, 102,
6029 103, -1, -1, -1, -1, -1, 109, -1, -1, 112,
6030 -1, -1, -1, -1, -1, 118, -1, -1, 121, -1,
6031 -1, 124, 125, 126, -1, 128, 129, -1, -1, -1,
6032 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6033 -1, -1, 145, 146, -1, -1, 149, -1, 151, 152,
6034 153, 154, 155, 156, 157, -1, 159, -1, 161, 162,
6035 163, 164, -1, 166, -1, 168, -1, -1, -1, -1,
6036 -1, -1, 175, -1, -1, 178, -1, -1, -1, -1,
6037 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6038 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6039 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6040 -1, -1, -1, -1, -1, -1, -1, -1, -1, 222,
6041 223, -1, -1, -1, -1, -1, -1, 230, -1, -1,
6042 -1, 234, 235, 236, 237, 238, -1, -1, -1, -1,
6043 -1, -1, 245, -1, -1, 248, 249, 250, 251, 252,
6044 253, 254, 255, 256, 257, 258, -1, 260, -1, -1,
6045 -1, -1, -1, -1, 267, -1, -1, 270, -1, -1,
6046 -1, 274, -1, -1, 277, 278, -1, 280, -1, -1,
6047 283, -1, 285, -1, -1, -1, 289, 290, -1, -1,
6048 -1, -1, -1, 296, 297, 298, 299, 300, 301, -1,
6049 303, 304, 305, -1, 307, -1, -1, -1, -1, 312,
6050 7, 8, 9, 10, 11, 12, 13, -1, -1, -1,
6051 -1, -1, -1, -1, -1, -1, -1, -1, 25, 26,
6052 -1, -1, 29, 336, 337, -1, 339, 340, -1, -1,
6053 -1, -1, 345, 346, 41, -1, -1, 44, -1, -1,
6054 -1, -1, -1, -1, -1, -1, -1, -1, 55, -1,
6055 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
6056 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6057 -1, -1, -1, -1, -1, -1, -1, 84, -1, -1,
6058 87, -1, -1, 90, -1, -1, -1, -1, -1, 96,
6059 -1, -1, -1, -1, 101, 102, 103, -1, -1, -1,
6060 -1, -1, 109, -1, -1, 112, -1, -1, -1, -1,
6061 -1, 118, -1, -1, 121, -1, -1, 124, 125, 126,
6062 -1, 128, 129, -1, -1, -1, -1, -1, -1, -1,
6063 -1, -1, -1, -1, -1, -1, -1, -1, 145, 146,
6064 -1, -1, 149, -1, 151, 152, 153, 154, 155, 156,
6065 157, -1, 159, -1, 161, 162, 163, 164, -1, 166,
6066 -1, 168, -1, -1, -1, -1, -1, -1, 175, -1,
6067 -1, 178, -1, -1, -1, -1, -1, -1, -1, -1,
6068 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6069 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6070 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6071 -1, -1, -1, -1, -1, 222, 223, -1, -1, -1,
6072 -1, -1, -1, 230, -1, -1, -1, 234, 235, 236,
6073 237, 238, -1, -1, -1, -1, -1, -1, 245, -1,
6074 -1, 248, 249, 250, 251, 252, 253, 254, 255, 256,
6075 257, 258, -1, 260, -1, -1, -1, -1, -1, -1,
6076 267, -1, -1, 270, -1, -1, -1, 274, -1, -1,
6077 277, 278, -1, 280, -1, -1, 283, -1, 285, -1,
6078 -1, -1, 289, 290, -1, -1, -1, -1, -1, 296,
6079 297, 298, 299, 300, 301, -1, 303, 304, 305, -1,
6080 307, -1, -1, -1, -1, 312, -1, -1, -1, -1,
6081 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6082 -1, -1, -1, -1, -1, -1, -1, -1, -1, 336,
6083 337, -1, 339, 340, -1, -1, -1, -1, 345, 346
6084};
6085
6086 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
6087 symbol of state STATE-NUM. */
6088static const yytype_uint16 yystos[] =
6089{
6090 0, 1, 54, 67, 68, 69, 70, 81, 82, 83,
6091 84, 90, 136, 174, 176, 225, 233, 234, 246, 247,
6092 249, 251, 252, 253, 254, 255, 256, 257, 258, 261,
6093 262, 268, 269, 284, 287, 293, 330, 370, 376, 377,
6094 378, 379, 382, 383, 384, 385, 387, 389, 390, 399,
6095 404, 416, 421, 422, 429, 480, 486, 489, 497, 518,
6096 533, 537, 538, 539, 548, 563, 565, 566, 572, 573,
6097 592, 596, 597, 598, 601, 735, 740, 136, 116, 7,
6098 8, 9, 10, 11, 12, 13, 25, 26, 29, 41,
6099 44, 55, 66, 84, 87, 90, 96, 101, 102, 103,
6100 109, 112, 118, 121, 124, 125, 126, 128, 129, 145,
6101 146, 149, 151, 152, 153, 154, 155, 156, 157, 159,
6102 161, 162, 163, 164, 166, 168, 175, 178, 222, 223,
6103 230, 234, 235, 236, 237, 238, 245, 248, 249, 250,
6104 251, 252, 253, 254, 255, 256, 257, 258, 260, 267,
6105 270, 274, 277, 278, 280, 283, 285, 289, 290, 296,
6106 297, 298, 299, 300, 301, 303, 304, 305, 307, 312,
6107 336, 337, 339, 340, 345, 346, 696, 723, 724, 725,
6108 181, 260, 582, 272, 85, 544, 544, 724, 83, 91,
6109 593, 594, 724, 69, 601, 272, 191, 275, 70, 73,
6110 74, 666, 667, 668, 724, 696, 373, 372, 374, 375,
6111 289, 696, 7, 8, 9, 10, 11, 12, 13, 67,
6112 68, 69, 70, 181, 262, 282, 330, 377, 400, 407,
6113 408, 409, 411, 412, 413, 720, 721, 722, 268, 271,
6114 405, 406, 61, 91, 58, 120, 283, 289, 176, 575,
6115 14, 30, 176, 241, 314, 481, 482, 556, 592, 598,
6116 711, 727, 0, 371, 7, 8, 14, 728, 729, 736,
6117 20, 58, 61, 107, 109, 120, 222, 223, 224, 225,
6118 226, 227, 238, 270, 283, 289, 292, 430, 431, 434,
6119 447, 168, 239, 240, 241, 242, 294, 341, 58, 120,
6120 168, 181, 238, 239, 240, 241, 242, 270, 283, 289,
6121 294, 338, 341, 532, 58, 59, 60, 66, 176, 270,
6122 283, 297, 485, 693, 724, 222, 223, 289, 388, 434,
6123 478, 724, 136, 106, 169, 170, 171, 620, 136, 696,
6124 112, 730, 340, 674, 724, 364, 3, 4, 5, 7,
6125 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
6126 18, 21, 22, 30, 31, 47, 48, 49, 50, 51,
6127 52, 53, 65, 110, 115, 119, 127, 137, 138, 139,
6128 140, 141, 143, 144, 147, 148, 150, 160, 167, 176,
6129 179, 195, 196, 205, 206, 207, 208, 212, 296, 297,
6130 298, 299, 317, 321, 322, 366, 368, 578, 604, 618,
6131 619, 629, 630, 631, 632, 634, 636, 637, 639, 641,
6132 643, 644, 646, 647, 648, 649, 650, 651, 652, 665,
6133 666, 669, 671, 672, 673, 675, 676, 677, 678, 679,
6134 693, 694, 695, 697, 698, 700, 715, 718, 724, 728,
6135 731, 732, 733, 734, 745, 746, 747, 748, 749, 763,
6136 770, 772, 775, 785, 786, 816, 696, 193, 545, 545,
6137 724, 92, 95, 101, 540, 541, 542, 363, 563, 566,
6138 572, 573, 595, 597, 598, 484, 485, 582, 177, 696,
6139 339, 120, 168, 239, 240, 241, 242, 283, 289, 290,
6140 294, 338, 531, 741, 176, 364, 484, 385, 385, 370,
6141 370, 696, 122, 123, 564, 730, 484, 484, 280, 484,
6142 116, 272, 291, 363, 291, 363, 275, 363, 276, 276,
6143 407, 400, 91, 540, 284, 724, 696, 323, 380, 380,
6144 176, 259, 576, 579, 580, 648, 666, 724, 363, 272,
6145 481, 601, 272, 711, 272, 272, 314, 331, 385, 730,
6146 176, 222, 223, 724, 222, 223, 696, 289, 289, 289,
6147 289, 696, 724, 323, 381, 381, 338, 289, 240, 696,
6148 696, 696, 696, 696, 696, 724, 696, 240, 168, 239,
6149 240, 241, 242, 696, 380, 380, 380, 380, 724, 380,
6150 380, 380, 696, 380, 45, 46, 536, 230, 478, 724,
6151 724, 312, 180, 180, 180, 363, 9, 10, 23, 27,
6152 28, 29, 32, 33, 34, 35, 36, 37, 38, 39,
6153 40, 55, 56, 57, 296, 297, 298, 299, 363, 684,
6154 692, 713, 715, 716, 717, 718, 728, 108, 181, 260,
6155 602, 602, 602, 313, 621, 674, 734, 724, 284, 724,
6156 733, 733, 733, 730, 734, 176, 176, 25, 176, 670,
6157 670, 670, 670, 670, 176, 646, 176, 128, 724, 176,
6158 176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
6159 176, 592, 601, 618, 630, 638, 630, 648, 648, 176,
6160 176, 176, 648, 734, 176, 682, 176, 683, 195, 196,
6161 680, 318, 648, 705, 706, 176, 176, 630, 642, 116,
6162 272, 605, 609, 191, 674, 193, 180, 183, 184, 185,
6163 186, 187, 188, 189, 190, 194, 696, 137, 195, 196,
6164 197, 198, 199, 200, 201, 202, 203, 204, 208, 209,
6165 210, 212, 213, 214, 215, 216, 217, 218, 219, 220,
6166 221, 273, 351, 364, 363, 176, 176, 176, 734, 734,
6167 364, 734, 730, 176, 259, 482, 485, 574, 86, 87,
6168 291, 546, 93, 94, 96, 102, 363, 594, 340, 604,
6169 674, 696, 240, 696, 696, 696, 696, 724, 696, 724,
6170 696, 696, 273, 177, 579, 701, 668, 724, 315, 623,
6171 136, 136, 564, 132, 132, 536, 281, 414, 415, 720,
6172 720, 414, 409, 168, 289, 410, 531, 696, 413, 117,
6173 117, 116, 116, 540, 265, 266, 432, 174, 264, 284,
6174 417, 87, 121, 122, 124, 125, 126, 129, 340, 425,
6175 427, 428, 110, 724, 696, 177, 363, 364, 176, 696,
6176 177, 696, 334, 734, 696, 711, 314, 136, 176, 177,
6177 577, 579, 581, 601, 174, 90, 340, 423, 424, 426,
6178 428, 381, 381, 381, 381, 244, 174, 397, 179, 230,
6179 391, 724, 696, 724, 381, 696, 176, 176, 176, 176,
6180 484, 343, 344, 519, 380, 240, 696, 696, 696, 696,
6181 536, 696, 696, 696, 696, 696, 696, 696, 696, 724,
6182 177, 61, 299, 695, 646, 724, 618, 478, 176, 24,
6183 25, 176, 176, 176, 41, 176, 682, 683, 302, 306,
6184 308, 309, 310, 311, 685, 688, 690, 691, 724, 176,
6185 176, 176, 176, 176, 618, 625, 626, 172, 603, 603,
6186 603, 650, 710, 727, 314, 622, 295, 586, 485, 583,
6187 585, 719, 724, 364, 618, 699, 699, 26, 177, 300,
6188 301, 303, 304, 305, 307, 311, 685, 686, 687, 117,
6189 648, 649, 648, 742, 743, 744, 742, 245, 158, 764,
6190 790, 155, 157, 788, 245, 3, 776, 649, 120, 787,
6191 788, 742, 601, 177, 177, 177, 177, 363, 648, 648,
6192 648, 729, 174, 681, 729, 681, 734, 618, 318, 703,
6193 704, 320, 705, 707, 648, 579, 702, 363, 367, 72,
6194 176, 587, 610, 611, 645, 666, 696, 724, 599, 600,
6195 724, 362, 608, 619, 630, 181, 182, 192, 630, 640,
6196 104, 105, 633, 633, 176, 176, 635, 648, 635, 635,
6197 635, 630, 640, 643, 648, 648, 648, 648, 648, 648,
6198 648, 648, 648, 648, 648, 648, 648, 648, 648, 648,
6199 648, 648, 648, 648, 648, 648, 648, 648, 115, 179,
6200 176, 724, 208, 673, 177, 701, 181, 208, 260, 648,
6201 708, 724, 708, 11, 12, 13, 208, 724, 293, 574,
6202 86, 83, 92, 99, 100, 543, 729, 542, 176, 645,
6203 19, 696, 176, 534, 534, 534, 534, 364, 115, 734,
6204 177, 363, 17, 650, 711, 250, 386, 536, 174, 363,
6205 402, 174, 401, 696, 414, 414, 267, 432, 291, 283,
6206 124, 125, 126, 108, 174, 680, 680, 710, 713, 427,
6207 264, 261, 264, 284, 287, 288, 580, 576, 484, 116,
6208 19, 554, 555, 275, 547, 484, 331, 711, 177, 363,
6209 432, 174, 713, 426, 696, 696, 696, 696, 245, 271,
6210 110, 392, 724, 259, 393, 230, 116, 176, 449, 450,
6211 484, 275, 696, 176, 208, 516, 517, 724, 516, 516,
6212 516, 340, 67, 68, 70, 262, 520, 696, 696, 536,
6213 536, 536, 536, 534, 534, 534, 534, 536, 536, 536,
6214 713, 709, 729, 26, 709, 709, 709, 729, 56, 714,
6215 734, 681, 681, 683, 682, 291, 709, 729, 709, 709,
6216 709, 709, 228, 229, 627, 363, 108, 601, 601, 601,
6217 650, 711, 623, 618, 180, 363, 609, 180, 724, 340,
6218 363, 116, 696, 161, 789, 363, 789, 789, 724, 751,
6219 176, 648, 765, 766, 767, 363, 649, 724, 773, 149,
6220 777, 789, 742, 620, 177, 185, 186, 630, 116, 363,
6221 186, 363, 177, 297, 734, 177, 734, 691, 319, 648,
6222 703, 707, 648, 329, 363, 363, 177, 363, 630, 646,
6223 666, 176, 587, 592, 598, 611, 363, 73, 74, 75,
6224 77, 78, 80, 173, 588, 590, 340, 612, 724, 612,
6225 613, 613, 364, 363, 605, 606, 607, 724, 586, 630,
6226 630, 630, 577, 577, 111, 646, 115, 653, 654, 724,
6227 177, 708, 177, 708, 177, 364, 363, 364, 724, 97,
6228 98, 92, 611, 534, 177, 535, 713, 724, 579, 316,
6229 624, 624, 271, 415, 116, 403, 268, 403, 403, 403,
6230 734, 267, 724, 724, 680, 646, 680, 727, 727, 291,
6231 232, 289, 290, 419, 420, 291, 420, 70, 92, 283,
6232 289, 418, 420, 289, 420, 177, 116, 666, 115, 557,
6233 332, 336, 337, 554, 116, 581, 267, 680, 449, 449,
6234 449, 449, 724, 59, 65, 398, 23, 278, 737, 738,
6235 392, 241, 188, 232, 452, 453, 454, 456, 459, 467,
6236 468, 479, 719, 724, 103, 433, 340, 696, 449, 516,
6237 177, 363, 713, 177, 177, 177, 481, 342, 275, 534,
6238 536, 177, 177, 177, 363, 177, 363, 177, 363, 311,
6239 685, 689, 177, 363, 177, 177, 177, 177, 235, 628,
6240 626, 176, 646, 585, 586, 259, 584, 618, 713, 713,
6241 648, 120, 157, 177, 742, 177, 177, 363, 750, 87,
6242 259, 648, 791, 792, 794, 795, 796, 276, 363, 761,
6243 340, 768, 88, 145, 771, 363, 774, 108, 778, 798,
6244 789, 177, 164, 799, 800, 789, 176, 176, 648, 648,
6245 648, 648, 312, 579, 319, 329, 648, 579, 579, 612,
6246 613, 177, 177, 177, 611, 588, 79, 611, 79, 76,
6247 589, 724, 176, 724, 600, 363, 340, 114, 614, 193,
6248 193, 177, 177, 734, 177, 352, 655, 177, 177, 208,
6249 708, 724, 275, 177, 363, 364, 729, 276, 398, 276,
6250 19, 734, 727, 727, 724, 724, 696, 724, 724, 724,
6251 94, 93, 94, 724, 696, 724, 696, 453, 176, 561,
6252 562, 734, 340, 524, 734, 557, 333, 561, 734, 727,
6253 352, 438, 275, 284, 724, 726, 739, 378, 382, 394,
6254 395, 396, 399, 404, 416, 421, 533, 666, 696, 724,
6255 177, 363, 263, 279, 292, 476, 133, 134, 455, 713,
6256 174, 724, 481, 176, 275, 448, 177, 69, 84, 90,
6257 244, 247, 286, 317, 323, 328, 387, 389, 390, 399,
6258 404, 416, 421, 490, 493, 495, 496, 497, 501, 503,
6259 509, 511, 512, 533, 537, 538, 597, 724, 724, 243,
6260 248, 243, 174, 483, 478, 696, 712, 729, 729, 729,
6261 683, 729, 236, 237, 616, 697, 724, 177, 177, 177,
6262 142, 648, 752, 758, 759, 760, 790, 789, 259, 794,
6263 177, 363, 340, 115, 151, 153, 154, 762, 766, 789,
6264 724, 769, 146, 146, 177, 649, 789, 128, 152, 649,
6265 779, 780, 781, 782, 783, 798, 291, 177, 177, 577,
6266 577, 117, 177, 177, 363, 177, 363, 579, 177, 79,
6267 611, 19, 275, 591, 611, 176, 726, 606, 176, 108,
6268 113, 617, 630, 630, 108, 106, 656, 177, 177, 618,
6269 535, 724, 348, 284, 536, 536, 536, 291, 340, 445,
6270 261, 284, 445, 562, 547, 363, 734, 363, 176, 551,
6271 551, 245, 108, 734, 724, 363, 396, 454, 724, 274,
6272 274, 485, 130, 135, 259, 457, 458, 461, 462, 464,
6273 465, 468, 277, 734, 174, 451, 478, 81, 244, 582,
6274 245, 498, 499, 696, 289, 482, 502, 618, 318, 506,
6275 507, 648, 618, 327, 491, 325, 365, 713, 289, 515,
6276 713, 7, 515, 231, 350, 521, 177, 177, 177, 177,
6277 177, 363, 364, 176, 363, 363, 761, 363, 177, 792,
6278 724, 793, 275, 275, 275, 275, 177, 177, 340, 797,
6279 798, 363, 115, 154, 784, 165, 177, 177, 648, 648,
6280 648, 611, 485, 618, 591, 726, 177, 653, 615, 618,
6281 618, 615, 108, 89, 359, 361, 657, 658, 318, 570,
6282 571, 267, 283, 724, 352, 259, 103, 115, 179, 259,
6283 177, 87, 560, 734, 734, 552, 553, 724, 554, 547,
6284 734, 293, 359, 435, 174, 446, 724, 485, 485, 131,
6285 463, 647, 461, 115, 179, 231, 279, 282, 292, 475,
6286 477, 176, 87, 175, 177, 67, 88, 261, 245, 604,
6287 487, 724, 176, 176, 618, 320, 506, 508, 318, 504,
6288 505, 319, 491, 493, 618, 176, 244, 248, 490, 6,
6289 488, 734, 244, 248, 276, 347, 348, 522, 523, 117,
6290 526, 527, 697, 724, 648, 753, 754, 756, 758, 760,
6291 752, 758, 115, 87, 115, 115, 115, 724, 780, 275,
6292 275, 177, 87, 163, 166, 801, 802, 807, 177, 177,
6293 177, 177, 177, 363, 625, 184, 353, 360, 579, 659,
6294 660, 662, 71, 179, 570, 734, 724, 116, 117, 186,
6295 444, 115, 734, 115, 463, 232, 363, 177, 363, 734,
6296 557, 554, 283, 19, 275, 437, 58, 432, 282, 340,
6297 115, 176, 274, 696, 460, 461, 175, 89, 89, 487,
6298 364, 500, 648, 482, 319, 491, 329, 648, 504, 508,
6299 491, 493, 136, 326, 514, 719, 245, 7, 245, 7,
6300 289, 345, 525, 289, 525, 523, 349, 318, 529, 177,
6301 363, 340, 755, 363, 157, 797, 154, 154, 159, 724,
6302 808, 3, 803, 804, 87, 156, 159, 809, 810, 812,
6303 813, 618, 360, 579, 660, 661, 663, 345, 356, 356,
6304 354, 664, 193, 567, 71, 359, 440, 647, 115, 176,
6305 734, 553, 62, 558, 557, 724, 176, 176, 734, 267,
6306 696, 132, 618, 484, 177, 363, 724, 177, 363, 177,
6307 491, 493, 317, 319, 329, 320, 324, 510, 136, 329,
6308 491, 177, 363, 713, 487, 488, 487, 488, 524, 524,
6309 524, 524, 345, 346, 528, 176, 328, 387, 389, 399,
6310 404, 494, 495, 530, 537, 538, 597, 754, 724, 757,
6311 758, 162, 805, 805, 159, 724, 815, 804, 814, 811,
6312 812, 355, 355, 193, 87, 114, 353, 358, 618, 319,
6313 567, 125, 291, 293, 439, 442, 647, 63, 559, 558,
6314 436, 647, 724, 432, 734, 484, 176, 466, 177, 118,
6315 474, 461, 648, 136, 491, 317, 491, 618, 329, 329,
6316 329, 719, 724, 724, 724, 724, 618, 327, 804, 806,
6317 661, 357, 345, 67, 68, 568, 319, 359, 441, 647,
6318 177, 363, 64, 560, 559, 177, 177, 267, 474, 424,
6319 42, 43, 75, 473, 275, 470, 471, 472, 319, 323,
6320 325, 713, 177, 492, 284, 70, 569, 124, 174, 443,
6321 443, 439, 560, 734, 472, 177, 67, 68, 275, 471,
6322 275, 470, 491, 513, 724, 329, 494, 583, 484, 115,
6323 335, 549, 45, 46, 87, 284, 469, 469, 510, 136,
6324 574, 293, 176, 44, 115, 259, 550, 711, 177, 363,
6325 711
6326};
6327
6328 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
6329static const yytype_uint16 yyr1[] =
6330{
6331 0, 369, 370, 371, 370, 372, 370, 373, 370, 374,
6332 370, 375, 370, 370, 370, 370, 370, 370, 376, 376,
6333 377, 377, 378, 379, 379, 380, 380, 381, 381, 382,
6334 383, 384, 385, 385, 385, 385, 385, 385, 385, 385,
6335 385, 385, 385, 386, 386, 387, 387, 388, 388, 389,
6336 389, 389, 389, 389, 389, 389, 389, 390, 390, 391,
6337 391, 391, 392, 393, 393, 394, 394, 395, 395, 396,
6338 396, 396, 396, 396, 397, 397, 398, 398, 399, 399,
6339 400, 400, 401, 401, 402, 402, 403, 403, 404, 404,
6340 405, 405, 406, 406, 407, 407, 408, 408, 409, 409,
6341 410, 410, 410, 411, 411, 411, 412, 412, 413, 413,
6342 413, 413, 413, 413, 413, 414, 414, 415, 415, 416,
6343 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
6344 416, 416, 416, 416, 417, 417, 417, 418, 418, 418,
6345 418, 418, 418, 419, 419, 419, 420, 420, 421, 421,
6346 421, 421, 421, 421, 421, 421, 422, 422, 422, 423,
6347 423, 424, 424, 425, 425, 426, 426, 426, 427, 427,
6348 427, 427, 427, 428, 428, 428, 428, 428, 428, 428,
6349 428, 429, 430, 430, 430, 430, 431, 431, 432, 432,
6350 432, 433, 433, 434, 434, 434, 434, 434, 434, 434,
6351 435, 435, 436, 437, 437, 438, 438, 439, 440, 440,
6352 441, 441, 442, 442, 443, 443, 444, 444, 444, 445,
6353 445, 446, 446, 446, 447, 447, 447, 447, 447, 447,
6354 448, 448, 448, 448, 449, 449, 450, 451, 451, 451,
6355 452, 452, 453, 453, 454, 454, 454, 455, 455, 456,
6356 456, 457, 457, 458, 458, 459, 460, 460, 461, 461,
6357 461, 462, 463, 464, 465, 465, 466, 466, 467, 468,
6358 468, 469, 469, 469, 469, 469, 470, 471, 472, 472,
6359 472, 472, 472, 473, 473, 473, 473, 474, 474, 475,
6360 475, 475, 475, 475, 475, 476, 476, 476, 477, 478,
6361 478, 479, 480, 481, 481, 482, 482, 483, 483, 484,
6362 484, 485, 486, 487, 488, 488, 489, 489, 489, 489,
6363 489, 489, 489, 489, 489, 490, 490, 490, 491, 491,
6364 492, 492, 493, 493, 493, 493, 493, 493, 493, 493,
6365 493, 493, 493, 493, 494, 494, 494, 494, 494, 494,
6366 494, 494, 495, 495, 495, 495, 495, 495, 496, 497,
6367 498, 499, 500, 500, 500, 501, 502, 502, 502, 503,
6368 503, 504, 505, 505, 506, 507, 507, 508, 508, 509,
6369 510, 510, 510, 511, 512, 512, 513, 513, 514, 514,
6370 515, 515, 516, 516, 516, 517, 517, 518, 519, 519,
6371 520, 520, 520, 520, 520, 521, 521, 522, 522, 523,
6372 523, 523, 523, 524, 524, 525, 525, 526, 527, 527,
6373 528, 528, 529, 529, 530, 530, 531, 531, 531, 531,
6374 531, 532, 532, 532, 532, 532, 533, 533, 533, 533,
6375 533, 533, 533, 533, 533, 533, 533, 533, 533, 534,
6376 534, 534, 535, 535, 536, 536, 536, 385, 385, 537,
6377 537, 537, 537, 537, 537, 538, 539, 539, 539, 539,
6378 539, 539, 539, 540, 540, 541, 541, 542, 542, 542,
6379 542, 543, 543, 543, 543, 544, 544, 545, 545, 545,
6380 546, 546, 547, 547, 547, 548, 548, 548, 548, 548,
6381 548, 549, 549, 550, 550, 551, 551, 552, 552, 553,
6382 553, 554, 554, 554, 554, 555, 555, 556, 556, 556,
6383 556, 556, 557, 557, 558, 558, 559, 559, 560, 560,
6384 561, 561, 562, 562, 563, 564, 564, 564, 565, 565,
6385 566, 567, 567, 568, 568, 569, 570, 570, 571, 571,
6386 572, 573, 573, 574, 574, 574, 575, 575, 576, 576,
6387 577, 577, 578, 579, 580, 580, 581, 581, 582, 582,
6388 582, 583, 583, 584, 585, 585, 585, 586, 586, 587,
6389 587, 587, 587, 587, 588, 588, 588, 589, 589, 590,
6390 590, 590, 591, 591, 385, 592, 593, 593, 594, 595,
6391 595, 595, 595, 595, 595, 385, 385, 596, 597, 598,
6392 599, 599, 600, 601, 601, 601, 601, 601, 601, 602,
6393 602, 602, 603, 603, 603, 604, 605, 606, 607, 607,
6394 608, 608, 609, 609, 610, 610, 611, 611, 611, 611,
6395 611, 611, 611, 612, 612, 612, 612, 613, 613, 614,
6396 614, 615, 615, 616, 616, 617, 617, 618, 618, 619,
6397 619, 620, 620, 621, 621, 621, 622, 622, 622, 623,
6398 623, 623, 623, 624, 624, 625, 625, 626, 627, 627,
6399 627, 628, 628, 628, 629, 629, 629, 629, 629, 629,
6400 629, 629, 629, 630, 630, 631, 631, 632, 632, 633,
6401 633, 633, 634, 634, 634, 634, 635, 635, 636, 636,
6402 637, 637, 637, 637, 638, 638, 639, 639, 640, 640,
6403 640, 641, 642, 642, 643, 644, 645, 645, 646, 646,
6404 647, 647, 647, 647, 647, 647, 647, 647, 647, 647,
6405 647, 647, 647, 647, 647, 647, 647, 647, 647, 647,
6406 647, 647, 647, 647, 647, 647, 647, 647, 648, 648,
6407 649, 649, 649, 649, 649, 649, 649, 649, 649, 649,
6408 649, 649, 649, 649, 649, 649, 650, 651, 651, 652,
6409 652, 652, 653, 654, 654, 655, 655, 656, 656, 657,
6410 657, 658, 658, 658, 659, 659, 660, 660, 660, 661,
6411 661, 662, 663, 663, 664, 664, 664, 664, 664, 665,
6412 666, 666, 667, 667, 668, 668, 668, 668, 669, 669,
6413 669, 669, 669, 669, 670, 670, 671, 671, 671, 671,
6414 671, 671, 671, 672, 672, 673, 673, 673, 673, 674,
6415 674, 674, 675, 676, 676, 677, 677, 678, 678, 679,
6416 679, 679, 679, 679, 679, 679, 680, 680, 680, 681,
6417 681, 682, 682, 683, 683, 684, 684, 684, 685, 685,
6418 685, 685, 685, 686, 686, 687, 687, 687, 687, 687,
6419 687, 687, 688, 689, 689, 690, 690, 691, 691, 692,
6420 693, 693, 693, 694, 694, 694, 694, 694, 694, 694,
6421 694, 694, 694, 694, 694, 694, 694, 694, 694, 694,
6422 695, 696, 696, 696, 697, 697, 697, 698, 698, 699,
6423 700, 700, 700, 700, 701, 701, 702, 702, 703, 704,
6424 704, 705, 706, 706, 707, 707, 708, 709, 710, 711,
6425 712, 713, 713, 713, 713, 713, 713, 713, 713, 713,
6426 713, 713, 713, 713, 713, 713, 713, 713, 713, 713,
6427 713, 713, 713, 713, 713, 713, 713, 713, 713, 713,
6428 713, 713, 713, 713, 713, 713, 713, 714, 714, 715,
6429 716, 716, 717, 717, 717, 718, 718, 719, 720, 721,
6430 721, 721, 721, 721, 721, 721, 722, 723, 723, 723,
6431 723, 723, 723, 723, 723, 723, 724, 725, 725, 725,
6432 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
6433 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
6434 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
6435 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
6436 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
6437 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
6438 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
6439 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
6440 725, 725, 725, 725, 725, 725, 726, 726, 727, 728,
6441 728, 729, 729, 730, 730, 731, 731, 732, 732, 733,
6442 733, 734, 734, 735, 736, 736, 737, 737, 738, 739,
6443 740, 740, 741, 741, 741, 741, 741, 741, 741, 741,
6444 742, 743, 743, 744, 745, 745, 745, 745, 745, 745,
6445 745, 745, 745, 745, 746, 747, 748, 749, 750, 750,
6446 750, 750, 750, 750, 750, 750, 751, 752, 753, 753,
6447 754, 755, 755, 756, 757, 758, 759, 759, 760, 761,
6448 761, 762, 762, 762, 762, 762, 763, 764, 764, 765,
6449 765, 766, 767, 768, 768, 769, 770, 771, 771, 772,
6450 773, 774, 774, 775, 776, 777, 777, 778, 779, 779,
6451 780, 780, 781, 782, 783, 783, 784, 784, 785, 786,
6452 787, 787, 788, 788, 789, 789, 789, 790, 791, 791,
6453 792, 792, 793, 794, 795, 796, 796, 797, 797, 798,
6454 798, 799, 799, 800, 801, 801, 802, 802, 803, 804,
6455 805, 805, 806, 807, 808, 809, 809, 810, 810, 811,
6456 811, 812, 813, 813, 814, 815, 816
6457};
6458
6459 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
6460static const yytype_uint8 yyr2[] =
6461{
6462 0, 2, 2, 0, 4, 0, 4, 0, 4, 0,
6463 3, 0, 3, 2, 0, 1, 2, 1, 1, 1,
6464 1, 1, 1, 1, 3, 0, 2, 0, 3, 1,
6465 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6466 5, 1, 1, 0, 1, 2, 2, 2, 4, 4,
6467 4, 4, 3, 4, 3, 4, 4, 7, 5, 1,
6468 2, 3, 1, 0, 4, 0, 1, 1, 2, 1,
6469 1, 1, 1, 1, 0, 3, 1, 1, 6, 6,
6470 1, 3, 0, 3, 0, 3, 0, 2, 6, 6,
6471 0, 3, 0, 3, 1, 3, 1, 3, 2, 2,
6472 2, 1, 1, 2, 1, 1, 1, 3, 1, 1,
6473 1, 2, 2, 2, 1, 1, 3, 1, 1, 7,
6474 8, 6, 6, 7, 7, 7, 8, 7, 9, 7,
6475 4, 6, 10, 7, 4, 3, 7, 5, 4, 5,
6476 4, 5, 5, 3, 3, 3, 1, 0, 2, 2,
6477 1, 1, 1, 1, 1, 1, 4, 3, 4, 1,
6478 0, 1, 2, 1, 2, 2, 4, 1, 2, 1,
6479 4, 3, 1, 4, 3, 2, 3, 2, 2, 1,
6480 2, 9, 1, 1, 1, 0, 3, 10, 0, 1,
6481 1, 0, 3, 5, 6, 5, 6, 5, 8, 6,
6482 1, 1, 1, 4, 4, 0, 4, 1, 1, 2,
6483 1, 2, 1, 3, 0, 3, 5, 5, 3, 0,
6484 3, 0, 6, 4, 1, 1, 2, 2, 2, 2,
6485 0, 4, 4, 3, 3, 1, 4, 0, 3, 2,
6486 1, 3, 1, 1, 1, 1, 1, 1, 1, 3,
6487 2, 0, 1, 1, 2, 6, 1, 3, 1, 1,
6488 1, 2, 1, 2, 5, 1, 0, 3, 2, 0,
6489 2, 2, 1, 1, 2, 2, 3, 3, 0, 1,
6490 1, 2, 2, 0, 1, 1, 1, 0, 2, 2,
6491 1, 1, 2, 5, 1, 2, 3, 8, 4, 1,
6492 3, 2, 7, 1, 3, 1, 1, 0, 3, 0,
6493 1, 3, 6, 3, 1, 1, 11, 9, 11, 10,
6494 11, 11, 9, 7, 9, 1, 5, 6, 0, 3,
6495 0, 3, 1, 1, 1, 1, 1, 1, 1, 1,
6496 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6497 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
6498 4, 1, 0, 1, 3, 2, 1, 1, 4, 6,
6499 5, 4, 1, 2, 4, 1, 2, 0, 2, 7,
6500 0, 2, 5, 8, 0, 2, 0, 1, 2, 4,
6501 4, 1, 1, 1, 0, 4, 2, 9, 1, 1,
6502 1, 1, 1, 1, 3, 0, 2, 1, 2, 4,
6503 4, 4, 4, 0, 1, 0, 1, 3, 0, 3,
6504 1, 1, 0, 4, 1, 4, 3, 4, 3, 3,
6505 3, 4, 5, 4, 4, 4, 5, 3, 5, 6,
6506 5, 5, 5, 5, 4, 3, 3, 3, 4, 0,
6507 3, 2, 1, 3, 0, 1, 1, 1, 1, 1,
6508 1, 1, 1, 1, 1, 1, 3, 2, 3, 4,
6509 3, 4, 3, 0, 1, 1, 3, 2, 2, 3,
6510 3, 2, 2, 2, 1, 1, 0, 2, 3, 0,
6511 0, 3, 0, 2, 2, 15, 13, 6, 9, 7,
6512 6, 0, 4, 1, 3, 0, 3, 1, 3, 1,
6513 2, 0, 3, 5, 7, 0, 1, 0, 2, 2,
6514 4, 4, 0, 3, 0, 1, 0, 2, 0, 2,
6515 1, 3, 1, 3, 5, 0, 2, 2, 5, 4,
6516 7, 0, 2, 3, 1, 3, 5, 6, 1, 2,
6517 9, 4, 5, 0, 2, 1, 3, 5, 1, 3,
6518 1, 3, 1, 1, 1, 1, 1, 1, 0, 1,
6519 1, 1, 3, 1, 3, 3, 3, 0, 2, 3,
6520 4, 4, 5, 5, 0, 1, 2, 0, 1, 1,
6521 1, 1, 2, 2, 1, 3, 3, 1, 4, 1,
6522 1, 1, 1, 1, 1, 1, 1, 4, 6, 5,
6523 1, 3, 1, 5, 5, 5, 2, 3, 1, 0,
6524 1, 1, 0, 1, 5, 1, 5, 5, 1, 3,
6525 0, 2, 0, 2, 1, 3, 2, 2, 3, 2,
6526 3, 1, 1, 5, 2, 4, 1, 0, 1, 0,
6527 3, 1, 3, 1, 3, 0, 2, 3, 1, 3,
6528 1, 0, 3, 0, 2, 2, 0, 2, 2, 0,
6529 3, 3, 2, 0, 2, 1, 3, 3, 0, 1,
6530 1, 0, 2, 2, 1, 1, 1, 1, 1, 1,
6531 1, 1, 1, 2, 1, 3, 3, 6, 6, 0,
6532 1, 1, 3, 3, 3, 3, 1, 3, 4, 3,
6533 5, 5, 7, 7, 1, 3, 4, 4, 1, 1,
6534 1, 2, 1, 3, 3, 3, 3, 3, 3, 3,
6535 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
6536 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
6537 2, 3, 3, 3, 3, 2, 2, 3, 1, 1,
6538 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
6539 1, 1, 1, 1, 1, 1, 1, 5, 3, 3,
6540 4, 1, 4, 0, 1, 0, 3, 0, 3, 0,
6541 3, 1, 1, 1, 1, 1, 2, 2, 2, 1,
6542 1, 4, 2, 2, 0, 3, 2, 2, 3, 2,
6543 3, 4, 1, 3, 1, 1, 1, 1, 6, 2,
6544 2, 2, 2, 2, 0, 2, 8, 8, 6, 6,
6545 6, 3, 8, 1, 3, 1, 3, 3, 2, 0,
6546 2, 1, 1, 1, 3, 1, 3, 1, 3, 4,
6547 6, 5, 5, 4, 6, 1, 1, 1, 0, 3,
6548 0, 3, 0, 3, 0, 1, 3, 3, 1, 1,
6549 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6550 1, 1, 2, 1, 2, 2, 2, 3, 1, 2,
6551 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
6552 4, 4, 1, 2, 1, 2, 2, 2, 1, 1,
6553 4, 1, 3, 5, 1, 3, 5, 6, 6, 1,
6554 6, 4, 5, 4, 1, 3, 3, 3, 4, 1,
6555 2, 4, 1, 2, 0, 2, 1, 1, 1, 1,
6556 1, 1, 1, 1, 4, 4, 4, 1, 4, 1,
6557 1, 1, 1, 1, 1, 4, 6, 1, 4, 6,
6558 1, 2, 1, 1, 1, 1, 4, 1, 4, 6,
6559 1, 4, 1, 4, 6, 1, 1, 1, 1, 1,
6560 1, 2, 1, 1, 3, 1, 3, 1, 1, 1,
6561 2, 1, 1, 1, 1, 1, 1, 1, 2, 1,
6562 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6563 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6564 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6565 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6566 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6567 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6568 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6569 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6570 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6571 1, 1, 1, 1, 1, 1, 1, 3, 1, 1,
6572 2, 1, 1, 0, 2, 1, 2, 1, 2, 1,
6573 2, 1, 2, 2, 3, 4, 0, 1, 2, 1,
6574 5, 5, 2, 2, 2, 4, 6, 2, 2, 1,
6575 1, 1, 3, 1, 1, 1, 1, 1, 1, 1,
6576 1, 1, 1, 1, 5, 5, 5, 7, 0, 2,
6577 4, 6, 4, 2, 4, 2, 1, 4, 1, 3,
6578 2, 0, 2, 1, 1, 2, 1, 3, 1, 0,
6579 2, 3, 3, 3, 3, 4, 7, 0, 2, 1,
6580 3, 2, 1, 0, 2, 1, 6, 2, 2, 7,
6581 1, 0, 2, 8, 1, 0, 3, 1, 1, 3,
6582 1, 1, 2, 4, 0, 1, 3, 3, 5, 6,
6583 1, 1, 1, 1, 0, 2, 2, 4, 1, 3,
6584 1, 1, 1, 1, 3, 2, 2, 0, 1, 2,
6585 2, 0, 1, 5, 1, 1, 3, 3, 1, 1,
6586 0, 2, 1, 2, 1, 0, 1, 1, 2, 0,
6587 1, 2, 2, 2, 1, 1, 6
6588};
6589
6590
6591#define yyerrok (yyerrstatus = 0)
6592#define yyclearin (yychar = YYEMPTY)
6593#define YYEMPTY (-2)
6594#define YYEOF 0
6595
6596#define YYACCEPT goto yyacceptlab
6597#define YYABORT goto yyabortlab
6598#define YYERROR goto yyerrorlab
6599
6600
6601#define YYRECOVERING() (!!yyerrstatus)
6602
6603#define YYBACKUP(Token, Value) \
6604do \
6605 if (yychar == YYEMPTY) \
6606 { \
6607 yychar = (Token); \
6608 yylval = (Value); \
6609 YYPOPSTACK (yylen); \
6610 yystate = *yyssp; \
6611 goto yybackup; \
6612 } \
6613 else \
6614 { \
6615 yyerror (m, YY_("syntax error: cannot back up")); \
6616 YYERROR; \
6617 } \
6618while (0)
6619
6620/* Error token number */
6621#define YYTERROR 1
6622#define YYERRCODE 256
6623
6624
6625
6626/* Enable debugging if requested. */
6627#if YYDEBUG
6628
6629# ifndef YYFPRINTF
6630# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
6631# define YYFPRINTF fprintf
6632# endif
6633
6634# define YYDPRINTF(Args) \
6635do { \
6636 if (yydebug) \
6637 YYFPRINTF Args; \
6638} while (0)
6639
6640/* This macro is provided for backward compatibility. */
6641#ifndef YY_LOCATION_PRINT
6642# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
6643#endif
6644
6645
6646# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
6647do { \
6648 if (yydebug) \
6649 { \
6650 YYFPRINTF (stderr, "%s ", Title); \
6651 yy_symbol_print (stderr, \
6652 Type, Value, m); \
6653 YYFPRINTF (stderr, "\n"); \
6654 } \
6655} while (0)
6656
6657
6658/*----------------------------------------.
6659| Print this symbol's value on YYOUTPUT. |
6660`----------------------------------------*/
6661
6662static void
6663yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, mvc *m)
6664{
6665 FILE *yyo = yyoutput;
6666 YYUSE (yyo);
6667 YYUSE (m);
6668 if (!yyvaluep)
6669 return;
6670# ifdef YYPRINT
6671 if (yytype < YYNTOKENS)
6672 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
6673# endif
6674 YYUSE (yytype);
6675}
6676
6677
6678/*--------------------------------.
6679| Print this symbol on YYOUTPUT. |
6680`--------------------------------*/
6681
6682static void
6683yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, mvc *m)
6684{
6685 YYFPRINTF (yyoutput, "%s %s (",
6686 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
6687
6688 yy_symbol_value_print (yyoutput, yytype, yyvaluep, m);
6689 YYFPRINTF (yyoutput, ")");
6690}
6691
6692/*------------------------------------------------------------------.
6693| yy_stack_print -- Print the state stack from its BOTTOM up to its |
6694| TOP (included). |
6695`------------------------------------------------------------------*/
6696
6697static void
6698yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
6699{
6700 YYFPRINTF (stderr, "Stack now");
6701 for (; yybottom <= yytop; yybottom++)
6702 {
6703 int yybot = *yybottom;
6704 YYFPRINTF (stderr, " %d", yybot);
6705 }
6706 YYFPRINTF (stderr, "\n");
6707}
6708
6709# define YY_STACK_PRINT(Bottom, Top) \
6710do { \
6711 if (yydebug) \
6712 yy_stack_print ((Bottom), (Top)); \
6713} while (0)
6714
6715
6716/*------------------------------------------------.
6717| Report that the YYRULE is going to be reduced. |
6718`------------------------------------------------*/
6719
6720static void
6721yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, mvc *m)
6722{
6723 unsigned long int yylno = yyrline[yyrule];
6724 int yynrhs = yyr2[yyrule];
6725 int yyi;
6726 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
6727 yyrule - 1, yylno);
6728 /* The symbols being reduced. */
6729 for (yyi = 0; yyi < yynrhs; yyi++)
6730 {
6731 YYFPRINTF (stderr, " $%d = ", yyi + 1);
6732 yy_symbol_print (stderr,
6733 yystos[yyssp[yyi + 1 - yynrhs]],
6734 &(yyvsp[(yyi + 1) - (yynrhs)])
6735 , m);
6736 YYFPRINTF (stderr, "\n");
6737 }
6738}
6739
6740# define YY_REDUCE_PRINT(Rule) \
6741do { \
6742 if (yydebug) \
6743 yy_reduce_print (yyssp, yyvsp, Rule, m); \
6744} while (0)
6745
6746/* Nonzero means print parse trace. It is left uninitialized so that
6747 multiple parsers can coexist. */
6748int yydebug;
6749#else /* !YYDEBUG */
6750# define YYDPRINTF(Args)
6751# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
6752# define YY_STACK_PRINT(Bottom, Top)
6753# define YY_REDUCE_PRINT(Rule)
6754#endif /* !YYDEBUG */
6755
6756
6757/* YYINITDEPTH -- initial size of the parser's stacks. */
6758#ifndef YYINITDEPTH
6759# define YYINITDEPTH 200
6760#endif
6761
6762/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
6763 if the built-in stack extension method is used).
6764
6765 Do not make this value too large; the results are undefined if
6766 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
6767 evaluated with infinite-precision integer arithmetic. */
6768
6769#ifndef YYMAXDEPTH
6770# define YYMAXDEPTH 10000
6771#endif
6772
6773
6774#if YYERROR_VERBOSE
6775
6776# ifndef yystrlen
6777# if defined __GLIBC__ && defined _STRING_H
6778# define yystrlen strlen
6779# else
6780/* Return the length of YYSTR. */
6781static YYSIZE_T
6782yystrlen (const char *yystr)
6783{
6784 YYSIZE_T yylen;
6785 for (yylen = 0; yystr[yylen]; yylen++)
6786 continue;
6787 return yylen;
6788}
6789# endif
6790# endif
6791
6792# ifndef yystpcpy
6793# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
6794# define yystpcpy stpcpy
6795# else
6796/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
6797 YYDEST. */
6798static char *
6799yystpcpy (char *yydest, const char *yysrc)
6800{
6801 char *yyd = yydest;
6802 const char *yys = yysrc;
6803
6804 while ((*yyd++ = *yys++) != '\0')
6805 continue;
6806
6807 return yyd - 1;
6808}
6809# endif
6810# endif
6811
6812# ifndef yytnamerr
6813/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
6814 quotes and backslashes, so that it's suitable for yyerror. The
6815 heuristic is that double-quoting is unnecessary unless the string
6816 contains an apostrophe, a comma, or backslash (other than
6817 backslash-backslash). YYSTR is taken from yytname. If YYRES is
6818 null, do not copy; instead, return the length of what the result
6819 would have been. */
6820static YYSIZE_T
6821yytnamerr (char *yyres, const char *yystr)
6822{
6823 if (*yystr == '"')
6824 {
6825 YYSIZE_T yyn = 0;
6826 char const *yyp = yystr;
6827
6828 for (;;)
6829 switch (*++yyp)
6830 {
6831 case '\'':
6832 case ',':
6833 goto do_not_strip_quotes;
6834
6835 case '\\':
6836 if (*++yyp != '\\')
6837 goto do_not_strip_quotes;
6838 /* Fall through. */
6839 default:
6840 if (yyres)
6841 yyres[yyn] = *yyp;
6842 yyn++;
6843 break;
6844
6845 case '"':
6846 if (yyres)
6847 yyres[yyn] = '\0';
6848 return yyn;
6849 }
6850 do_not_strip_quotes: ;
6851 }
6852
6853 if (! yyres)
6854 return yystrlen (yystr);
6855
6856 return yystpcpy (yyres, yystr) - yyres;
6857}
6858# endif
6859
6860/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
6861 about the unexpected token YYTOKEN for the state stack whose top is
6862 YYSSP.
6863
6864 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
6865 not large enough to hold the message. In that case, also set
6866 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
6867 required number of bytes is too large to store. */
6868static int
6869yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
6870 yytype_int16 *yyssp, int yytoken)
6871{
6872 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
6873 YYSIZE_T yysize = yysize0;
6874 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
6875 /* Internationalized format string. */
6876 const char *yyformat = YY_NULLPTR;
6877 /* Arguments of yyformat. */
6878 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
6879 /* Number of reported tokens (one for the "unexpected", one per
6880 "expected"). */
6881 int yycount = 0;
6882
6883 /* There are many possibilities here to consider:
6884 - If this state is a consistent state with a default action, then
6885 the only way this function was invoked is if the default action
6886 is an error action. In that case, don't check for expected
6887 tokens because there are none.
6888 - The only way there can be no lookahead present (in yychar) is if
6889 this state is a consistent state with a default action. Thus,
6890 detecting the absence of a lookahead is sufficient to determine
6891 that there is no unexpected or expected token to report. In that
6892 case, just report a simple "syntax error".
6893 - Don't assume there isn't a lookahead just because this state is a
6894 consistent state with a default action. There might have been a
6895 previous inconsistent state, consistent state with a non-default
6896 action, or user semantic action that manipulated yychar.
6897 - Of course, the expected token list depends on states to have
6898 correct lookahead information, and it depends on the parser not
6899 to perform extra reductions after fetching a lookahead from the
6900 scanner and before detecting a syntax error. Thus, state merging
6901 (from LALR or IELR) and default reductions corrupt the expected
6902 token list. However, the list is correct for canonical LR with
6903 one exception: it will still contain any token that will not be
6904 accepted due to an error action in a later state.
6905 */
6906 if (yytoken != YYEMPTY)
6907 {
6908 int yyn = yypact[*yyssp];
6909 yyarg[yycount++] = yytname[yytoken];
6910 if (!yypact_value_is_default (yyn))
6911 {
6912 /* Start YYX at -YYN if negative to avoid negative indexes in
6913 YYCHECK. In other words, skip the first -YYN actions for
6914 this state because they are default actions. */
6915 int yyxbegin = yyn < 0 ? -yyn : 0;
6916 /* Stay within bounds of both yycheck and yytname. */
6917 int yychecklim = YYLAST - yyn + 1;
6918 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
6919 int yyx;
6920
6921 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
6922 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
6923 && !yytable_value_is_error (yytable[yyx + yyn]))
6924 {
6925 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
6926 {
6927 yycount = 1;
6928 yysize = yysize0;
6929 break;
6930 }
6931 yyarg[yycount++] = yytname[yyx];
6932 {
6933 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
6934 if (! (yysize <= yysize1
6935 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
6936 return 2;
6937 yysize = yysize1;
6938 }
6939 }
6940 }
6941 }
6942
6943 switch (yycount)
6944 {
6945# define YYCASE_(N, S) \
6946 case N: \
6947 yyformat = S; \
6948 break
6949 YYCASE_(0, YY_("syntax error"));
6950 YYCASE_(1, YY_("syntax error, unexpected %s"));
6951 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
6952 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
6953 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
6954 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
6955# undef YYCASE_
6956 }
6957
6958 {
6959 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
6960 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
6961 return 2;
6962 yysize = yysize1;
6963 }
6964
6965 if (*yymsg_alloc < yysize)
6966 {
6967 *yymsg_alloc = 2 * yysize;
6968 if (! (yysize <= *yymsg_alloc
6969 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
6970 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
6971 return 1;
6972 }
6973
6974 /* Avoid sprintf, as that infringes on the user's name space.
6975 Don't have undefined behavior even if the translation
6976 produced a string with the wrong number of "%s"s. */
6977 {
6978 char *yyp = *yymsg;
6979 int yyi = 0;
6980 while ((*yyp = *yyformat) != '\0')
6981 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
6982 {
6983 yyp += yytnamerr (yyp, yyarg[yyi++]);
6984 yyformat += 2;
6985 }
6986 else
6987 {
6988 yyp++;
6989 yyformat++;
6990 }
6991 }
6992 return 0;
6993}
6994#endif /* YYERROR_VERBOSE */
6995
6996/*-----------------------------------------------.
6997| Release the memory associated to this symbol. |
6998`-----------------------------------------------*/
6999
7000static void
7001yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, mvc *m)
7002{
7003 YYUSE (yyvaluep);
7004 YYUSE (m);
7005 if (!yymsg)
7006 yymsg = "Deleting";
7007 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
7008
7009 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7010 YYUSE (yytype);
7011 YY_IGNORE_MAYBE_UNINITIALIZED_END
7012}
7013
7014
7015
7016
7017/*----------.
7018| yyparse. |
7019`----------*/
7020
7021int
7022yyparse (mvc *m)
7023{
7024/* The lookahead symbol. */
7025int yychar;
7026
7027
7028/* The semantic value of the lookahead symbol. */
7029/* Default value used for initialization, for pacifying older GCCs
7030 or non-GCC compilers. */
7031YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
7032YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
7033
7034 /* Number of syntax errors so far. */
7035 int yynerrs;
7036
7037 int yystate;
7038 /* Number of tokens to shift before error messages enabled. */
7039 int yyerrstatus;
7040
7041 /* The stacks and their tools:
7042 'yyss': related to states.
7043 'yyvs': related to semantic values.
7044
7045 Refer to the stacks through separate pointers, to allow yyoverflow
7046 to reallocate them elsewhere. */
7047
7048 /* The state stack. */
7049 yytype_int16 yyssa[YYINITDEPTH];
7050 yytype_int16 *yyss;
7051 yytype_int16 *yyssp;
7052
7053 /* The semantic value stack. */
7054 YYSTYPE yyvsa[YYINITDEPTH];
7055 YYSTYPE *yyvs;
7056 YYSTYPE *yyvsp;
7057
7058 YYSIZE_T yystacksize;
7059
7060 int yyn;
7061 int yyresult;
7062 /* Lookahead token as an internal (translated) token number. */
7063 int yytoken = 0;
7064 /* The variables used to return semantic value and location from the
7065 action routines. */
7066 YYSTYPE yyval;
7067
7068#if YYERROR_VERBOSE
7069 /* Buffer for error messages, and its allocated size. */
7070 char yymsgbuf[128];
7071 char *yymsg = yymsgbuf;
7072 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
7073#endif
7074
7075#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
7076
7077 /* The number of symbols on the RHS of the reduced rule.
7078 Keep to zero when no symbol should be popped. */
7079 int yylen = 0;
7080
7081 yyssp = yyss = yyssa;
7082 yyvsp = yyvs = yyvsa;
7083 yystacksize = YYINITDEPTH;
7084
7085 YYDPRINTF ((stderr, "Starting parse\n"));
7086
7087 yystate = 0;
7088 yyerrstatus = 0;
7089 yynerrs = 0;
7090 yychar = YYEMPTY; /* Cause a token to be read. */
7091 goto yysetstate;
7092
7093/*------------------------------------------------------------.
7094| yynewstate -- Push a new state, which is found in yystate. |
7095`------------------------------------------------------------*/
7096 yynewstate:
7097 /* In all cases, when you get here, the value and location stacks
7098 have just been pushed. So pushing a state here evens the stacks. */
7099 yyssp++;
7100
7101 yysetstate:
7102 *yyssp = yystate;
7103
7104 if (yyss + yystacksize - 1 <= yyssp)
7105 {
7106 /* Get the current used size of the three stacks, in elements. */
7107 YYSIZE_T yysize = yyssp - yyss + 1;
7108
7109#ifdef yyoverflow
7110 {
7111 /* Give user a chance to reallocate the stack. Use copies of
7112 these so that the &'s don't force the real ones into
7113 memory. */
7114 YYSTYPE *yyvs1 = yyvs;
7115 yytype_int16 *yyss1 = yyss;
7116
7117 /* Each stack pointer address is followed by the size of the
7118 data in use in that stack, in bytes. This used to be a
7119 conditional around just the two extra args, but that might
7120 be undefined if yyoverflow is a macro. */
7121 yyoverflow (YY_("memory exhausted"),
7122 &yyss1, yysize * sizeof (*yyssp),
7123 &yyvs1, yysize * sizeof (*yyvsp),
7124 &yystacksize);
7125
7126 yyss = yyss1;
7127 yyvs = yyvs1;
7128 }
7129#else /* no yyoverflow */
7130# ifndef YYSTACK_RELOCATE
7131 goto yyexhaustedlab;
7132# else
7133 /* Extend the stack our own way. */
7134 if (YYMAXDEPTH <= yystacksize)
7135 goto yyexhaustedlab;
7136 yystacksize *= 2;
7137 if (YYMAXDEPTH < yystacksize)
7138 yystacksize = YYMAXDEPTH;
7139
7140 {
7141 yytype_int16 *yyss1 = yyss;
7142 union yyalloc *yyptr =
7143 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
7144 if (! yyptr)
7145 goto yyexhaustedlab;
7146 YYSTACK_RELOCATE (yyss_alloc, yyss);
7147 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
7148# undef YYSTACK_RELOCATE
7149 if (yyss1 != yyssa)
7150 YYSTACK_FREE (yyss1);
7151 }
7152# endif
7153#endif /* no yyoverflow */
7154
7155 yyssp = yyss + yysize - 1;
7156 yyvsp = yyvs + yysize - 1;
7157
7158 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
7159 (unsigned long int) yystacksize));
7160
7161 if (yyss + yystacksize - 1 <= yyssp)
7162 YYABORT;
7163 }
7164
7165 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
7166
7167 if (yystate == YYFINAL)
7168 YYACCEPT;
7169
7170 goto yybackup;
7171
7172/*-----------.
7173| yybackup. |
7174`-----------*/
7175yybackup:
7176
7177 /* Do appropriate processing given the current state. Read a
7178 lookahead token if we need one and don't already have one. */
7179
7180 /* First try to decide what to do without reference to lookahead token. */
7181 yyn = yypact[yystate];
7182 if (yypact_value_is_default (yyn))
7183 goto yydefault;
7184
7185 /* Not known => get a lookahead token if don't already have one. */
7186
7187 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
7188 if (yychar == YYEMPTY)
7189 {
7190 YYDPRINTF ((stderr, "Reading a token: "));
7191 yychar = yylex (&yylval, m);
7192 }
7193
7194 if (yychar <= YYEOF)
7195 {
7196 yychar = yytoken = YYEOF;
7197 YYDPRINTF ((stderr, "Now at end of input.\n"));
7198 }
7199 else
7200 {
7201 yytoken = YYTRANSLATE (yychar);
7202 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7203 }
7204
7205 /* If the proper action on seeing token YYTOKEN is to reduce or to
7206 detect an error, take that action. */
7207 yyn += yytoken;
7208 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
7209 goto yydefault;
7210 yyn = yytable[yyn];
7211 if (yyn <= 0)
7212 {
7213 if (yytable_value_is_error (yyn))
7214 goto yyerrlab;
7215 yyn = -yyn;
7216 goto yyreduce;
7217 }
7218
7219 /* Count tokens shifted since error; after three, turn off error
7220 status. */
7221 if (yyerrstatus)
7222 yyerrstatus--;
7223
7224 /* Shift the lookahead token. */
7225 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
7226
7227 /* Discard the shifted token. */
7228 yychar = YYEMPTY;
7229
7230 yystate = yyn;
7231 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7232 *++yyvsp = yylval;
7233 YY_IGNORE_MAYBE_UNINITIALIZED_END
7234
7235 goto yynewstate;
7236
7237
7238/*-----------------------------------------------------------.
7239| yydefault -- do the default action for the current state. |
7240`-----------------------------------------------------------*/
7241yydefault:
7242 yyn = yydefact[yystate];
7243 if (yyn == 0)
7244 goto yyerrlab;
7245 goto yyreduce;
7246
7247
7248/*-----------------------------.
7249| yyreduce -- Do a reduction. |
7250`-----------------------------*/
7251yyreduce:
7252 /* yyn is the number of a rule to reduce with. */
7253 yylen = yyr2[yyn];
7254
7255 /* If YYLEN is nonzero, implement the default value of the action:
7256 '$$ = $1'.
7257
7258 Otherwise, the following line sets YYVAL to garbage.
7259 This behavior is undocumented and Bison
7260 users should not rely upon it. Assigning to YYVAL
7261 unconditionally makes the parser a bit smaller, and it avoids a
7262 GCC warning that YYVAL may be used uninitialized. */
7263 yyval = yyvsp[1-yylen];
7264
7265
7266 YY_REDUCE_PRINT (yyn);
7267 switch (yyn)
7268 {
7269 case 2:
7270#line 716 "sql_parser.y" /* yacc.c:1646 */
7271 {
7272 if (m->sym) {
7273 append_symbol(m->sym->data.lval, (yyval.sym));
7274 (yyval.sym) = m->sym;
7275 } else {
7276 m->sym = (yyval.sym) = (yyvsp[-1].sym);
7277 }
7278 YYACCEPT;
7279 }
7280#line 7281 "sql_parser.tab.c" /* yacc.c:1646 */
7281 break;
7282
7283 case 3:
7284#line 726 "sql_parser.y" /* yacc.c:1646 */
7285 {
7286 m->emode = m_prepare;
7287 m->scanner.as = m->scanner.yycur;
7288 m->scanner.key = 0;
7289 }
7290#line 7291 "sql_parser.tab.c" /* yacc.c:1646 */
7291 break;
7292
7293 case 4:
7294#line 731 "sql_parser.y" /* yacc.c:1646 */
7295 {
7296 if (m->sym) {
7297 append_symbol(m->sym->data.lval, (yyvsp[-1].sym));
7298 (yyval.sym) = m->sym;
7299 } else {
7300 m->sym = (yyval.sym) = (yyvsp[-1].sym);
7301 }
7302 YYACCEPT;
7303 }
7304#line 7305 "sql_parser.tab.c" /* yacc.c:1646 */
7305 break;
7306
7307 case 5:
7308#line 740 "sql_parser.y" /* yacc.c:1646 */
7309 {
7310 m->emode = m_plan;
7311 m->scanner.as = m->scanner.yycur;
7312 m->scanner.key = 0;
7313 }
7314#line 7315 "sql_parser.tab.c" /* yacc.c:1646 */
7315 break;
7316
7317 case 6:
7318#line 745 "sql_parser.y" /* yacc.c:1646 */
7319 {
7320 if (m->sym) {
7321 append_symbol(m->sym->data.lval, (yyvsp[-1].sym));
7322 (yyval.sym) = m->sym;
7323 } else {
7324 m->sym = (yyval.sym) = (yyvsp[-1].sym);
7325 }
7326 YYACCEPT;
7327 }
7328#line 7329 "sql_parser.tab.c" /* yacc.c:1646 */
7329 break;
7330
7331 case 7:
7332#line 755 "sql_parser.y" /* yacc.c:1646 */
7333 {
7334 m->emod |= mod_explain;
7335 m->scanner.as = m->scanner.yycur;
7336 m->scanner.key = 0;
7337 }
7338#line 7339 "sql_parser.tab.c" /* yacc.c:1646 */
7339 break;
7340
7341 case 8:
7342#line 760 "sql_parser.y" /* yacc.c:1646 */
7343 {
7344 if (m->sym) {
7345 append_symbol(m->sym->data.lval, (yyvsp[-1].sym));
7346 (yyval.sym) = m->sym;
7347 } else {
7348 m->sym = (yyval.sym) = (yyvsp[-1].sym);
7349 }
7350 YYACCEPT;
7351 }
7352#line 7353 "sql_parser.tab.c" /* yacc.c:1646 */
7353 break;
7354
7355 case 9:
7356#line 770 "sql_parser.y" /* yacc.c:1646 */
7357 {
7358 if (m->scanner.mode == LINE_1) {
7359 yyerror(m, "SQL debugging only supported in interactive mode");
7360 YYABORT;
7361 }
7362 m->emod |= mod_debug;
7363 m->scanner.as = m->scanner.yycur;
7364 m->scanner.key = 0;
7365 }
7366#line 7367 "sql_parser.tab.c" /* yacc.c:1646 */
7367 break;
7368
7369 case 10:
7370#line 779 "sql_parser.y" /* yacc.c:1646 */
7371 { (yyval.sym) = (yyvsp[0].sym); YYACCEPT; }
7372#line 7373 "sql_parser.tab.c" /* yacc.c:1646 */
7373 break;
7374
7375 case 11:
7376#line 780 "sql_parser.y" /* yacc.c:1646 */
7377 {
7378 m->emod |= mod_trace;
7379 m->scanner.as = m->scanner.yycur;
7380 m->scanner.key = 0;
7381 }
7382#line 7383 "sql_parser.tab.c" /* yacc.c:1646 */
7383 break;
7384
7385 case 12:
7386#line 785 "sql_parser.y" /* yacc.c:1646 */
7387 { (yyval.sym) = (yyvsp[0].sym); YYACCEPT; }
7388#line 7389 "sql_parser.tab.c" /* yacc.c:1646 */
7389 break;
7390
7391 case 13:
7392#line 786 "sql_parser.y" /* yacc.c:1646 */
7393 { m->sym = (yyval.sym) = (yyvsp[-1].sym); YYACCEPT; }
7394#line 7395 "sql_parser.tab.c" /* yacc.c:1646 */
7395 break;
7396
7397 case 14:
7398#line 787 "sql_parser.y" /* yacc.c:1646 */
7399 { m->sym = (yyval.sym) = NULL; YYACCEPT; }
7400#line 7401 "sql_parser.tab.c" /* yacc.c:1646 */
7401 break;
7402
7403 case 15:
7404#line 788 "sql_parser.y" /* yacc.c:1646 */
7405 { m->sym = (yyval.sym) = NULL; YYACCEPT; }
7406#line 7407 "sql_parser.tab.c" /* yacc.c:1646 */
7407 break;
7408
7409 case 16:
7410#line 789 "sql_parser.y" /* yacc.c:1646 */
7411 { m->sym = (yyval.sym) = NULL; YYACCEPT; }
7412#line 7413 "sql_parser.tab.c" /* yacc.c:1646 */
7413 break;
7414
7415 case 17:
7416#line 790 "sql_parser.y" /* yacc.c:1646 */
7417 { m->sym = (yyval.sym) = NULL; YYABORT; }
7418#line 7419 "sql_parser.tab.c" /* yacc.c:1646 */
7419 break;
7420
7421 case 22:
7422#line 806 "sql_parser.y" /* yacc.c:1646 */
7423 { (yyval.bval) = FALSE; }
7424#line 7425 "sql_parser.tab.c" /* yacc.c:1646 */
7425 break;
7426
7427 case 24:
7428#line 810 "sql_parser.y" /* yacc.c:1646 */
7429 { (yyval.bval) = TRUE; }
7430#line 7431 "sql_parser.tab.c" /* yacc.c:1646 */
7431 break;
7432
7433 case 25:
7434#line 814 "sql_parser.y" /* yacc.c:1646 */
7435 { (yyval.bval) = FALSE; }
7436#line 7437 "sql_parser.tab.c" /* yacc.c:1646 */
7437 break;
7438
7439 case 26:
7440#line 815 "sql_parser.y" /* yacc.c:1646 */
7441 { (yyval.bval) = TRUE; }
7442#line 7443 "sql_parser.tab.c" /* yacc.c:1646 */
7443 break;
7444
7445 case 27:
7446#line 819 "sql_parser.y" /* yacc.c:1646 */
7447 { (yyval.bval) = FALSE; }
7448#line 7449 "sql_parser.tab.c" /* yacc.c:1646 */
7449 break;
7450
7451 case 28:
7452#line 820 "sql_parser.y" /* yacc.c:1646 */
7453 { (yyval.bval) = TRUE; }
7454#line 7455 "sql_parser.tab.c" /* yacc.c:1646 */
7455 break;
7456
7457 case 40:
7458#line 843 "sql_parser.y" /* yacc.c:1646 */
7459 { dlist *l = L();
7460 append_list(l, (yyvsp[-3].l));
7461 append_list(l, (yyvsp[-2].l));
7462 append_symbol(l, (yyvsp[-1].sym));
7463 append_int(l, (yyvsp[0].i_val));
7464 (yyval.sym) = _symbol_create_list( SQL_ANALYZE, l); }
7465#line 7466 "sql_parser.tab.c" /* yacc.c:1646 */
7466 break;
7467
7468 case 43:
7469#line 854 "sql_parser.y" /* yacc.c:1646 */
7470 { (yyval.i_val) = 0; }
7471#line 7472 "sql_parser.tab.c" /* yacc.c:1646 */
7472 break;
7473
7474 case 44:
7475#line 855 "sql_parser.y" /* yacc.c:1646 */
7476 { (yyval.i_val) = 1; }
7477#line 7478 "sql_parser.tab.c" /* yacc.c:1646 */
7478 break;
7479
7480 case 45:
7481#line 860 "sql_parser.y" /* yacc.c:1646 */
7482 { (yyval.sym) = _symbol_create_list( SQL_DECLARE, (yyvsp[0].l)); }
7483#line 7484 "sql_parser.tab.c" /* yacc.c:1646 */
7484 break;
7485
7486 case 46:
7487#line 861 "sql_parser.y" /* yacc.c:1646 */
7488 { (yyval.sym) = (yyvsp[0].sym); if ((yyval.sym)) (yyval.sym)->token = SQL_DECLARE_TABLE; }
7489#line 7490 "sql_parser.tab.c" /* yacc.c:1646 */
7490 break;
7491
7492 case 47:
7493#line 866 "sql_parser.y" /* yacc.c:1646 */
7494 { dlist *l = L();
7495 append_list(l, (yyvsp[-1].l) );
7496 append_type(l, &(yyvsp[0].type) );
7497 (yyval.l) = append_symbol(L(), _symbol_create_list( SQL_DECLARE, l)); }
7498#line 7499 "sql_parser.tab.c" /* yacc.c:1646 */
7499 break;
7500
7501 case 48:
7502#line 871 "sql_parser.y" /* yacc.c:1646 */
7503 { dlist *l = L();
7504 append_list(l, (yyvsp[-1].l) );
7505 append_type(l, &(yyvsp[0].type) );
7506 (yyval.l) = append_symbol((yyvsp[-3].l), _symbol_create_list( SQL_DECLARE, l)); }
7507#line 7508 "sql_parser.tab.c" /* yacc.c:1646 */
7508 break;
7509
7510 case 49:
7511#line 880 "sql_parser.y" /* yacc.c:1646 */
7512 { dlist *l = L();
7513 append_string(l, (yyvsp[-2].sval) );
7514 append_symbol(l, (yyvsp[0].sym) );
7515 (yyval.sym) = _symbol_create_list( SQL_SET, l); }
7516#line 7517 "sql_parser.tab.c" /* yacc.c:1646 */
7517 break;
7518
7519 case 50:
7520#line 885 "sql_parser.y" /* yacc.c:1646 */
7521 { dlist *l = L();
7522 append_list(l, (yyvsp[-2].l));
7523 append_symbol(l, (yyvsp[0].sym));
7524 (yyval.sym) = _symbol_create_list( SQL_SET, l ); }
7525#line 7526 "sql_parser.tab.c" /* yacc.c:1646 */
7526 break;
7527
7528 case 51:
7529#line 890 "sql_parser.y" /* yacc.c:1646 */
7530 { dlist *l = L();
7531 sql_subtype t;
7532 sql_find_subtype(&t, "char", UTF8_strlen((yyvsp[0].sval)), 0 );
7533 append_string(l, sa_strdup(SA, "current_user"));
7534 append_symbol(l,
7535 _newAtomNode( _atom_string(&t, (yyvsp[0].sval))) );
7536 (yyval.sym) = _symbol_create_list( SQL_SET, l); }
7537#line 7538 "sql_parser.tab.c" /* yacc.c:1646 */
7538 break;
7539
7540 case 52:
7541#line 898 "sql_parser.y" /* yacc.c:1646 */
7542 { dlist *l = L();
7543 sql_subtype t;
7544 sql_find_subtype(&t, "char", UTF8_strlen((yyvsp[0].sval)), 0 );
7545 append_string(l, sa_strdup(SA, "current_schema"));
7546 append_symbol(l,
7547 _newAtomNode( _atom_string(&t, (yyvsp[0].sval))) );
7548 (yyval.sym) = _symbol_create_list( SQL_SET, l); }
7549#line 7550 "sql_parser.tab.c" /* yacc.c:1646 */
7550 break;
7551
7552 case 53:
7553#line 906 "sql_parser.y" /* yacc.c:1646 */
7554 { dlist *l = L();
7555 sql_subtype t;
7556 sql_find_subtype(&t, "char", UTF8_strlen((yyvsp[0].sval)), 0 );
7557 append_string(l, sa_strdup(SA, "current_user"));
7558 append_symbol(l,
7559 _newAtomNode( _atom_string(&t, (yyvsp[0].sval))) );
7560 (yyval.sym) = _symbol_create_list( SQL_SET, l); }
7561#line 7562 "sql_parser.tab.c" /* yacc.c:1646 */
7562 break;
7563
7564 case 54:
7565#line 914 "sql_parser.y" /* yacc.c:1646 */
7566 { dlist *l = L();
7567 sql_subtype t;
7568 sql_find_subtype(&t, "char", UTF8_strlen((yyvsp[0].sval)), 0);
7569 append_string(l, sa_strdup(SA, "current_role"));
7570 append_symbol(l,
7571 _newAtomNode( _atom_string(&t, (yyvsp[0].sval))) );
7572 (yyval.sym) = _symbol_create_list( SQL_SET, l); }
7573#line 7574 "sql_parser.tab.c" /* yacc.c:1646 */
7574 break;
7575
7576 case 55:
7577#line 922 "sql_parser.y" /* yacc.c:1646 */
7578 { dlist *l = L();
7579 sql_subtype t;
7580 append_string(l, sa_strdup(SA, "current_timezone"));
7581 sql_find_subtype(&t, "sec_interval", inttype2digits(ihour, isec), 0);
7582 append_symbol(l, _newAtomNode(atom_int(SA, &t, 0)));
7583 (yyval.sym) = _symbol_create_list( SQL_SET, l); }
7584#line 7585 "sql_parser.tab.c" /* yacc.c:1646 */
7585 break;
7586
7587 case 56:
7588#line 929 "sql_parser.y" /* yacc.c:1646 */
7589 { dlist *l = L();
7590 append_string(l, sa_strdup(SA, "current_timezone"));
7591 append_symbol(l, (yyvsp[0].sym) );
7592 (yyval.sym) = _symbol_create_list( SQL_SET, l); }
7593#line 7594 "sql_parser.tab.c" /* yacc.c:1646 */
7594 break;
7595
7596 case 57:
7597#line 938 "sql_parser.y" /* yacc.c:1646 */
7598 { dlist *l = L();
7599 append_list(l, (yyvsp[-3].l));
7600 append_symbol(l, (yyvsp[-2].sym));
7601 append_symbol(l, (yyvsp[-1].sym));
7602 append_list(l, (yyvsp[0].l));
7603 append_int(l, (yyvsp[-4].bval));
7604 (yyval.sym) = _symbol_create_list( SQL_CREATE_SCHEMA, l); }
7605#line 7606 "sql_parser.tab.c" /* yacc.c:1646 */
7606 break;
7607
7608 case 58:
7609#line 946 "sql_parser.y" /* yacc.c:1646 */
7610 { dlist *l = L();
7611 append_list(l, (yyvsp[-1].l));
7612 append_int(l, (yyvsp[0].i_val));
7613 append_int(l, (yyvsp[-2].bval));
7614 (yyval.sym) = _symbol_create_list( SQL_DROP_SCHEMA, l); }
7615#line 7616 "sql_parser.tab.c" /* yacc.c:1646 */
7616 break;
7617
7618 case 59:
7619#line 955 "sql_parser.y" /* yacc.c:1646 */
7620 { (yyval.l) = L();
7621 append_string((yyval.l), (yyvsp[0].sval) );
7622 append_string((yyval.l), NULL ); }
7623#line 7624 "sql_parser.tab.c" /* yacc.c:1646 */
7624 break;
7625
7626 case 60:
7627#line 959 "sql_parser.y" /* yacc.c:1646 */
7628 { (yyval.l) = L();
7629 append_string((yyval.l), NULL );
7630 append_string((yyval.l), (yyvsp[0].sval) ); }
7631#line 7632 "sql_parser.tab.c" /* yacc.c:1646 */
7632 break;
7633
7634 case 61:
7635#line 963 "sql_parser.y" /* yacc.c:1646 */
7636 { (yyval.l) = L();
7637 append_string((yyval.l), (yyvsp[-2].sval) );
7638 append_string((yyval.l), (yyvsp[0].sval) ); }
7639#line 7640 "sql_parser.tab.c" /* yacc.c:1646 */
7640 break;
7641
7642 case 63:
7643#line 972 "sql_parser.y" /* yacc.c:1646 */
7644 { (yyval.sym) = NULL; }
7645#line 7646 "sql_parser.tab.c" /* yacc.c:1646 */
7646 break;
7647
7648 case 64:
7649#line 973 "sql_parser.y" /* yacc.c:1646 */
7650 { (yyval.sym) = _symbol_create( SQL_CHARSET, (yyvsp[0].sval) ); }
7651#line 7652 "sql_parser.tab.c" /* yacc.c:1646 */
7652 break;
7653
7654 case 65:
7655#line 977 "sql_parser.y" /* yacc.c:1646 */
7656 { (yyval.l) = L(); }
7657#line 7658 "sql_parser.tab.c" /* yacc.c:1646 */
7658 break;
7659
7660 case 67:
7661#line 982 "sql_parser.y" /* yacc.c:1646 */
7662 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
7663#line 7664 "sql_parser.tab.c" /* yacc.c:1646 */
7664 break;
7665
7666 case 68:
7667#line 984 "sql_parser.y" /* yacc.c:1646 */
7668 { (yyval.l) = append_symbol( (yyvsp[-1].l), (yyvsp[0].sym) ); }
7669#line 7670 "sql_parser.tab.c" /* yacc.c:1646 */
7670 break;
7671
7672 case 74:
7673#line 990 "sql_parser.y" /* yacc.c:1646 */
7674 { (yyval.i_val) = cur_user; }
7675#line 7676 "sql_parser.tab.c" /* yacc.c:1646 */
7676 break;
7677
7678 case 75:
7679#line 991 "sql_parser.y" /* yacc.c:1646 */
7680 { (yyval.i_val) = (yyvsp[0].i_val); }
7681#line 7682 "sql_parser.tab.c" /* yacc.c:1646 */
7682 break;
7683
7684 case 76:
7685#line 995 "sql_parser.y" /* yacc.c:1646 */
7686 { (yyval.i_val) = cur_user; }
7687#line 7688 "sql_parser.tab.c" /* yacc.c:1646 */
7688 break;
7689
7690 case 77:
7691#line 996 "sql_parser.y" /* yacc.c:1646 */
7692 { (yyval.i_val) = cur_role; }
7693#line 7694 "sql_parser.tab.c" /* yacc.c:1646 */
7694 break;
7695
7696 case 78:
7697#line 1001 "sql_parser.y" /* yacc.c:1646 */
7698 { dlist *l = L();
7699 append_list(l, (yyvsp[-4].l));
7700 append_list(l, (yyvsp[-2].l));
7701 append_int(l, (yyvsp[-1].bval));
7702 append_int(l, (yyvsp[0].i_val));
7703 (yyval.sym) = _symbol_create_list( SQL_GRANT, l);
7704 }
7705#line 7706 "sql_parser.tab.c" /* yacc.c:1646 */
7706 break;
7707
7708 case 79:
7709#line 1011 "sql_parser.y" /* yacc.c:1646 */
7710 { dlist *l = L();
7711 append_list(l, (yyvsp[-4].l));
7712 append_list(l, (yyvsp[-2].l));
7713 append_int(l, (yyvsp[-1].bval));
7714 append_int(l, (yyvsp[0].i_val));
7715 (yyval.sym) = _symbol_create_list( SQL_GRANT_ROLES, l); }
7716#line 7717 "sql_parser.tab.c" /* yacc.c:1646 */
7717 break;
7718
7719 case 80:
7720#line 1020 "sql_parser.y" /* yacc.c:1646 */
7721 { (yyval.l) = append_string(L(), (yyvsp[0].sval)); }
7722#line 7723 "sql_parser.tab.c" /* yacc.c:1646 */
7723 break;
7724
7725 case 81:
7726#line 1022 "sql_parser.y" /* yacc.c:1646 */
7727 { (yyval.l) = append_string((yyvsp[-2].l), (yyvsp[0].sval)); }
7728#line 7729 "sql_parser.tab.c" /* yacc.c:1646 */
7729 break;
7730
7731 case 82:
7732#line 1026 "sql_parser.y" /* yacc.c:1646 */
7733 { (yyval.bval) = 0; }
7734#line 7735 "sql_parser.tab.c" /* yacc.c:1646 */
7735 break;
7736
7737 case 83:
7738#line 1027 "sql_parser.y" /* yacc.c:1646 */
7739 { (yyval.bval) = 1; }
7740#line 7741 "sql_parser.tab.c" /* yacc.c:1646 */
7741 break;
7742
7743 case 84:
7744#line 1031 "sql_parser.y" /* yacc.c:1646 */
7745 { (yyval.bval) = 0; }
7746#line 7747 "sql_parser.tab.c" /* yacc.c:1646 */
7747 break;
7748
7749 case 85:
7750#line 1032 "sql_parser.y" /* yacc.c:1646 */
7751 { (yyval.bval) = 1; }
7752#line 7753 "sql_parser.tab.c" /* yacc.c:1646 */
7753 break;
7754
7755 case 86:
7756#line 1037 "sql_parser.y" /* yacc.c:1646 */
7757 { (yyval.i_val) = cur_user; }
7758#line 7759 "sql_parser.tab.c" /* yacc.c:1646 */
7759 break;
7760
7761 case 87:
7762#line 1038 "sql_parser.y" /* yacc.c:1646 */
7763 { (yyval.i_val) = (yyvsp[0].i_val); }
7764#line 7765 "sql_parser.tab.c" /* yacc.c:1646 */
7765 break;
7766
7767 case 88:
7768#line 1043 "sql_parser.y" /* yacc.c:1646 */
7769 { dlist *l = L();
7770 append_list(l, (yyvsp[-3].l));
7771 append_list(l, (yyvsp[-1].l));
7772 append_int(l, (yyvsp[-4].bval)); /* GRANT OPTION FOR */
7773 append_int(l, 0);
7774 append_int(l, (yyvsp[0].i_val));
7775 (yyval.sym) = _symbol_create_list( SQL_REVOKE, l); }
7776#line 7777 "sql_parser.tab.c" /* yacc.c:1646 */
7777 break;
7778
7779 case 89:
7780#line 1051 "sql_parser.y" /* yacc.c:1646 */
7781 { dlist *l = L();
7782 append_list(l, (yyvsp[-3].l));
7783 append_list(l, (yyvsp[-1].l));
7784 append_int(l, (yyvsp[-4].bval));
7785 append_int(l, (yyvsp[0].i_val));
7786 (yyval.sym) = _symbol_create_list( SQL_REVOKE_ROLES, l); }
7787#line 7788 "sql_parser.tab.c" /* yacc.c:1646 */
7788 break;
7789
7790 case 90:
7791#line 1060 "sql_parser.y" /* yacc.c:1646 */
7792 { (yyval.bval) = 0; }
7793#line 7794 "sql_parser.tab.c" /* yacc.c:1646 */
7794 break;
7795
7796 case 91:
7797#line 1061 "sql_parser.y" /* yacc.c:1646 */
7798 { (yyval.bval) = 1; }
7799#line 7800 "sql_parser.tab.c" /* yacc.c:1646 */
7800 break;
7801
7802 case 92:
7803#line 1065 "sql_parser.y" /* yacc.c:1646 */
7804 { (yyval.bval) = 0; }
7805#line 7806 "sql_parser.tab.c" /* yacc.c:1646 */
7806 break;
7807
7808 case 93:
7809#line 1066 "sql_parser.y" /* yacc.c:1646 */
7810 { (yyval.bval) = 1; }
7811#line 7812 "sql_parser.tab.c" /* yacc.c:1646 */
7812 break;
7813
7814 case 94:
7815#line 1071 "sql_parser.y" /* yacc.c:1646 */
7816 { (yyval.l) = L();
7817 append_list((yyval.l), (yyvsp[0].l));
7818 append_symbol((yyval.l), _symbol_create(SQL_GRANT, NULL)); }
7819#line 7820 "sql_parser.tab.c" /* yacc.c:1646 */
7820 break;
7821
7822 case 95:
7823#line 1075 "sql_parser.y" /* yacc.c:1646 */
7824 { (yyval.l) = L();
7825 append_list((yyval.l), (yyvsp[-2].l));
7826 append_symbol((yyval.l), (yyvsp[0].sym)); }
7827#line 7828 "sql_parser.tab.c" /* yacc.c:1646 */
7828 break;
7829
7830 case 96:
7831#line 1081 "sql_parser.y" /* yacc.c:1646 */
7832 { (yyval.l) = append_int(L(), (yyvsp[0].i_val)); }
7833#line 7834 "sql_parser.tab.c" /* yacc.c:1646 */
7834 break;
7835
7836 case 97:
7837#line 1083 "sql_parser.y" /* yacc.c:1646 */
7838 { (yyval.l) = append_int(append_int(L(), (yyvsp[-2].i_val)), (yyvsp[0].i_val)); }
7839#line 7840 "sql_parser.tab.c" /* yacc.c:1646 */
7840 break;
7841
7842 case 98:
7843#line 1087 "sql_parser.y" /* yacc.c:1646 */
7844 { (yyval.i_val) = PRIV_COPYFROMFILE; }
7845#line 7846 "sql_parser.tab.c" /* yacc.c:1646 */
7846 break;
7847
7848 case 99:
7849#line 1088 "sql_parser.y" /* yacc.c:1646 */
7850 { (yyval.i_val) = PRIV_COPYINTOFILE; }
7851#line 7852 "sql_parser.tab.c" /* yacc.c:1646 */
7852 break;
7853
7854 case 100:
7855#line 1092 "sql_parser.y" /* yacc.c:1646 */
7856 { (yyval.sym) = _symbol_create_list(SQL_TABLE, (yyvsp[0].l)); }
7857#line 7858 "sql_parser.tab.c" /* yacc.c:1646 */
7858 break;
7859
7860 case 101:
7861#line 1093 "sql_parser.y" /* yacc.c:1646 */
7862 { (yyval.sym) = _symbol_create_list(SQL_NAME, (yyvsp[0].l)); }
7863#line 7864 "sql_parser.tab.c" /* yacc.c:1646 */
7864 break;
7865
7866 case 102:
7867#line 1094 "sql_parser.y" /* yacc.c:1646 */
7868 { (yyval.sym) = _symbol_create_list(SQL_FUNC, (yyvsp[0].l)); }
7869#line 7870 "sql_parser.tab.c" /* yacc.c:1646 */
7870 break;
7871
7872 case 103:
7873#line 1105 "sql_parser.y" /* yacc.c:1646 */
7874 { (yyval.l) = NULL; }
7875#line 7876 "sql_parser.tab.c" /* yacc.c:1646 */
7876 break;
7877
7878 case 104:
7879#line 1106 "sql_parser.y" /* yacc.c:1646 */
7880 { (yyval.l) = NULL; }
7881#line 7882 "sql_parser.tab.c" /* yacc.c:1646 */
7882 break;
7883
7884 case 106:
7885#line 1111 "sql_parser.y" /* yacc.c:1646 */
7886 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
7887#line 7888 "sql_parser.tab.c" /* yacc.c:1646 */
7888 break;
7889
7890 case 107:
7891#line 1113 "sql_parser.y" /* yacc.c:1646 */
7892 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym)); }
7893#line 7894 "sql_parser.tab.c" /* yacc.c:1646 */
7894 break;
7895
7896 case 108:
7897#line 1117 "sql_parser.y" /* yacc.c:1646 */
7898 { (yyval.sym) = _symbol_create(SQL_INSERT,NULL); }
7899#line 7900 "sql_parser.tab.c" /* yacc.c:1646 */
7900 break;
7901
7902 case 109:
7903#line 1118 "sql_parser.y" /* yacc.c:1646 */
7904 { (yyval.sym) = _symbol_create(SQL_DELETE,NULL); }
7905#line 7906 "sql_parser.tab.c" /* yacc.c:1646 */
7906 break;
7907
7908 case 110:
7909#line 1119 "sql_parser.y" /* yacc.c:1646 */
7910 { (yyval.sym) = _symbol_create(SQL_TRUNCATE,NULL); }
7911#line 7912 "sql_parser.tab.c" /* yacc.c:1646 */
7912 break;
7913
7914 case 111:
7915#line 1120 "sql_parser.y" /* yacc.c:1646 */
7916 { (yyval.sym) = _symbol_create_list(SQL_UPDATE,(yyvsp[0].l)); }
7917#line 7918 "sql_parser.tab.c" /* yacc.c:1646 */
7918 break;
7919
7920 case 112:
7921#line 1121 "sql_parser.y" /* yacc.c:1646 */
7922 { (yyval.sym) = _symbol_create_list(SQL_SELECT,(yyvsp[0].l)); }
7923#line 7924 "sql_parser.tab.c" /* yacc.c:1646 */
7924 break;
7925
7926 case 113:
7927#line 1122 "sql_parser.y" /* yacc.c:1646 */
7928 { (yyval.sym) = _symbol_create_list(SQL_SELECT,(yyvsp[0].l)); }
7929#line 7930 "sql_parser.tab.c" /* yacc.c:1646 */
7930 break;
7931
7932 case 114:
7933#line 1123 "sql_parser.y" /* yacc.c:1646 */
7934 { (yyval.sym) = _symbol_create(SQL_EXECUTE,NULL); }
7935#line 7936 "sql_parser.tab.c" /* yacc.c:1646 */
7936 break;
7937
7938 case 115:
7939#line 1127 "sql_parser.y" /* yacc.c:1646 */
7940 { (yyval.l) = append_string(L(), (yyvsp[0].sval)); }
7941#line 7942 "sql_parser.tab.c" /* yacc.c:1646 */
7942 break;
7943
7944 case 116:
7945#line 1129 "sql_parser.y" /* yacc.c:1646 */
7946 { (yyval.l) = append_string((yyvsp[-2].l), (yyvsp[0].sval)); }
7947#line 7948 "sql_parser.tab.c" /* yacc.c:1646 */
7948 break;
7949
7950 case 117:
7951#line 1133 "sql_parser.y" /* yacc.c:1646 */
7952 { (yyval.sval) = NULL; }
7953#line 7954 "sql_parser.tab.c" /* yacc.c:1646 */
7954 break;
7955
7956 case 118:
7957#line 1134 "sql_parser.y" /* yacc.c:1646 */
7958 { (yyval.sval) = (yyvsp[0].sval); }
7959#line 7960 "sql_parser.tab.c" /* yacc.c:1646 */
7960 break;
7961
7962 case 119:
7963#line 1141 "sql_parser.y" /* yacc.c:1646 */
7964 { dlist *l = L();
7965 append_list(l, (yyvsp[-3].l));
7966 append_symbol(l, (yyvsp[0].sym));
7967 append_int(l, (yyvsp[-4].bval));
7968 (yyval.sym) = _symbol_create_list( SQL_ALTER_TABLE, l ); }
7969#line 7970 "sql_parser.tab.c" /* yacc.c:1646 */
7970 break;
7971
7972 case 120:
7973#line 1147 "sql_parser.y" /* yacc.c:1646 */
7974 { dlist *l = L(), *part;
7975 append_list(l, (yyvsp[-4].l));
7976 append_symbol(l, _symbol_create_list( SQL_TABLE, append_list(L(),(yyvsp[-1].l))));
7977 append_int(l, (yyvsp[-5].bval));
7978 if((yyvsp[0].sym)) {
7979 part = (yyvsp[0].sym)->data.lval;
7980 append_int(part, FALSE);
7981 }
7982 append_symbol(l, (yyvsp[0].sym));
7983 (yyval.sym) = _symbol_create_list( SQL_ALTER_TABLE, l ); }
7984#line 7985 "sql_parser.tab.c" /* yacc.c:1646 */
7985 break;
7986
7987 case 121:
7988#line 1158 "sql_parser.y" /* yacc.c:1646 */
7989 { dlist *l = L();
7990 append_list(l, (yyvsp[-2].l));
7991 append_symbol(l, (yyvsp[0].sym));
7992 append_int(l, (yyvsp[-3].bval));
7993 (yyval.sym) = _symbol_create_list( SQL_ALTER_TABLE, l ); }
7994#line 7995 "sql_parser.tab.c" /* yacc.c:1646 */
7995 break;
7996
7997 case 122:
7998#line 1164 "sql_parser.y" /* yacc.c:1646 */
7999 { dlist *l = L();
8000 append_list(l, (yyvsp[-2].l));
8001 append_symbol(l, (yyvsp[0].sym));
8002 append_int(l, (yyvsp[-3].bval));
8003 (yyval.sym) = _symbol_create_list( SQL_ALTER_TABLE, l ); }
8004#line 8005 "sql_parser.tab.c" /* yacc.c:1646 */
8005 break;
8006
8007 case 123:
8008#line 1170 "sql_parser.y" /* yacc.c:1646 */
8009 { dlist *l = L();
8010 append_list(l, (yyvsp[-3].l));
8011 append_symbol(l, _symbol_create_int(SQL_ALTER_TABLE, tr_readonly));
8012 append_int(l, (yyvsp[-4].bval));
8013 (yyval.sym) = _symbol_create_list( SQL_ALTER_TABLE, l ); }
8014#line 8015 "sql_parser.tab.c" /* yacc.c:1646 */
8015 break;
8016
8017 case 124:
8018#line 1176 "sql_parser.y" /* yacc.c:1646 */
8019 { dlist *l = L();
8020 append_list(l, (yyvsp[-3].l));
8021 append_symbol(l, _symbol_create_int(SQL_ALTER_TABLE, tr_append));
8022 append_int(l, (yyvsp[-4].bval));
8023 (yyval.sym) = _symbol_create_list( SQL_ALTER_TABLE, l ); }
8024#line 8025 "sql_parser.tab.c" /* yacc.c:1646 */
8025 break;
8026
8027 case 125:
8028#line 1182 "sql_parser.y" /* yacc.c:1646 */
8029 { dlist *l = L();
8030 append_list(l, (yyvsp[-3].l));
8031 append_symbol(l, _symbol_create_int(SQL_ALTER_TABLE, tr_writable));
8032 append_int(l, (yyvsp[-4].bval));
8033 (yyval.sym) = _symbol_create_list( SQL_ALTER_TABLE, l ); }
8034#line 8035 "sql_parser.tab.c" /* yacc.c:1646 */
8035 break;
8036
8037 case 126:
8038#line 1188 "sql_parser.y" /* yacc.c:1646 */
8039 { dlist *l = L(), *part;
8040 append_list(l, (yyvsp[-4].l));
8041 append_symbol(l, _symbol_create_list( SQL_TABLE, append_list(L(),(yyvsp[-1].l))));
8042 append_int(l, (yyvsp[-5].bval));
8043 if((yyvsp[0].sym)) {
8044 part = (yyvsp[0].sym)->data.lval;
8045 append_int(part, TRUE);
8046 }
8047 append_symbol(l, (yyvsp[0].sym));
8048 (yyval.sym) = _symbol_create_list( SQL_ALTER_TABLE, l ); }
8049#line 8050 "sql_parser.tab.c" /* yacc.c:1646 */
8050 break;
8051
8052 case 127:
8053#line 1199 "sql_parser.y" /* yacc.c:1646 */
8054 { dlist *l = L();
8055 append_list(l, (yyvsp[-3].l));
8056 append_string(l, (yyvsp[0].sval));
8057 append_int(l, (yyvsp[-4].bval));
8058 (yyval.sym) = _symbol_create_list( SQL_RENAME_TABLE, l ); }
8059#line 8060 "sql_parser.tab.c" /* yacc.c:1646 */
8060 break;
8061
8062 case 128:
8063#line 1205 "sql_parser.y" /* yacc.c:1646 */
8064 { dlist *l = L();
8065 append_list(l, (yyvsp[-5].l));
8066 append_string(l, (yyvsp[-2].sval));
8067 append_string(l, (yyvsp[0].sval));
8068 append_int(l, (yyvsp[-6].bval));
8069 (yyval.sym) = _symbol_create_list( SQL_RENAME_COLUMN, l); }
8070#line 8071 "sql_parser.tab.c" /* yacc.c:1646 */
8071 break;
8072
8073 case 129:
8074#line 1212 "sql_parser.y" /* yacc.c:1646 */
8075 { dlist *l = L();
8076 append_list(l, (yyvsp[-3].l));
8077 append_string(l, (yyvsp[0].sval));
8078 append_int(l, (yyvsp[-4].bval));
8079 (yyval.sym) = _symbol_create_list( SQL_SET_TABLE_SCHEMA, l ); }
8080#line 8081 "sql_parser.tab.c" /* yacc.c:1646 */
8081 break;
8082
8083 case 130:
8084#line 1218 "sql_parser.y" /* yacc.c:1646 */
8085 { dlist *l = L();
8086 append_string(l, (yyvsp[-1].sval));
8087 append_list(l, (yyvsp[0].l));
8088 (yyval.sym) = _symbol_create_list( SQL_ALTER_USER, l ); }
8089#line 8090 "sql_parser.tab.c" /* yacc.c:1646 */
8090 break;
8091
8092 case 131:
8093#line 1223 "sql_parser.y" /* yacc.c:1646 */
8094 { dlist *l = L();
8095 append_string(l, (yyvsp[-3].sval));
8096 append_string(l, (yyvsp[0].sval));
8097 (yyval.sym) = _symbol_create_list( SQL_RENAME_USER, l ); }
8098#line 8099 "sql_parser.tab.c" /* yacc.c:1646 */
8099 break;
8100
8101 case 132:
8102#line 1228 "sql_parser.y" /* yacc.c:1646 */
8103 { dlist *l = L();
8104 dlist *p = L();
8105 append_string(l, NULL);
8106 append_string(p, (yyvsp[-4].sval));
8107 append_string(p, NULL);
8108 append_int(p, (yyvsp[-6].i_val));
8109 append_string(p, (yyvsp[0].sval));
8110 append_list(l, p);
8111 (yyval.sym) = _symbol_create_list( SQL_ALTER_USER, l ); }
8112#line 8113 "sql_parser.tab.c" /* yacc.c:1646 */
8113 break;
8114
8115 case 133:
8116#line 1238 "sql_parser.y" /* yacc.c:1646 */
8117 { dlist *l = L();
8118 append_string(l, (yyvsp[-3].sval));
8119 append_string(l, (yyvsp[0].sval));
8120 append_int(l, (yyvsp[-4].bval));
8121 (yyval.sym) = _symbol_create_list( SQL_RENAME_SCHEMA, l ); }
8122#line 8123 "sql_parser.tab.c" /* yacc.c:1646 */
8123 break;
8124
8125 case 134:
8126#line 1246 "sql_parser.y" /* yacc.c:1646 */
8127 { dlist * l = L();
8128 append_string(l, (yyvsp[0].sval));
8129 append_string(l, NULL);
8130 append_int(l, (yyvsp[-2].i_val));
8131 append_string(l, NULL);
8132 (yyval.l) = l; }
8133#line 8134 "sql_parser.tab.c" /* yacc.c:1646 */
8134 break;
8135
8136 case 135:
8137#line 1252 "sql_parser.y" /* yacc.c:1646 */
8138 { dlist * l = L();
8139 append_string(l, NULL);
8140 append_string(l, (yyvsp[0].sval));
8141 append_int(l, 0);
8142 append_string(l, NULL);
8143 (yyval.l) = l; }
8144#line 8145 "sql_parser.tab.c" /* yacc.c:1646 */
8145 break;
8146
8147 case 136:
8148#line 1259 "sql_parser.y" /* yacc.c:1646 */
8149 { dlist * l = L();
8150 append_string(l, (yyvsp[-3].sval));
8151 append_string(l, (yyvsp[0].sval));
8152 append_int(l, (yyvsp[-5].i_val));
8153 append_string(l, NULL);
8154 (yyval.l) = l; }
8155#line 8156 "sql_parser.tab.c" /* yacc.c:1646 */
8156 break;
8157
8158 case 137:
8159#line 1269 "sql_parser.y" /* yacc.c:1646 */
8160 { dlist *l = L();
8161 append_string(l, (yyvsp[-3].sval));
8162 append_symbol(l, (yyvsp[0].sym));
8163 (yyval.sym) = _symbol_create_list( SQL_DEFAULT, l); }
8164#line 8165 "sql_parser.tab.c" /* yacc.c:1646 */
8165 break;
8166
8167 case 138:
8168#line 1274 "sql_parser.y" /* yacc.c:1646 */
8169 { dlist *l = L();
8170 append_string(l, (yyvsp[-2].sval));
8171 (yyval.sym) = _symbol_create_list( SQL_NULL, l); }
8172#line 8173 "sql_parser.tab.c" /* yacc.c:1646 */
8173 break;
8174
8175 case 139:
8176#line 1278 "sql_parser.y" /* yacc.c:1646 */
8177 { dlist *l = L();
8178 append_string(l, (yyvsp[-3].sval));
8179 (yyval.sym) = _symbol_create_list( SQL_NOT_NULL, l); }
8180#line 8181 "sql_parser.tab.c" /* yacc.c:1646 */
8181 break;
8182
8183 case 140:
8184#line 1282 "sql_parser.y" /* yacc.c:1646 */
8185 { (yyval.sym) = _symbol_create( SQL_DROP_DEFAULT, (yyvsp[-2].sval)); }
8186#line 8187 "sql_parser.tab.c" /* yacc.c:1646 */
8187 break;
8188
8189 case 141:
8190#line 1284 "sql_parser.y" /* yacc.c:1646 */
8191 { dlist *l = L();
8192 append_string(l, (yyvsp[-3].sval));
8193 if (!strlen((yyvsp[0].sval)))
8194 append_string(l, NULL);
8195 else
8196 append_string(l, (yyvsp[0].sval));
8197 (yyval.sym) = _symbol_create_list( SQL_STORAGE, l); }
8198#line 8199 "sql_parser.tab.c" /* yacc.c:1646 */
8199 break;
8200
8201 case 142:
8202#line 1292 "sql_parser.y" /* yacc.c:1646 */
8203 { dlist *l = L();
8204 append_string(l, (yyvsp[-3].sval));
8205 append_string(l, NULL);
8206 (yyval.sym) = _symbol_create_list( SQL_STORAGE, l); }
8207#line 8208 "sql_parser.tab.c" /* yacc.c:1646 */
8208 break;
8209
8210 case 143:
8211#line 1300 "sql_parser.y" /* yacc.c:1646 */
8212 { dlist *l = L();
8213 append_string(l, (yyvsp[-1].sval) );
8214 append_int(l, (yyvsp[0].i_val) );
8215 (yyval.sym) = _symbol_create_list( SQL_DROP_COLUMN, l ); }
8216#line 8217 "sql_parser.tab.c" /* yacc.c:1646 */
8217 break;
8218
8219 case 144:
8220#line 1305 "sql_parser.y" /* yacc.c:1646 */
8221 { dlist *l = L();
8222 append_string(l, (yyvsp[-1].sval) );
8223 append_int(l, (yyvsp[0].i_val) );
8224 (yyval.sym) = _symbol_create_list( SQL_DROP_CONSTRAINT, l ); }
8225#line 8226 "sql_parser.tab.c" /* yacc.c:1646 */
8226 break;
8227
8228 case 145:
8229#line 1310 "sql_parser.y" /* yacc.c:1646 */
8230 { dlist *l = L();
8231 append_list(l, (yyvsp[-1].l) );
8232 append_int(l, (yyvsp[0].i_val) );
8233 append_int(l, FALSE); /* no if exists check */
8234 (yyval.sym) = _symbol_create_list( SQL_DROP_TABLE, l ); }
8235#line 8236 "sql_parser.tab.c" /* yacc.c:1646 */
8236 break;
8237
8238 case 146:
8239#line 1318 "sql_parser.y" /* yacc.c:1646 */
8240 { (yyval.i_val) = 0; }
8241#line 8242 "sql_parser.tab.c" /* yacc.c:1646 */
8242 break;
8243
8244 case 147:
8245#line 1319 "sql_parser.y" /* yacc.c:1646 */
8246 { (yyval.i_val) = 0; }
8247#line 8248 "sql_parser.tab.c" /* yacc.c:1646 */
8248 break;
8249
8250 case 148:
8251#line 1323 "sql_parser.y" /* yacc.c:1646 */
8252 { (yyval.sym) = (yyvsp[0].sym); }
8253#line 8254 "sql_parser.tab.c" /* yacc.c:1646 */
8254 break;
8255
8256 case 149:
8257#line 1324 "sql_parser.y" /* yacc.c:1646 */
8258 { (yyval.sym) = (yyvsp[0].sym); }
8259#line 8260 "sql_parser.tab.c" /* yacc.c:1646 */
8260 break;
8261
8262 case 150:
8263#line 1325 "sql_parser.y" /* yacc.c:1646 */
8264 { (yyval.sym) = (yyvsp[0].sym); }
8265#line 8266 "sql_parser.tab.c" /* yacc.c:1646 */
8266 break;
8267
8268 case 156:
8269#line 1347 "sql_parser.y" /* yacc.c:1646 */
8270 {
8271 dlist *l = L();
8272 append_list(l, (yyvsp[-1].l));
8273 append_list(l, (yyvsp[0].l));
8274 append_int(l, 0); /* to be dropped */
8275 (yyval.sym) = _symbol_create_list(SQL_CREATE_SEQ, l);
8276 }
8277#line 8278 "sql_parser.tab.c" /* yacc.c:1646 */
8278 break;
8279
8280 case 157:
8281#line 1358 "sql_parser.y" /* yacc.c:1646 */
8282 {
8283 dlist *l = L();
8284 append_list(l, (yyvsp[0].l));
8285 (yyval.sym) = _symbol_create_list(SQL_DROP_SEQ, l);
8286 }
8287#line 8288 "sql_parser.tab.c" /* yacc.c:1646 */
8288 break;
8289
8290 case 158:
8291#line 1375 "sql_parser.y" /* yacc.c:1646 */
8292 {
8293 dlist *l = L();
8294 append_list(l, (yyvsp[-1].l));
8295 append_list(l, (yyvsp[0].l));
8296 (yyval.sym) = _symbol_create_list(SQL_ALTER_SEQ, l);
8297 }
8298#line 8299 "sql_parser.tab.c" /* yacc.c:1646 */
8299 break;
8300
8301 case 159:
8302#line 1384 "sql_parser.y" /* yacc.c:1646 */
8303 { (yyval.l) = (yyvsp[0].l); }
8304#line 8305 "sql_parser.tab.c" /* yacc.c:1646 */
8305 break;
8306
8307 case 160:
8308#line 1385 "sql_parser.y" /* yacc.c:1646 */
8309 { (yyval.l) = NULL; }
8310#line 8311 "sql_parser.tab.c" /* yacc.c:1646 */
8311 break;
8312
8313 case 161:
8314#line 1388 "sql_parser.y" /* yacc.c:1646 */
8315 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
8316#line 8317 "sql_parser.tab.c" /* yacc.c:1646 */
8317 break;
8318
8319 case 162:
8320#line 1389 "sql_parser.y" /* yacc.c:1646 */
8321 { (yyval.l) = append_symbol((yyvsp[-1].l), (yyvsp[0].sym)); }
8322#line 8323 "sql_parser.tab.c" /* yacc.c:1646 */
8323 break;
8324
8325 case 163:
8326#line 1393 "sql_parser.y" /* yacc.c:1646 */
8327 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
8328#line 8329 "sql_parser.tab.c" /* yacc.c:1646 */
8329 break;
8330
8331 case 164:
8332#line 1394 "sql_parser.y" /* yacc.c:1646 */
8333 { (yyval.l) = append_symbol((yyvsp[-1].l), (yyvsp[0].sym)); }
8334#line 8335 "sql_parser.tab.c" /* yacc.c:1646 */
8335 break;
8336
8337 case 165:
8338#line 1398 "sql_parser.y" /* yacc.c:1646 */
8339 { (yyval.sym) = _symbol_create_list(SQL_TYPE, append_type(L(),&(yyvsp[0].type))); }
8340#line 8341 "sql_parser.tab.c" /* yacc.c:1646 */
8341 break;
8342
8343 case 166:
8344#line 1399 "sql_parser.y" /* yacc.c:1646 */
8345 { (yyval.sym) = _symbol_create_lng(SQL_START, is_lng_nil((yyvsp[0].l_val)) ? (yyvsp[0].l_val) : (yyvsp[-1].i_val) * (yyvsp[0].l_val)); }
8346#line 8347 "sql_parser.tab.c" /* yacc.c:1646 */
8347 break;
8348
8349 case 167:
8350#line 1400 "sql_parser.y" /* yacc.c:1646 */
8351 { (yyval.sym) = (yyvsp[0].sym); }
8352#line 8353 "sql_parser.tab.c" /* yacc.c:1646 */
8353 break;
8354
8355 case 168:
8356#line 1404 "sql_parser.y" /* yacc.c:1646 */
8357 { (yyval.sym) = _symbol_create_list(SQL_TYPE, append_type(L(),&(yyvsp[0].type))); }
8358#line 8359 "sql_parser.tab.c" /* yacc.c:1646 */
8359 break;
8360
8361 case 169:
8362#line 1405 "sql_parser.y" /* yacc.c:1646 */
8363 { (yyval.sym) = _symbol_create_list(SQL_START, append_int(L(),0)); /* plain restart now */ }
8364#line 8365 "sql_parser.tab.c" /* yacc.c:1646 */
8365 break;
8366
8367 case 170:
8368#line 1406 "sql_parser.y" /* yacc.c:1646 */
8369 { (yyval.sym) = _symbol_create_list(SQL_START, append_lng(append_int(L(),2), is_lng_nil((yyvsp[0].l_val)) ? (yyvsp[0].l_val) : (yyvsp[-1].i_val) * (yyvsp[0].l_val))); }
8370#line 8371 "sql_parser.tab.c" /* yacc.c:1646 */
8371 break;
8372
8373 case 171:
8374#line 1407 "sql_parser.y" /* yacc.c:1646 */
8375 { (yyval.sym) = _symbol_create_list(SQL_START, append_symbol(append_int(L(),1), (yyvsp[0].sym))); }
8376#line 8377 "sql_parser.tab.c" /* yacc.c:1646 */
8377 break;
8378
8379 case 172:
8380#line 1408 "sql_parser.y" /* yacc.c:1646 */
8381 { (yyval.sym) = (yyvsp[0].sym); }
8382#line 8383 "sql_parser.tab.c" /* yacc.c:1646 */
8383 break;
8384
8385 case 173:
8386#line 1412 "sql_parser.y" /* yacc.c:1646 */
8387 { (yyval.sym) = _symbol_create_lng(SQL_INC, is_lng_nil((yyvsp[0].l_val)) ? (yyvsp[0].l_val) : (yyvsp[-1].i_val) * (yyvsp[0].l_val)); }
8388#line 8389 "sql_parser.tab.c" /* yacc.c:1646 */
8389 break;
8390
8391 case 174:
8392#line 1413 "sql_parser.y" /* yacc.c:1646 */
8393 { (yyval.sym) = _symbol_create_lng(SQL_MINVALUE, is_lng_nil((yyvsp[0].l_val)) ? (yyvsp[0].l_val) : (yyvsp[-1].i_val) * (yyvsp[0].l_val)); }
8394#line 8395 "sql_parser.tab.c" /* yacc.c:1646 */
8395 break;
8396
8397 case 175:
8398#line 1414 "sql_parser.y" /* yacc.c:1646 */
8399 { (yyval.sym) = _symbol_create_lng(SQL_MINVALUE, 0); }
8400#line 8401 "sql_parser.tab.c" /* yacc.c:1646 */
8401 break;
8402
8403 case 176:
8404#line 1415 "sql_parser.y" /* yacc.c:1646 */
8405 { (yyval.sym) = _symbol_create_lng(SQL_MAXVALUE, is_lng_nil((yyvsp[0].l_val)) ? (yyvsp[0].l_val) : (yyvsp[-1].i_val) * (yyvsp[0].l_val)); }
8406#line 8407 "sql_parser.tab.c" /* yacc.c:1646 */
8407 break;
8408
8409 case 177:
8410#line 1416 "sql_parser.y" /* yacc.c:1646 */
8411 { (yyval.sym) = _symbol_create_lng(SQL_MAXVALUE, 0); }
8412#line 8413 "sql_parser.tab.c" /* yacc.c:1646 */
8413 break;
8414
8415 case 178:
8416#line 1417 "sql_parser.y" /* yacc.c:1646 */
8417 { (yyval.sym) = _symbol_create_lng(SQL_CACHE, (yyvsp[0].l_val)); }
8418#line 8419 "sql_parser.tab.c" /* yacc.c:1646 */
8419 break;
8420
8421 case 179:
8422#line 1418 "sql_parser.y" /* yacc.c:1646 */
8423 { (yyval.sym) = _symbol_create_int(SQL_CYCLE, 1); }
8424#line 8425 "sql_parser.tab.c" /* yacc.c:1646 */
8425 break;
8426
8427 case 180:
8428#line 1419 "sql_parser.y" /* yacc.c:1646 */
8429 { (yyval.sym) = _symbol_create_int(SQL_CYCLE, 0); }
8430#line 8431 "sql_parser.tab.c" /* yacc.c:1646 */
8431 break;
8432
8433 case 181:
8434#line 1427 "sql_parser.y" /* yacc.c:1646 */
8435 { dlist *l = L();
8436 append_string(l, (yyvsp[-5].sval));
8437 append_int(l, (yyvsp[-7].i_val));
8438 append_list(l, (yyvsp[-3].l));
8439 append_list(l, (yyvsp[-1].l));
8440 (yyval.sym) = _symbol_create_list( SQL_CREATE_INDEX, l); }
8441#line 8442 "sql_parser.tab.c" /* yacc.c:1646 */
8442 break;
8443
8444 case 182:
8445#line 1436 "sql_parser.y" /* yacc.c:1646 */
8446 { (yyval.i_val) = hash_idx; }
8447#line 8448 "sql_parser.tab.c" /* yacc.c:1646 */
8448 break;
8449
8450 case 183:
8451#line 1437 "sql_parser.y" /* yacc.c:1646 */
8452 { (yyval.i_val) = ordered_idx; }
8453#line 8454 "sql_parser.tab.c" /* yacc.c:1646 */
8454 break;
8455
8456 case 184:
8457#line 1438 "sql_parser.y" /* yacc.c:1646 */
8458 { (yyval.i_val) = imprints_idx; }
8459#line 8460 "sql_parser.tab.c" /* yacc.c:1646 */
8460 break;
8461
8462 case 185:
8463#line 1439 "sql_parser.y" /* yacc.c:1646 */
8464 { (yyval.i_val) = hash_idx; }
8465#line 8466 "sql_parser.tab.c" /* yacc.c:1646 */
8466 break;
8467
8468 case 186:
8469#line 1460 "sql_parser.y" /* yacc.c:1646 */
8470 { dlist *l = L();
8471 append_string(l, (yyvsp[-1].sval));
8472 append_int(l, (yyvsp[0].i_val));
8473 (yyval.sym) = _symbol_create_list( SQL_CREATE_ROLE, l ); }
8474#line 8475 "sql_parser.tab.c" /* yacc.c:1646 */
8475 break;
8476
8477 case 187:
8478#line 1465 "sql_parser.y" /* yacc.c:1646 */
8479 { dlist *l = L();
8480 append_string(l, (yyvsp[-8].sval));
8481 append_string(l, (yyvsp[-4].sval));
8482 append_string(l, (yyvsp[-2].sval));
8483 append_string(l, (yyvsp[0].sval));
8484 append_int(l, (yyvsp[-6].i_val));
8485 (yyval.sym) = _symbol_create_list( SQL_CREATE_USER, l ); }
8486#line 8487 "sql_parser.tab.c" /* yacc.c:1646 */
8487 break;
8488
8489 case 188:
8490#line 1475 "sql_parser.y" /* yacc.c:1646 */
8491 { (yyval.i_val) = SQL_PW_UNENCRYPTED; }
8492#line 8493 "sql_parser.tab.c" /* yacc.c:1646 */
8493 break;
8494
8495 case 189:
8496#line 1476 "sql_parser.y" /* yacc.c:1646 */
8497 { (yyval.i_val) = SQL_PW_UNENCRYPTED; }
8498#line 8499 "sql_parser.tab.c" /* yacc.c:1646 */
8499 break;
8500
8501 case 190:
8502#line 1477 "sql_parser.y" /* yacc.c:1646 */
8503 { (yyval.i_val) = SQL_PW_ENCRYPTED; }
8504#line 8505 "sql_parser.tab.c" /* yacc.c:1646 */
8505 break;
8506
8507 case 191:
8508#line 1481 "sql_parser.y" /* yacc.c:1646 */
8509 { (yyval.l) = NULL; }
8510#line 8511 "sql_parser.tab.c" /* yacc.c:1646 */
8511 break;
8512
8513 case 192:
8514#line 1482 "sql_parser.y" /* yacc.c:1646 */
8515 { (yyval.l) = append_string(append_string(L(), (yyvsp[-1].sval)), (yyvsp[0].sval)); }
8516#line 8517 "sql_parser.tab.c" /* yacc.c:1646 */
8517 break;
8518
8519 case 193:
8520#line 1487 "sql_parser.y" /* yacc.c:1646 */
8521 { int commit_action = CA_COMMIT;
8522 dlist *l = L();
8523
8524 append_int(l, SQL_PERSIST);
8525 append_list(l, (yyvsp[-2].l));
8526 append_symbol(l, (yyvsp[-1].sym));
8527 append_int(l, commit_action);
8528 append_string(l, NULL);
8529 append_list(l, NULL);
8530 append_int(l, (yyvsp[-3].bval));
8531 append_list(l, (yyvsp[0].l));
8532 append_symbol(l, NULL); /* only used for merge table */
8533 (yyval.sym) = _symbol_create_list( SQL_CREATE_TABLE, l ); }
8534#line 8535 "sql_parser.tab.c" /* yacc.c:1646 */
8535 break;
8536
8537 case 194:
8538#line 1501 "sql_parser.y" /* yacc.c:1646 */
8539 {
8540 dlist *l = L();
8541 append_list(l, (yyvsp[-3].l));
8542 append_symbol(l, (yyvsp[0].sym));
8543 (yyval.sym) = _symbol_create_list( SQL_CREATE_TABLE_LOADER, l);
8544 }
8545#line 8546 "sql_parser.tab.c" /* yacc.c:1646 */
8546 break;
8547
8548 case 195:
8549#line 1508 "sql_parser.y" /* yacc.c:1646 */
8550 { int commit_action = CA_COMMIT, tpe = SQL_STREAM;
8551 dlist *l = L();
8552
8553 append_int(l, tpe);
8554 append_list(l, (yyvsp[-1].l));
8555 append_symbol(l, (yyvsp[0].sym));
8556 append_int(l, commit_action);
8557 append_string(l, NULL);
8558 append_list(l, NULL);
8559 append_int(l, (yyvsp[-2].bval));
8560 append_symbol(l, NULL); /* only used for merge table */
8561 (yyval.sym) = _symbol_create_list( SQL_CREATE_TABLE, l ); }
8562#line 8563 "sql_parser.tab.c" /* yacc.c:1646 */
8563 break;
8564
8565 case 196:
8566#line 1521 "sql_parser.y" /* yacc.c:1646 */
8567 { int commit_action = CA_COMMIT, tpe = SQL_MERGE_TABLE;
8568 dlist *l = L();
8569
8570 append_int(l, tpe);
8571 append_list(l, (yyvsp[-2].l));
8572 append_symbol(l, (yyvsp[-1].sym));
8573 append_int(l, commit_action);
8574 append_string(l, NULL);
8575 append_list(l, NULL);
8576 append_int(l, (yyvsp[-3].bval));
8577 append_symbol(l, (yyvsp[0].sym));
8578 (yyval.sym) = _symbol_create_list( SQL_CREATE_TABLE, l ); }
8579#line 8580 "sql_parser.tab.c" /* yacc.c:1646 */
8580 break;
8581
8582 case 197:
8583#line 1534 "sql_parser.y" /* yacc.c:1646 */
8584 { int commit_action = CA_COMMIT, tpe = SQL_REPLICA_TABLE;
8585 dlist *l = L();
8586
8587 append_int(l, tpe);
8588 append_list(l, (yyvsp[-1].l));
8589 append_symbol(l, (yyvsp[0].sym));
8590 append_int(l, commit_action);
8591 append_string(l, NULL);
8592 append_list(l, NULL);
8593 append_int(l, (yyvsp[-2].bval));
8594 append_symbol(l, NULL); /* only used for merge table */
8595 (yyval.sym) = _symbol_create_list( SQL_CREATE_TABLE, l ); }
8596#line 8597 "sql_parser.tab.c" /* yacc.c:1646 */
8597 break;
8598
8599 case 198:
8600#line 1550 "sql_parser.y" /* yacc.c:1646 */
8601 { int commit_action = CA_COMMIT, tpe = SQL_REMOTE;
8602 dlist *l = L();
8603
8604 append_int(l, tpe);
8605 append_list(l, (yyvsp[-4].l));
8606 append_symbol(l, (yyvsp[-3].sym));
8607 append_int(l, commit_action);
8608 append_string(l, (yyvsp[-1].sval));
8609 append_list(l, (yyvsp[0].l));
8610 append_int(l, (yyvsp[-5].bval));
8611 append_symbol(l, NULL); /* only used for merge table */
8612 (yyval.sym) = _symbol_create_list( SQL_CREATE_TABLE, l ); }
8613#line 8614 "sql_parser.tab.c" /* yacc.c:1646 */
8614 break;
8615
8616 case 199:
8617#line 1563 "sql_parser.y" /* yacc.c:1646 */
8618 { int commit_action = CA_COMMIT;
8619 dlist *l = L();
8620
8621 append_int(l, (yyvsp[-5].i_val));
8622 append_list(l, (yyvsp[-2].l));
8623 append_symbol(l, (yyvsp[-1].sym));
8624 if ((yyvsp[-5].i_val) != SQL_PERSIST)
8625 commit_action = (yyvsp[0].i_val);
8626 append_int(l, commit_action);
8627 append_string(l, NULL);
8628 append_list(l, NULL);
8629 append_int(l, (yyvsp[-3].bval));
8630 append_symbol(l, NULL); /* only used for merge table */
8631 (yyval.sym) = _symbol_create_list( SQL_CREATE_TABLE, l ); }
8632#line 8633 "sql_parser.tab.c" /* yacc.c:1646 */
8633 break;
8634
8635 case 200:
8636#line 1580 "sql_parser.y" /* yacc.c:1646 */
8637 { (yyval.i_val) = PARTITION_RANGE; }
8638#line 8639 "sql_parser.tab.c" /* yacc.c:1646 */
8639 break;
8640
8641 case 201:
8642#line 1581 "sql_parser.y" /* yacc.c:1646 */
8643 { (yyval.i_val) = PARTITION_LIST; }
8644#line 8645 "sql_parser.tab.c" /* yacc.c:1646 */
8645 break;
8646
8647 case 202:
8648#line 1585 "sql_parser.y" /* yacc.c:1646 */
8649 { (yyval.sym) = (yyvsp[0].sym); }
8650#line 8651 "sql_parser.tab.c" /* yacc.c:1646 */
8651 break;
8652
8653 case 203:
8654#line 1589 "sql_parser.y" /* yacc.c:1646 */
8655 { (yyval.sym) = _symbol_create_list( SQL_PARTITION_COLUMN, append_string(L(), (yyvsp[-1].sval)) ); }
8656#line 8657 "sql_parser.tab.c" /* yacc.c:1646 */
8657 break;
8658
8659 case 204:
8660#line 1590 "sql_parser.y" /* yacc.c:1646 */
8661 { (yyval.sym) = _symbol_create_list( SQL_PARTITION_EXPRESSION, append_symbol(L(), (yyvsp[-1].sym)) ); }
8662#line 8663 "sql_parser.tab.c" /* yacc.c:1646 */
8663 break;
8664
8665 case 205:
8666#line 1594 "sql_parser.y" /* yacc.c:1646 */
8667 { (yyval.sym) = NULL; }
8668#line 8669 "sql_parser.tab.c" /* yacc.c:1646 */
8669 break;
8670
8671 case 206:
8672#line 1596 "sql_parser.y" /* yacc.c:1646 */
8673 { dlist *l = L();
8674 int properties = (yyvsp[-1].i_val);
8675 append_int(l, (yyvsp[-1].i_val));
8676 append_symbol(l, (yyvsp[0].sym));
8677
8678 assert((yyvsp[-1].i_val) == PARTITION_RANGE || (yyvsp[-1].i_val) == PARTITION_LIST);
8679 if((yyvsp[0].sym)->token == SQL_PARTITION_COLUMN) {
8680 properties |= PARTITION_COLUMN;
8681 } else if((yyvsp[0].sym)->token == SQL_PARTITION_EXPRESSION) {
8682 properties |= PARTITION_EXPRESSION;
8683 } else {
8684 assert(0);
8685 }
8686 append_int(l, properties);
8687
8688 (yyval.sym) = _symbol_create_list( SQL_MERGE_PARTITION, l ); }
8689#line 8690 "sql_parser.tab.c" /* yacc.c:1646 */
8690 break;
8691
8692 case 207:
8693#line 1615 "sql_parser.y" /* yacc.c:1646 */
8694 { (yyval.sym) = (yyvsp[0].sym); }
8695#line 8696 "sql_parser.tab.c" /* yacc.c:1646 */
8696 break;
8697
8698 case 208:
8699#line 1619 "sql_parser.y" /* yacc.c:1646 */
8700 { (yyval.sym) = (yyvsp[0].sym); }
8701#line 8702 "sql_parser.tab.c" /* yacc.c:1646 */
8702 break;
8703
8704 case 209:
8705#line 1620 "sql_parser.y" /* yacc.c:1646 */
8706 { (yyval.sym) = _symbol_create(SQL_MINVALUE, NULL ); }
8707#line 8708 "sql_parser.tab.c" /* yacc.c:1646 */
8708 break;
8709
8710 case 210:
8711#line 1624 "sql_parser.y" /* yacc.c:1646 */
8712 { (yyval.sym) = (yyvsp[0].sym); }
8713#line 8714 "sql_parser.tab.c" /* yacc.c:1646 */
8714 break;
8715
8716 case 211:
8717#line 1625 "sql_parser.y" /* yacc.c:1646 */
8718 { (yyval.sym) = _symbol_create(SQL_MAXVALUE, NULL ); }
8719#line 8720 "sql_parser.tab.c" /* yacc.c:1646 */
8720 break;
8721
8722 case 212:
8723#line 1629 "sql_parser.y" /* yacc.c:1646 */
8724 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym) ); }
8725#line 8726 "sql_parser.tab.c" /* yacc.c:1646 */
8726 break;
8727
8728 case 213:
8729#line 1630 "sql_parser.y" /* yacc.c:1646 */
8730 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym) ); }
8731#line 8732 "sql_parser.tab.c" /* yacc.c:1646 */
8732 break;
8733
8734 case 214:
8735#line 1634 "sql_parser.y" /* yacc.c:1646 */
8736 { (yyval.bval) = FALSE; }
8737#line 8738 "sql_parser.tab.c" /* yacc.c:1646 */
8738 break;
8739
8740 case 215:
8741#line 1635 "sql_parser.y" /* yacc.c:1646 */
8742 { (yyval.bval) = TRUE; }
8743#line 8744 "sql_parser.tab.c" /* yacc.c:1646 */
8744 break;
8745
8746 case 216:
8747#line 1640 "sql_parser.y" /* yacc.c:1646 */
8748 { dlist *l = L();
8749 append_list(l, (yyvsp[-2].l));
8750 append_int(l, (yyvsp[0].bval));
8751 (yyval.sym) = _symbol_create_list( SQL_PARTITION_LIST, l ); }
8752#line 8753 "sql_parser.tab.c" /* yacc.c:1646 */
8753 break;
8754
8755 case 217:
8756#line 1645 "sql_parser.y" /* yacc.c:1646 */
8757 { dlist *l = L();
8758 append_symbol(l, (yyvsp[-3].sym));
8759 append_symbol(l, (yyvsp[-1].sym));
8760 append_int(l, (yyvsp[0].bval));
8761 (yyval.sym) = _symbol_create_list( SQL_PARTITION_RANGE, l ); }
8762#line 8763 "sql_parser.tab.c" /* yacc.c:1646 */
8763 break;
8764
8765 case 218:
8766#line 1651 "sql_parser.y" /* yacc.c:1646 */
8767 { dlist *l = L();
8768 append_symbol(l, NULL);
8769 append_symbol(l, NULL);
8770 append_int(l, TRUE);
8771 (yyval.sym) = _symbol_create_list( SQL_MERGE_PARTITION, l ); }
8772#line 8773 "sql_parser.tab.c" /* yacc.c:1646 */
8773 break;
8774
8775 case 219:
8776#line 1659 "sql_parser.y" /* yacc.c:1646 */
8777 { (yyval.sym) = NULL; }
8778#line 8779 "sql_parser.tab.c" /* yacc.c:1646 */
8779 break;
8780
8781 case 220:
8782#line 1660 "sql_parser.y" /* yacc.c:1646 */
8783 { (yyval.sym) = (yyvsp[0].sym); }
8784#line 8785 "sql_parser.tab.c" /* yacc.c:1646 */
8785 break;
8786
8787 case 221:
8788#line 1665 "sql_parser.y" /* yacc.c:1646 */
8789 {
8790 (yyval.l) = append_string(L(), NULL);
8791 append_int((yyval.l), SQL_PW_ENCRYPTED);
8792 append_string((yyval.l), NULL);
8793 }
8794#line 8795 "sql_parser.tab.c" /* yacc.c:1646 */
8795 break;
8796
8797 case 222:
8798#line 1671 "sql_parser.y" /* yacc.c:1646 */
8799 {
8800 (yyval.l) = append_string(L(), (yyvsp[-3].sval));
8801 append_int((yyval.l), (yyvsp[-2].i_val));
8802 append_string((yyval.l), (yyvsp[0].sval));
8803 }
8804#line 8805 "sql_parser.tab.c" /* yacc.c:1646 */
8805 break;
8806
8807 case 223:
8808#line 1677 "sql_parser.y" /* yacc.c:1646 */
8809 {
8810 (yyval.l) = append_string(L(), NULL);
8811 append_int((yyval.l), (yyvsp[-2].i_val));
8812 append_string((yyval.l), (yyvsp[0].sval));
8813 }
8814#line 8815 "sql_parser.tab.c" /* yacc.c:1646 */
8815 break;
8816
8817 case 224:
8818#line 1685 "sql_parser.y" /* yacc.c:1646 */
8819 { (yyval.i_val) = SQL_LOCAL_TEMP; }
8820#line 8821 "sql_parser.tab.c" /* yacc.c:1646 */
8821 break;
8822
8823 case 225:
8824#line 1686 "sql_parser.y" /* yacc.c:1646 */
8825 { (yyval.i_val) = SQL_LOCAL_TEMP; }
8826#line 8827 "sql_parser.tab.c" /* yacc.c:1646 */
8827 break;
8828
8829 case 226:
8830#line 1687 "sql_parser.y" /* yacc.c:1646 */
8831 { (yyval.i_val) = SQL_LOCAL_TEMP; }
8832#line 8833 "sql_parser.tab.c" /* yacc.c:1646 */
8833 break;
8834
8835 case 227:
8836#line 1688 "sql_parser.y" /* yacc.c:1646 */
8837 { (yyval.i_val) = SQL_LOCAL_TEMP; }
8838#line 8839 "sql_parser.tab.c" /* yacc.c:1646 */
8839 break;
8840
8841 case 228:
8842#line 1689 "sql_parser.y" /* yacc.c:1646 */
8843 { (yyval.i_val) = SQL_GLOBAL_TEMP; }
8844#line 8845 "sql_parser.tab.c" /* yacc.c:1646 */
8845 break;
8846
8847 case 229:
8848#line 1690 "sql_parser.y" /* yacc.c:1646 */
8849 { (yyval.i_val) = SQL_GLOBAL_TEMP; }
8850#line 8851 "sql_parser.tab.c" /* yacc.c:1646 */
8851 break;
8852
8853 case 230:
8854#line 1694 "sql_parser.y" /* yacc.c:1646 */
8855 { (yyval.i_val) = CA_COMMIT; }
8856#line 8857 "sql_parser.tab.c" /* yacc.c:1646 */
8857 break;
8858
8859 case 231:
8860#line 1695 "sql_parser.y" /* yacc.c:1646 */
8861 { (yyval.i_val) = CA_DELETE; }
8862#line 8863 "sql_parser.tab.c" /* yacc.c:1646 */
8863 break;
8864
8865 case 232:
8866#line 1696 "sql_parser.y" /* yacc.c:1646 */
8867 { (yyval.i_val) = CA_PRESERVE; }
8868#line 8869 "sql_parser.tab.c" /* yacc.c:1646 */
8869 break;
8870
8871 case 233:
8872#line 1697 "sql_parser.y" /* yacc.c:1646 */
8873 { (yyval.i_val) = CA_DROP; }
8874#line 8875 "sql_parser.tab.c" /* yacc.c:1646 */
8875 break;
8876
8877 case 234:
8878#line 1701 "sql_parser.y" /* yacc.c:1646 */
8879 { (yyval.sym) = _symbol_create_list( SQL_CREATE_TABLE, (yyvsp[-1].l)); }
8880#line 8881 "sql_parser.tab.c" /* yacc.c:1646 */
8881 break;
8882
8883 case 235:
8884#line 1702 "sql_parser.y" /* yacc.c:1646 */
8885 { (yyval.sym) = _symbol_create_list( SQL_SELECT, (yyvsp[0].l)); }
8886#line 8887 "sql_parser.tab.c" /* yacc.c:1646 */
8887 break;
8888
8889 case 236:
8890#line 1710 "sql_parser.y" /* yacc.c:1646 */
8891 { (yyval.l) = append_list(L(), (yyvsp[-3].l));
8892 append_symbol((yyval.l), (yyvsp[-1].sym));
8893 append_int((yyval.l), (yyvsp[0].i_val)); }
8894#line 8895 "sql_parser.tab.c" /* yacc.c:1646 */
8895 break;
8896
8897 case 237:
8898#line 1716 "sql_parser.y" /* yacc.c:1646 */
8899 { (yyval.i_val) = 1; }
8900#line 8901 "sql_parser.tab.c" /* yacc.c:1646 */
8901 break;
8902
8903 case 238:
8904#line 1717 "sql_parser.y" /* yacc.c:1646 */
8905 { (yyval.i_val) = 0; }
8906#line 8907 "sql_parser.tab.c" /* yacc.c:1646 */
8907 break;
8908
8909 case 239:
8910#line 1718 "sql_parser.y" /* yacc.c:1646 */
8911 { (yyval.i_val) = 1; }
8912#line 8913 "sql_parser.tab.c" /* yacc.c:1646 */
8913 break;
8914
8915 case 240:
8916#line 1723 "sql_parser.y" /* yacc.c:1646 */
8917 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
8918#line 8919 "sql_parser.tab.c" /* yacc.c:1646 */
8919 break;
8920
8921 case 241:
8922#line 1725 "sql_parser.y" /* yacc.c:1646 */
8923 { (yyval.l) = append_symbol( (yyvsp[-2].l), (yyvsp[0].sym) ); }
8924#line 8925 "sql_parser.tab.c" /* yacc.c:1646 */
8925 break;
8926
8927 case 247:
8928#line 1732 "sql_parser.y" /* yacc.c:1646 */
8929 { (yyval.i_val) = 0; }
8930#line 8931 "sql_parser.tab.c" /* yacc.c:1646 */
8931 break;
8932
8933 case 248:
8934#line 1733 "sql_parser.y" /* yacc.c:1646 */
8935 { (yyval.i_val) = 1; }
8936#line 8937 "sql_parser.tab.c" /* yacc.c:1646 */
8937 break;
8938
8939 case 249:
8940#line 1738 "sql_parser.y" /* yacc.c:1646 */
8941 {
8942 dlist *l = L();
8943 append_string(l, (yyvsp[-2].sval));
8944 append_type(l, &(yyvsp[-1].type));
8945 append_list(l, (yyvsp[0].l));
8946 (yyval.sym) = _symbol_create_list(SQL_COLUMN, l);
8947 }
8948#line 8949 "sql_parser.tab.c" /* yacc.c:1646 */
8949 break;
8950
8951 case 250:
8952#line 1746 "sql_parser.y" /* yacc.c:1646 */
8953 { /* SERIAL = INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY */
8954 /* handle multi-statements by wrapping them in a list */
8955 sql_subtype it;
8956 dlist* stmts;
8957 /* note: sql_next_seq_name uses sa_alloc */
8958 str sn = sql_next_seq_name(m);
8959 dlist *p; /* primary key */
8960 /* sequence generation code */
8961 dlist *l = L();
8962 /* finally all the options */
8963 dlist *o = L();
8964
8965 /* the name of the sequence */
8966 dlist *seqn1 = L(), *seqn2 = L();
8967
8968 if (m->scanner.schema)
8969 append_string(seqn1, m->scanner.schema);
8970 append_list(l, append_string(seqn1, sn));
8971 if ((yyvsp[0].i_val) == 1)
8972 sql_find_subtype(&it, "bigint", 64, 0);
8973 else
8974 sql_find_subtype(&it, "int", 32, 0);
8975 append_symbol(o, _symbol_create_list(SQL_TYPE, append_type(L(),&it)));
8976 append_list(l, o);
8977 append_int(l, 1); /* to be dropped */
8978
8979 if (m->sym) {
8980 stmts = m->sym->data.lval;
8981 } else {
8982 stmts = L();
8983 m->sym = _symbol_create_list(SQL_MULSTMT, stmts);
8984 }
8985 append_symbol(stmts, _symbol_create_list(SQL_CREATE_SEQ, l));
8986
8987 l = L();
8988 append_string(l, (yyvsp[-1].sval));
8989 append_type(l, &it);
8990 o = L();
8991 if (m->scanner.schema)
8992 append_string(seqn2, m->scanner.schema);
8993 append_string(seqn2, sn);
8994 append_symbol(o, _symbol_create_symbol(SQL_DEFAULT, _symbol_create_list(SQL_NEXT, seqn2)));
8995 p = L();
8996 append_string(p, NULL);
8997 append_symbol(p, _symbol_create(SQL_PRIMARY_KEY, NULL));
8998 append_symbol(o, _symbol_create_list(SQL_CONSTRAINT, p));
8999 append_list(l, o);
9000 (yyval.sym) = _symbol_create_list(SQL_COLUMN, l);
9001 }
9002#line 9003 "sql_parser.tab.c" /* yacc.c:1646 */
9003 break;
9004
9005 case 251:
9006#line 1798 "sql_parser.y" /* yacc.c:1646 */
9007 { (yyval.l) = NULL; }
9008#line 9009 "sql_parser.tab.c" /* yacc.c:1646 */
9009 break;
9010
9011 case 253:
9012#line 1804 "sql_parser.y" /* yacc.c:1646 */
9013 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym) ); }
9014#line 9015 "sql_parser.tab.c" /* yacc.c:1646 */
9015 break;
9016
9017 case 254:
9018#line 1806 "sql_parser.y" /* yacc.c:1646 */
9019 { (yyval.l) = append_symbol( (yyvsp[-1].l), (yyvsp[0].sym) ); }
9020#line 9021 "sql_parser.tab.c" /* yacc.c:1646 */
9021 break;
9022
9023 case 255:
9024#line 1812 "sql_parser.y" /* yacc.c:1646 */
9025 { dlist *l = L();
9026 append_string(l, (yyvsp[-5].sval) );
9027 append_list(l, (yyvsp[-1].l) );
9028 (yyval.sym) = _symbol_create_list( SQL_COLUMN_OPTIONS, l ); }
9029#line 9030 "sql_parser.tab.c" /* yacc.c:1646 */
9030 break;
9031
9032 case 256:
9033#line 1820 "sql_parser.y" /* yacc.c:1646 */
9034 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym) ); }
9035#line 9036 "sql_parser.tab.c" /* yacc.c:1646 */
9036 break;
9037
9038 case 257:
9039#line 1822 "sql_parser.y" /* yacc.c:1646 */
9040 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym) ); }
9041#line 9042 "sql_parser.tab.c" /* yacc.c:1646 */
9042 break;
9043
9044 case 261:
9045#line 1828 "sql_parser.y" /* yacc.c:1646 */
9046 { (yyval.sym) = _symbol_create_symbol(SQL_DEFAULT, (yyvsp[0].sym)); }
9047#line 9048 "sql_parser.tab.c" /* yacc.c:1646 */
9048 break;
9049
9050 case 262:
9051#line 1832 "sql_parser.y" /* yacc.c:1646 */
9052 { (yyval.sym) = (yyvsp[0].sym); }
9053#line 9054 "sql_parser.tab.c" /* yacc.c:1646 */
9054 break;
9055
9056 case 263:
9057#line 1838 "sql_parser.y" /* yacc.c:1646 */
9058 { dlist *l = L();
9059 append_string(l, (yyvsp[-1].sval) );
9060 append_symbol(l, (yyvsp[0].sym) );
9061 (yyval.sym) = _symbol_create_list( SQL_CONSTRAINT, l ); }
9062#line 9063 "sql_parser.tab.c" /* yacc.c:1646 */
9063 break;
9064
9065 case 264:
9066#line 1846 "sql_parser.y" /* yacc.c:1646 */
9067 {
9068 /* handle multi-statements by wrapping them in a list */
9069 sql_subtype it;
9070 dlist* stmts;
9071 /* note: sql_next_seq_name uses sa_alloc */
9072 str sn = sql_next_seq_name(m);
9073 /* sequence generation code */
9074 dlist *l = L();
9075 /* the name of the sequence */
9076 append_list(l, append_string(L(), sn));
9077 if (!(yyvsp[0].l))
9078 (yyvsp[0].l) = L();
9079 sql_find_subtype(&it, "int", 32, 0);
9080 append_symbol((yyvsp[0].l), _symbol_create_list(SQL_TYPE, append_type(L(),&it)));
9081
9082 /* finally all the options */
9083 append_list(l, (yyvsp[0].l));
9084 append_int(l, 1); /* to be dropped */
9085 (yyval.sym) = _symbol_create_symbol(SQL_DEFAULT, _symbol_create_list(SQL_NEXT, append_string(L(), sn)));
9086
9087 if (m->sym) {
9088 stmts = m->sym->data.lval;
9089 } else {
9090 stmts = L();
9091 m->sym = _symbol_create_list(SQL_MULSTMT, stmts);
9092 }
9093 append_symbol(stmts, _symbol_create_list(SQL_CREATE_SEQ, l));
9094 }
9095#line 9096 "sql_parser.tab.c" /* yacc.c:1646 */
9096 break;
9097
9098 case 265:
9099#line 1875 "sql_parser.y" /* yacc.c:1646 */
9100 {
9101 /* handle multi-statements by wrapping them in a list */
9102 sql_subtype it;
9103 dlist* stmts;
9104 /* note: sql_next_seq_name uses sa_alloc */
9105 str sn = sql_next_seq_name(m);
9106 /* sequence generation code */
9107 dlist *l = L();
9108 /* finally all the options */
9109 dlist *o = L();
9110
9111 /* the name of the sequence */
9112 dlist *seqn1 = L(), *seqn2 = L();
9113
9114 if (m->scanner.schema)
9115 append_string(seqn1, m->scanner.schema);
9116 append_list(l, append_string(seqn1, sn));
9117 sql_find_subtype(&it, "int", 32, 0);
9118 append_symbol(o, _symbol_create_list(SQL_TYPE, append_type(L(),&it)));
9119 append_list(l, o);
9120 append_int(l, 1); /* to be dropped */
9121 if (m->scanner.schema)
9122 append_string(seqn2, m->scanner.schema);
9123 append_string(seqn2, sn);
9124 (yyval.sym) = _symbol_create_symbol(SQL_DEFAULT, _symbol_create_list(SQL_NEXT, seqn2));
9125
9126 if (m->sym) {
9127 stmts = m->sym->data.lval;
9128 } else {
9129 stmts = L();
9130 m->sym = _symbol_create_list(SQL_MULSTMT, stmts);
9131 }
9132 append_symbol(stmts, _symbol_create_list(SQL_CREATE_SEQ, l));
9133 }
9134#line 9135 "sql_parser.tab.c" /* yacc.c:1646 */
9135 break;
9136
9137 case 266:
9138#line 1912 "sql_parser.y" /* yacc.c:1646 */
9139 { (yyval.l) = NULL; }
9140#line 9141 "sql_parser.tab.c" /* yacc.c:1646 */
9141 break;
9142
9143 case 267:
9144#line 1913 "sql_parser.y" /* yacc.c:1646 */
9145 { (yyval.l) = (yyvsp[-1].l); }
9146#line 9147 "sql_parser.tab.c" /* yacc.c:1646 */
9147 break;
9148
9149 case 268:
9150#line 1920 "sql_parser.y" /* yacc.c:1646 */
9151 { dlist *l = L();
9152 append_string(l, (yyvsp[-1].sval) );
9153 append_symbol(l, (yyvsp[0].sym) );
9154 (yyval.sym) = _symbol_create_list( SQL_CONSTRAINT, l ); }
9155#line 9156 "sql_parser.tab.c" /* yacc.c:1646 */
9156 break;
9157
9158 case 269:
9159#line 1929 "sql_parser.y" /* yacc.c:1646 */
9160 { (yyval.sval) = NULL; }
9161#line 9162 "sql_parser.tab.c" /* yacc.c:1646 */
9162 break;
9163
9164 case 270:
9165#line 1930 "sql_parser.y" /* yacc.c:1646 */
9166 { (yyval.sval) = (yyvsp[0].sval); }
9167#line 9168 "sql_parser.tab.c" /* yacc.c:1646 */
9168 break;
9169
9170 case 271:
9171#line 1934 "sql_parser.y" /* yacc.c:1646 */
9172 { (yyval.i_val) = 0; }
9173#line 9174 "sql_parser.tab.c" /* yacc.c:1646 */
9174 break;
9175
9176 case 272:
9177#line 1935 "sql_parser.y" /* yacc.c:1646 */
9178 { (yyval.i_val) = 1; }
9179#line 9180 "sql_parser.tab.c" /* yacc.c:1646 */
9180 break;
9181
9182 case 273:
9183#line 1936 "sql_parser.y" /* yacc.c:1646 */
9184 { (yyval.i_val) = 2; }
9185#line 9186 "sql_parser.tab.c" /* yacc.c:1646 */
9186 break;
9187
9188 case 274:
9189#line 1937 "sql_parser.y" /* yacc.c:1646 */
9190 { (yyval.i_val) = 3; }
9191#line 9192 "sql_parser.tab.c" /* yacc.c:1646 */
9192 break;
9193
9194 case 275:
9195#line 1938 "sql_parser.y" /* yacc.c:1646 */
9196 { (yyval.i_val) = 4; }
9197#line 9198 "sql_parser.tab.c" /* yacc.c:1646 */
9198 break;
9199
9200 case 276:
9201#line 1942 "sql_parser.y" /* yacc.c:1646 */
9202 { (yyval.i_val) = ((yyvsp[0].i_val) << 8); }
9203#line 9204 "sql_parser.tab.c" /* yacc.c:1646 */
9204 break;
9205
9206 case 277:
9207#line 1946 "sql_parser.y" /* yacc.c:1646 */
9208 { (yyval.i_val) = (yyvsp[0].i_val); }
9209#line 9210 "sql_parser.tab.c" /* yacc.c:1646 */
9210 break;
9211
9212 case 278:
9213#line 1950 "sql_parser.y" /* yacc.c:1646 */
9214 { (yyval.i_val) = (2 << 8) + 2; /* defaults are RESTRICT */ }
9215#line 9216 "sql_parser.tab.c" /* yacc.c:1646 */
9216 break;
9217
9218 case 279:
9219#line 1951 "sql_parser.y" /* yacc.c:1646 */
9220 { (yyval.i_val) = (yyvsp[0].i_val); }
9221#line 9222 "sql_parser.tab.c" /* yacc.c:1646 */
9222 break;
9223
9224 case 280:
9225#line 1952 "sql_parser.y" /* yacc.c:1646 */
9226 { (yyval.i_val) = (yyvsp[0].i_val); }
9227#line 9228 "sql_parser.tab.c" /* yacc.c:1646 */
9228 break;
9229
9230 case 281:
9231#line 1953 "sql_parser.y" /* yacc.c:1646 */
9232 { (yyval.i_val) = (yyvsp[-1].i_val) + (yyvsp[0].i_val); }
9233#line 9234 "sql_parser.tab.c" /* yacc.c:1646 */
9234 break;
9235
9236 case 282:
9237#line 1954 "sql_parser.y" /* yacc.c:1646 */
9238 { (yyval.i_val) = (yyvsp[-1].i_val) + (yyvsp[0].i_val); }
9239#line 9240 "sql_parser.tab.c" /* yacc.c:1646 */
9240 break;
9241
9242 case 283:
9243#line 1958 "sql_parser.y" /* yacc.c:1646 */
9244 { (yyval.i_val) = 0; }
9245#line 9246 "sql_parser.tab.c" /* yacc.c:1646 */
9246 break;
9247
9248 case 284:
9249#line 1959 "sql_parser.y" /* yacc.c:1646 */
9250 { (yyval.i_val) = 1; }
9251#line 9252 "sql_parser.tab.c" /* yacc.c:1646 */
9252 break;
9253
9254 case 285:
9255#line 1960 "sql_parser.y" /* yacc.c:1646 */
9256 { (yyval.i_val) = 2; }
9257#line 9258 "sql_parser.tab.c" /* yacc.c:1646 */
9258 break;
9259
9260 case 286:
9261#line 1961 "sql_parser.y" /* yacc.c:1646 */
9262 { (yyval.i_val) = 0; }
9263#line 9264 "sql_parser.tab.c" /* yacc.c:1646 */
9264 break;
9265
9266 case 287:
9267#line 1965 "sql_parser.y" /* yacc.c:1646 */
9268 { (yyval.i_val) = 0; }
9269#line 9270 "sql_parser.tab.c" /* yacc.c:1646 */
9270 break;
9271
9272 case 288:
9273#line 1966 "sql_parser.y" /* yacc.c:1646 */
9274 { (yyval.i_val) = (yyvsp[0].i_val); }
9275#line 9276 "sql_parser.tab.c" /* yacc.c:1646 */
9276 break;
9277
9278 case 289:
9279#line 1970 "sql_parser.y" /* yacc.c:1646 */
9280 { (yyval.sym) = _symbol_create( SQL_NOT_NULL, NULL); }
9281#line 9282 "sql_parser.tab.c" /* yacc.c:1646 */
9282 break;
9283
9284 case 290:
9285#line 1971 "sql_parser.y" /* yacc.c:1646 */
9286 { (yyval.sym) = _symbol_create( SQL_NULL, NULL); }
9287#line 9288 "sql_parser.tab.c" /* yacc.c:1646 */
9288 break;
9289
9290 case 291:
9291#line 1972 "sql_parser.y" /* yacc.c:1646 */
9292 { (yyval.sym) = _symbol_create( SQL_UNIQUE, NULL ); }
9293#line 9294 "sql_parser.tab.c" /* yacc.c:1646 */
9294 break;
9295
9296 case 292:
9297#line 1973 "sql_parser.y" /* yacc.c:1646 */
9298 { (yyval.sym) = _symbol_create( SQL_PRIMARY_KEY, NULL ); }
9299#line 9300 "sql_parser.tab.c" /* yacc.c:1646 */
9300 break;
9301
9302 case 293:
9303#line 1976 "sql_parser.y" /* yacc.c:1646 */
9304 { dlist *l = L();
9305 append_list(l, (yyvsp[-3].l) );
9306 append_list(l, (yyvsp[-2].l) );
9307 append_int(l, (yyvsp[-1].i_val) );
9308 append_int(l, (yyvsp[0].i_val) );
9309 (yyval.sym) = _symbol_create_list( SQL_FOREIGN_KEY, l); }
9310#line 9311 "sql_parser.tab.c" /* yacc.c:1646 */
9311 break;
9312
9313 case 295:
9314#line 1989 "sql_parser.y" /* yacc.c:1646 */
9315 { (yyval.sym) = _symbol_create_list( SQL_UNIQUE, (yyvsp[0].l)); }
9316#line 9317 "sql_parser.tab.c" /* yacc.c:1646 */
9317 break;
9318
9319 case 296:
9320#line 1991 "sql_parser.y" /* yacc.c:1646 */
9321 { (yyval.sym) = _symbol_create_list( SQL_PRIMARY_KEY, (yyvsp[0].l)); }
9322#line 9323 "sql_parser.tab.c" /* yacc.c:1646 */
9323 break;
9324
9325 case 297:
9326#line 1995 "sql_parser.y" /* yacc.c:1646 */
9327 { dlist *l = L();
9328 append_list(l, (yyvsp[-3].l) );
9329 append_list(l, (yyvsp[-5].l) );
9330 append_list(l, (yyvsp[-2].l) );
9331 append_int(l, (yyvsp[-1].i_val) );
9332 append_int(l, (yyvsp[0].i_val) );
9333 (yyval.sym) = _symbol_create_list( SQL_FOREIGN_KEY, l); }
9334#line 9335 "sql_parser.tab.c" /* yacc.c:1646 */
9335 break;
9336
9337 case 298:
9338#line 2006 "sql_parser.y" /* yacc.c:1646 */
9339 { (yyval.sym) = _symbol_create_symbol(SQL_CHECK, (yyvsp[-1].sym)); }
9340#line 9341 "sql_parser.tab.c" /* yacc.c:1646 */
9341 break;
9342
9343 case 299:
9344#line 2011 "sql_parser.y" /* yacc.c:1646 */
9345 { (yyval.l) = append_string(L(), (yyvsp[0].sval)); }
9346#line 9347 "sql_parser.tab.c" /* yacc.c:1646 */
9347 break;
9348
9349 case 300:
9350#line 2013 "sql_parser.y" /* yacc.c:1646 */
9351 { (yyval.l) = append_string( (yyvsp[-2].l), (yyvsp[0].sval) ); }
9352#line 9353 "sql_parser.tab.c" /* yacc.c:1646 */
9353 break;
9354
9355 case 301:
9356#line 2017 "sql_parser.y" /* yacc.c:1646 */
9357 { (yyval.sym) = _symbol_create_list( SQL_LIKE, (yyvsp[0].l) ); }
9358#line 9359 "sql_parser.tab.c" /* yacc.c:1646 */
9359 break;
9360
9361 case 302:
9362#line 2022 "sql_parser.y" /* yacc.c:1646 */
9363 { dlist *l = L();
9364 append_list(l, (yyvsp[-4].l));
9365 append_list(l, (yyvsp[-3].l));
9366 append_symbol(l, (yyvsp[-1].sym));
9367 append_int(l, (yyvsp[0].bval));
9368 append_int(l, TRUE); /* persistent view */
9369 append_int(l, (yyvsp[-6].bval));
9370 (yyval.sym) = _symbol_create_list( SQL_CREATE_VIEW, l );
9371 }
9372#line 9373 "sql_parser.tab.c" /* yacc.c:1646 */
9373 break;
9374
9375 case 304:
9376#line 2035 "sql_parser.y" /* yacc.c:1646 */
9377 { (yyval.sym) = (yyvsp[-1].sym); }
9378#line 9379 "sql_parser.tab.c" /* yacc.c:1646 */
9379 break;
9380
9381 case 307:
9382#line 2044 "sql_parser.y" /* yacc.c:1646 */
9383 { (yyval.bval) = FALSE; }
9384#line 9385 "sql_parser.tab.c" /* yacc.c:1646 */
9385 break;
9386
9387 case 308:
9388#line 2045 "sql_parser.y" /* yacc.c:1646 */
9389 { (yyval.bval) = TRUE; }
9390#line 9391 "sql_parser.tab.c" /* yacc.c:1646 */
9391 break;
9392
9393 case 309:
9394#line 2049 "sql_parser.y" /* yacc.c:1646 */
9395 { (yyval.l) = NULL; }
9396#line 9397 "sql_parser.tab.c" /* yacc.c:1646 */
9397 break;
9398
9399 case 311:
9400#line 2054 "sql_parser.y" /* yacc.c:1646 */
9401 { (yyval.l) = (yyvsp[-1].l); }
9402#line 9403 "sql_parser.tab.c" /* yacc.c:1646 */
9403 break;
9404
9405 case 312:
9406#line 2059 "sql_parser.y" /* yacc.c:1646 */
9407 { dlist *l = L();
9408 append_list(l, (yyvsp[-3].l));
9409 append_string(l, (yyvsp[0].sval));
9410 (yyval.sym) = _symbol_create_list( SQL_CREATE_TYPE, l ); }
9411#line 9412 "sql_parser.tab.c" /* yacc.c:1646 */
9412 break;
9413
9414 case 313:
9415#line 2066 "sql_parser.y" /* yacc.c:1646 */
9416 { (yyval.l) = append_string(append_string(L(), (yyvsp[-2].sval)), (yyvsp[0].sval)); }
9417#line 9418 "sql_parser.tab.c" /* yacc.c:1646 */
9418 break;
9419
9420 case 316:
9421#line 2079 "sql_parser.y" /* yacc.c:1646 */
9422 { dlist *f = L();
9423 append_list(f, (yyvsp[-8].l));
9424 append_list(f, (yyvsp[-6].l));
9425 append_symbol(f, (yyvsp[-3].sym));
9426 append_list(f, (yyvsp[0].l));
9427 append_list(f, NULL);
9428 append_int(f, F_FUNC);
9429 append_int(f, FUNC_LANG_MAL);
9430 append_int(f, (yyvsp[-10].bval));
9431 (yyval.sym) = _symbol_create_list( SQL_CREATE_FUNC, f ); }
9432#line 9433 "sql_parser.tab.c" /* yacc.c:1646 */
9433 break;
9434
9435 case 317:
9436#line 2093 "sql_parser.y" /* yacc.c:1646 */
9437 { dlist *f = L();
9438 append_list(f, (yyvsp[-6].l));
9439 append_list(f, (yyvsp[-4].l));
9440 append_symbol(f, (yyvsp[-1].sym));
9441 append_list(f, NULL);
9442 append_list(f, (yyvsp[0].l));
9443 append_int(f, F_FUNC);
9444 append_int(f, FUNC_LANG_SQL);
9445 append_int(f, (yyvsp[-8].bval));
9446 (yyval.sym) = _symbol_create_list( SQL_CREATE_FUNC, f ); }
9447#line 9448 "sql_parser.tab.c" /* yacc.c:1646 */
9448 break;
9449
9450 case 318:
9451#line 2107 "sql_parser.y" /* yacc.c:1646 */
9452 {
9453 int lang = 0;
9454 dlist *f = L();
9455 char l = *(yyvsp[-1].sval);
9456
9457 if (l == 'R' || l == 'r')
9458 lang = FUNC_LANG_R;
9459 else if (l == 'P' || l == 'p') {
9460 // code does not get cleaner than this people
9461 if (strcasecmp((yyvsp[-1].sval), "PYTHON_MAP") == 0) {
9462 lang = FUNC_LANG_MAP_PY;
9463 } else if (strcasecmp((yyvsp[-1].sval), "PYTHON3_MAP") == 0) {
9464 lang = FUNC_LANG_MAP_PY3;
9465 } else if (strcasecmp((yyvsp[-1].sval), "PYTHON3") == 0) {
9466 lang = FUNC_LANG_PY3;
9467 } else if (strcasecmp((yyvsp[-1].sval), "PYTHON2_MAP") == 0) {
9468 lang = FUNC_LANG_MAP_PY2;
9469 } else if (strcasecmp((yyvsp[-1].sval), "PYTHON2") == 0) {
9470 lang = FUNC_LANG_PY2;
9471 } else {
9472 lang = FUNC_LANG_PY;
9473 }
9474 } else if (l == 'C' || l == 'c') {
9475 if (strcasecmp((yyvsp[-1].sval), "CPP") == 0) {
9476 lang = FUNC_LANG_CPP;
9477 } else {
9478 lang = FUNC_LANG_C;
9479 }
9480 }
9481 else if (l == 'J' || l == 'j')
9482 lang = FUNC_LANG_J;
9483 else {
9484 char *msg = sql_message("Language name R, C, PYTHON[3], PYTHON[3]_MAP or J(avascript):expected, received '%c'", l);
9485 yyerror(m, msg);
9486 _DELETE(msg);
9487 }
9488
9489 append_list(f, (yyvsp[-8].l));
9490 append_list(f, (yyvsp[-6].l));
9491 append_symbol(f, (yyvsp[-3].sym));
9492 append_list(f, NULL);
9493 append_list(f, append_string(L(), (yyvsp[0].sval)));
9494 append_int(f, F_FUNC);
9495 append_int(f, lang);
9496 append_int(f, (yyvsp[-10].bval));
9497 (yyval.sym) = _symbol_create_list( SQL_CREATE_FUNC, f );
9498 }
9499#line 9500 "sql_parser.tab.c" /* yacc.c:1646 */
9500 break;
9501
9502 case 319:
9503#line 2157 "sql_parser.y" /* yacc.c:1646 */
9504 { dlist *f = L();
9505 append_list(f, (yyvsp[-6].l));
9506 append_list(f, (yyvsp[-4].l));
9507 /* no returns - use OID */
9508 append_symbol(f, NULL);
9509 append_list(f, (yyvsp[0].l));
9510 append_list(f, NULL);
9511 append_int(f, F_FILT);
9512 append_int(f, FUNC_LANG_MAL);
9513 append_int(f, (yyvsp[-9].bval));
9514 (yyval.sym) = _symbol_create_list( SQL_CREATE_FUNC, f ); }
9515#line 9516 "sql_parser.tab.c" /* yacc.c:1646 */
9516 break;
9517
9518 case 320:
9519#line 2172 "sql_parser.y" /* yacc.c:1646 */
9520 { dlist *f = L();
9521 append_list(f, (yyvsp[-8].l));
9522 append_list(f, (yyvsp[-6].l));
9523 append_symbol(f, (yyvsp[-3].sym));
9524 append_list(f, (yyvsp[0].l));
9525 append_list(f, NULL);
9526 append_int(f, F_AGGR);
9527 append_int(f, FUNC_LANG_MAL);
9528 append_int(f, (yyvsp[-10].bval));
9529 (yyval.sym) = _symbol_create_list( SQL_CREATE_FUNC, f ); }
9530#line 9531 "sql_parser.tab.c" /* yacc.c:1646 */
9531 break;
9532
9533 case 321:
9534#line 2186 "sql_parser.y" /* yacc.c:1646 */
9535 {
9536 int lang = 0;
9537 dlist *f = L();
9538 char l = *(yyvsp[-1].sval);
9539
9540 if (l == 'R' || l == 'r')
9541 lang = FUNC_LANG_R;
9542 else if (l == 'P' || l == 'p') {
9543 if (strcasecmp((yyvsp[-1].sval), "PYTHON_MAP") == 0) {
9544 lang = FUNC_LANG_MAP_PY;
9545 } else if (strcasecmp((yyvsp[-1].sval), "PYTHON3_MAP") == 0) {
9546 lang = FUNC_LANG_MAP_PY3;
9547 } else if (strcasecmp((yyvsp[-1].sval), "PYTHON3") == 0) {
9548 lang = FUNC_LANG_PY3;
9549 } else if (strcasecmp((yyvsp[-1].sval), "PYTHON2_MAP") == 0) {
9550 lang = FUNC_LANG_MAP_PY2;
9551 } else if (strcasecmp((yyvsp[-1].sval), "PYTHON2") == 0) {
9552 lang = FUNC_LANG_PY2;
9553 } else {
9554 lang = FUNC_LANG_PY;
9555 }
9556 } else if (l == 'C' || l == 'c') {
9557 if (strcasecmp((yyvsp[-1].sval), "CPP") == 0) {
9558 lang = FUNC_LANG_CPP;
9559 } else {
9560 lang = FUNC_LANG_C;
9561 }
9562 }
9563 else if (l == 'J' || l == 'j')
9564 lang = FUNC_LANG_J;
9565 else {
9566 char *msg = sql_message("Language name R, C, PYTHON[3], PYTHON[3]_MAP or J(avascript):expected, received '%c'", l);
9567 yyerror(m, msg);
9568 _DELETE(msg);
9569 }
9570
9571 append_list(f, (yyvsp[-8].l));
9572 append_list(f, (yyvsp[-6].l));
9573 append_symbol(f, (yyvsp[-3].sym));
9574 append_list(f, NULL);
9575 append_list(f, append_string(L(), (yyvsp[0].sval)));
9576 append_int(f, F_AGGR);
9577 append_int(f, lang);
9578 append_int(f, (yyvsp[-10].bval));
9579 (yyval.sym) = _symbol_create_list( SQL_CREATE_FUNC, f ); }
9580#line 9581 "sql_parser.tab.c" /* yacc.c:1646 */
9581 break;
9582
9583 case 322:
9584#line 2235 "sql_parser.y" /* yacc.c:1646 */
9585 { dlist *f = L();
9586 append_list(f, (yyvsp[-6].l));
9587 append_list(f, (yyvsp[-4].l));
9588 append_symbol(f, NULL); /* no result */
9589 append_list(f, (yyvsp[0].l));
9590 append_list(f, NULL);
9591 append_int(f, F_PROC);
9592 append_int(f, FUNC_LANG_MAL);
9593 append_int(f, (yyvsp[-8].bval));
9594 (yyval.sym) = _symbol_create_list( SQL_CREATE_FUNC, f ); }
9595#line 9596 "sql_parser.tab.c" /* yacc.c:1646 */
9596 break;
9597
9598 case 323:
9599#line 2248 "sql_parser.y" /* yacc.c:1646 */
9600 { dlist *f = L();
9601 append_list(f, (yyvsp[-4].l));
9602 append_list(f, (yyvsp[-2].l));
9603 append_symbol(f, NULL); /* no result */
9604 append_list(f, NULL);
9605 append_list(f, (yyvsp[0].l));
9606 append_int(f, F_PROC);
9607 append_int(f, FUNC_LANG_SQL);
9608 append_int(f, (yyvsp[-6].bval));
9609 (yyval.sym) = _symbol_create_list( SQL_CREATE_FUNC, f ); }
9610#line 9611 "sql_parser.tab.c" /* yacc.c:1646 */
9611 break;
9612
9613 case 324:
9614#line 2260 "sql_parser.y" /* yacc.c:1646 */
9615 {
9616 int lang = 0;
9617 dlist *f = L();
9618 char l = *(yyvsp[-1].sval);
9619 /* other languages here if we ever get to it */
9620 if (l == 'P' || l == 'p') {
9621 lang = FUNC_LANG_PY;
9622 } else
9623 yyerror(m, sql_message("Language name P(ython) expected, received '%c'", l));
9624
9625 append_list(f, (yyvsp[-6].l));
9626 append_list(f, (yyvsp[-4].l));
9627 append_symbol(f, NULL);
9628 append_list(f, NULL);
9629 append_list(f, append_string(L(), (yyvsp[0].sval)));
9630 append_int(f, F_LOADER);
9631 append_int(f, lang);
9632 append_int(f, (yyvsp[-8].bval));
9633 (yyval.sym) = _symbol_create_list( SQL_CREATE_FUNC, f ); }
9634#line 9635 "sql_parser.tab.c" /* yacc.c:1646 */
9635 break;
9636
9637 case 325:
9638#line 2283 "sql_parser.y" /* yacc.c:1646 */
9639 { (yyval.l) = L(); append_symbol( (yyval.l), (yyvsp[0].sym)); }
9640#line 9641 "sql_parser.tab.c" /* yacc.c:1646 */
9641 break;
9642
9643 case 326:
9644#line 2287 "sql_parser.y" /* yacc.c:1646 */
9645 { (yyval.l) = append_symbol((yyvsp[-3].l),(yyvsp[-2].sym)); }
9646#line 9647 "sql_parser.tab.c" /* yacc.c:1646 */
9647 break;
9648
9649 case 327:
9650#line 2291 "sql_parser.y" /* yacc.c:1646 */
9651 { (yyval.l) = append_symbol((yyvsp[-3].l),(yyvsp[-2].sym)); }
9652#line 9653 "sql_parser.tab.c" /* yacc.c:1646 */
9653 break;
9654
9655 case 328:
9656#line 2306 "sql_parser.y" /* yacc.c:1646 */
9657 { (yyval.l) = L(); }
9658#line 9659 "sql_parser.tab.c" /* yacc.c:1646 */
9659 break;
9660
9661 case 329:
9662#line 2308 "sql_parser.y" /* yacc.c:1646 */
9663 { (yyval.l) = append_symbol((yyvsp[-2].l),(yyvsp[-1].sym));}
9664#line 9665 "sql_parser.tab.c" /* yacc.c:1646 */
9665 break;
9666
9667 case 330:
9668#line 2312 "sql_parser.y" /* yacc.c:1646 */
9669 { (yyval.l) = L(); }
9670#line 9671 "sql_parser.tab.c" /* yacc.c:1646 */
9671 break;
9672
9673 case 331:
9674#line 2314 "sql_parser.y" /* yacc.c:1646 */
9675 { (yyval.l) = append_symbol((yyvsp[-2].l),(yyvsp[-1].sym));}
9676#line 9677 "sql_parser.tab.c" /* yacc.c:1646 */
9677 break;
9678
9679 case 358:
9680#line 2362 "sql_parser.y" /* yacc.c:1646 */
9681 { (yyval.sym) = (yyvsp[0].sym); }
9682#line 9683 "sql_parser.tab.c" /* yacc.c:1646 */
9683 break;
9684
9685 case 359:
9686#line 2366 "sql_parser.y" /* yacc.c:1646 */
9687 {(yyval.sym) = _symbol_create_symbol(SQL_CALL, (yyvsp[0].sym));}
9688#line 9689 "sql_parser.tab.c" /* yacc.c:1646 */
9689 break;
9690
9691 case 360:
9692#line 2371 "sql_parser.y" /* yacc.c:1646 */
9693 { dlist *l = L();
9694 append_list( l, (yyvsp[-3].l));
9695 append_list( l, (yyvsp[-1].l));
9696 assert(0);
9697 (yyval.sym) = _symbol_create_list( SQL_FUNC, l);
9698 }
9699#line 9700 "sql_parser.tab.c" /* yacc.c:1646 */
9700 break;
9701
9702 case 362:
9703#line 2382 "sql_parser.y" /* yacc.c:1646 */
9704 {(yyval.l) = L();}
9705#line 9706 "sql_parser.tab.c" /* yacc.c:1646 */
9706 break;
9707
9708 case 363:
9709#line 2383 "sql_parser.y" /* yacc.c:1646 */
9710 { (yyval.l) = append_symbol( L(), (yyvsp[0].sym)); }
9711#line 9712 "sql_parser.tab.c" /* yacc.c:1646 */
9712 break;
9713
9714 case 364:
9715#line 2385 "sql_parser.y" /* yacc.c:1646 */
9716 { (yyval.l) = append_symbol( (yyvsp[-2].l), (yyvsp[0].sym)); }
9717#line 9718 "sql_parser.tab.c" /* yacc.c:1646 */
9718 break;
9719
9720 case 365:
9721#line 2390 "sql_parser.y" /* yacc.c:1646 */
9722 { (yyval.sym) = _symbol_create_symbol(SQL_RETURN, (yyvsp[0].sym)); }
9723#line 9724 "sql_parser.tab.c" /* yacc.c:1646 */
9724 break;
9725
9726 case 368:
9727#line 2397 "sql_parser.y" /* yacc.c:1646 */
9728 { (yyval.sym) = _symbol_create_symbol(SQL_TABLE, (yyvsp[-1].sym)); }
9729#line 9730 "sql_parser.tab.c" /* yacc.c:1646 */
9730 break;
9731
9732 case 369:
9733#line 2402 "sql_parser.y" /* yacc.c:1646 */
9734 { (yyval.sym) = _symbol_create_list(SQL_CASE,
9735 append_list(
9736 append_list(
9737 append_symbol(
9738 L(),(yyvsp[-4].sym)),(yyvsp[-3].l)),(yyvsp[-2].l))); }
9739#line 9740 "sql_parser.tab.c" /* yacc.c:1646 */
9740 break;
9741
9742 case 370:
9743#line 2408 "sql_parser.y" /* yacc.c:1646 */
9744 { (yyval.sym) = _symbol_create_list(SQL_CASE,
9745 append_list(
9746 append_list(
9747 L(),(yyvsp[-3].l)),(yyvsp[-2].l))); }
9748#line 9749 "sql_parser.tab.c" /* yacc.c:1646 */
9749 break;
9750
9751 case 371:
9752#line 2416 "sql_parser.y" /* yacc.c:1646 */
9753 { (yyval.sym) = _symbol_create_list( SQL_WHEN,
9754 append_list(
9755 append_symbol(
9756 L(), (yyvsp[-2].sym)),(yyvsp[0].l))); }
9757#line 9758 "sql_parser.tab.c" /* yacc.c:1646 */
9758 break;
9759
9760 case 372:
9761#line 2424 "sql_parser.y" /* yacc.c:1646 */
9762 { (yyval.l) = append_symbol( L(), (yyvsp[0].sym));}
9763#line 9764 "sql_parser.tab.c" /* yacc.c:1646 */
9764 break;
9765
9766 case 373:
9767#line 2426 "sql_parser.y" /* yacc.c:1646 */
9768 { (yyval.l) = append_symbol( (yyvsp[-1].l), (yyvsp[0].sym)); }
9769#line 9770 "sql_parser.tab.c" /* yacc.c:1646 */
9770 break;
9771
9772 case 374:
9773#line 2431 "sql_parser.y" /* yacc.c:1646 */
9774 { (yyval.sym) = _symbol_create_list( SQL_WHEN,
9775 append_list(
9776 append_symbol(
9777 L(), (yyvsp[-2].sym)),(yyvsp[0].l))); }
9778#line 9779 "sql_parser.tab.c" /* yacc.c:1646 */
9779 break;
9780
9781 case 375:
9782#line 2439 "sql_parser.y" /* yacc.c:1646 */
9783 { (yyval.l) = append_symbol( L(), (yyvsp[0].sym)); }
9784#line 9785 "sql_parser.tab.c" /* yacc.c:1646 */
9785 break;
9786
9787 case 376:
9788#line 2441 "sql_parser.y" /* yacc.c:1646 */
9789 { (yyval.l) = append_symbol( (yyvsp[-1].l), (yyvsp[0].sym)); }
9790#line 9791 "sql_parser.tab.c" /* yacc.c:1646 */
9791 break;
9792
9793 case 377:
9794#line 2445 "sql_parser.y" /* yacc.c:1646 */
9795 { (yyval.l) = NULL; }
9796#line 9797 "sql_parser.tab.c" /* yacc.c:1646 */
9797 break;
9798
9799 case 378:
9800#line 2446 "sql_parser.y" /* yacc.c:1646 */
9801 { (yyval.l) = (yyvsp[0].l); }
9802#line 9803 "sql_parser.tab.c" /* yacc.c:1646 */
9803 break;
9804
9805 case 379:
9806#line 2456 "sql_parser.y" /* yacc.c:1646 */
9807 { dlist *l = L();
9808 append_symbol(l, (yyvsp[-5].sym));
9809 append_list(l, (yyvsp[-3].l));
9810 append_symbol(l, (yyvsp[-2].sym));
9811 (yyval.sym) = _symbol_create_list(SQL_IF, l);
9812 }
9813#line 9814 "sql_parser.tab.c" /* yacc.c:1646 */
9814 break;
9815
9816 case 380:
9817#line 2467 "sql_parser.y" /* yacc.c:1646 */
9818 { (yyval.sym) = NULL; }
9819#line 9820 "sql_parser.tab.c" /* yacc.c:1646 */
9820 break;
9821
9822 case 381:
9823#line 2469 "sql_parser.y" /* yacc.c:1646 */
9824 { (yyval.sym) = _symbol_create_list(SQL_ELSE, (yyvsp[0].l)); }
9825#line 9826 "sql_parser.tab.c" /* yacc.c:1646 */
9826 break;
9827
9828 case 382:
9829#line 2472 "sql_parser.y" /* yacc.c:1646 */
9830 { dlist *l = L();
9831 append_symbol(l, (yyvsp[-3].sym));
9832 append_list(l, (yyvsp[-1].l));
9833 append_symbol(l, (yyvsp[0].sym));
9834 { (yyval.sym) = _symbol_create_list(SQL_IF, l); }
9835 }
9836#line 9837 "sql_parser.tab.c" /* yacc.c:1646 */
9837 break;
9838
9839 case 383:
9840#line 2486 "sql_parser.y" /* yacc.c:1646 */
9841 { dlist *l;
9842 char *label = (yyvsp[-7].sval)?(yyvsp[-7].sval):(yyvsp[0].sval);
9843 if ((yyvsp[-7].sval) && (yyvsp[0].sval) && strcmp((yyvsp[-7].sval), (yyvsp[0].sval)) != 0) {
9844 (yyval.sym) = NULL;
9845 yyerror(m, "WHILE: labels should match");
9846 YYABORT;
9847 }
9848 l = L();
9849 append_symbol(l, (yyvsp[-5].sym)); /* condition */
9850 append_list(l, (yyvsp[-3].l)); /* statements */
9851 append_string(l, label);
9852 (yyval.sym) = _symbol_create_list(SQL_WHILE, l);
9853 }
9854#line 9855 "sql_parser.tab.c" /* yacc.c:1646 */
9855 break;
9856
9857 case 384:
9858#line 2502 "sql_parser.y" /* yacc.c:1646 */
9859 { (yyval.sval) = NULL; }
9860#line 9861 "sql_parser.tab.c" /* yacc.c:1646 */
9861 break;
9862
9863 case 386:
9864#line 2507 "sql_parser.y" /* yacc.c:1646 */
9865 { (yyval.sval) = NULL; }
9866#line 9867 "sql_parser.tab.c" /* yacc.c:1646 */
9867 break;
9868
9869 case 388:
9870#line 2513 "sql_parser.y" /* yacc.c:1646 */
9871 { (yyval.l) = L();
9872 append_string((yyval.l), (yyvsp[-1].sval));
9873 append_type((yyval.l), &(yyvsp[0].type));
9874 }
9875#line 9876 "sql_parser.tab.c" /* yacc.c:1646 */
9876 break;
9877
9878 case 389:
9879#line 2518 "sql_parser.y" /* yacc.c:1646 */
9880 {
9881 append_string((yyval.l), (yyvsp[-1].sval));
9882 append_type((yyval.l), &(yyvsp[0].type));
9883 }
9884#line 9885 "sql_parser.tab.c" /* yacc.c:1646 */
9885 break;
9886
9887 case 390:
9888#line 2526 "sql_parser.y" /* yacc.c:1646 */
9889 { (yyval.sym) = _symbol_create_list(SQL_TABLE, (yyvsp[-1].l)); }
9890#line 9891 "sql_parser.tab.c" /* yacc.c:1646 */
9891 break;
9892
9893 case 391:
9894#line 2528 "sql_parser.y" /* yacc.c:1646 */
9895 { (yyval.sym) = _symbol_create_list(SQL_TYPE, append_type(L(),&(yyvsp[0].type))); }
9896#line 9897 "sql_parser.tab.c" /* yacc.c:1646 */
9897 break;
9898
9899 case 393:
9900#line 2533 "sql_parser.y" /* yacc.c:1646 */
9901 { dlist *vararg = L();
9902 append_string(vararg, "*");
9903 append_type(vararg, NULL);
9904 (yyval.l) = append_list(L(), vararg); }
9905#line 9906 "sql_parser.tab.c" /* yacc.c:1646 */
9906 break;
9907
9908 case 394:
9909#line 2537 "sql_parser.y" /* yacc.c:1646 */
9910 { (yyval.l) = NULL; }
9911#line 9912 "sql_parser.tab.c" /* yacc.c:1646 */
9912 break;
9913
9914 case 395:
9915#line 2542 "sql_parser.y" /* yacc.c:1646 */
9916 { dlist *p = L();
9917 append_string(p, (yyvsp[-1].sval));
9918 append_type(p, &(yyvsp[0].type));
9919 (yyval.l) = append_list((yyvsp[-3].l), p); }
9920#line 9921 "sql_parser.tab.c" /* yacc.c:1646 */
9921 break;
9922
9923 case 396:
9924#line 2547 "sql_parser.y" /* yacc.c:1646 */
9925 { dlist *l = L();
9926 dlist *p = L();
9927 append_string(p, (yyvsp[-1].sval));
9928 append_type(p, &(yyvsp[0].type));
9929 (yyval.l) = append_list(l, p); }
9930#line 9931 "sql_parser.tab.c" /* yacc.c:1646 */
9931 break;
9932
9933 case 397:
9934#line 2597 "sql_parser.y" /* yacc.c:1646 */
9935 { dlist *l = L();
9936 append_list(l, (yyvsp[-6].l));
9937 append_int(l, (yyvsp[-5].i_val));
9938 append_symbol(l, (yyvsp[-4].sym));
9939 append_list(l, (yyvsp[-2].l));
9940 append_list(l, (yyvsp[-1].l));
9941 append_list(l, (yyvsp[0].l));
9942 append_int(l, (yyvsp[-8].bval));
9943 (yyval.sym) = _symbol_create_list(SQL_CREATE_TRIGGER, l);
9944 }
9945#line 9946 "sql_parser.tab.c" /* yacc.c:1646 */
9946 break;
9947
9948 case 398:
9949#line 2610 "sql_parser.y" /* yacc.c:1646 */
9950 { (yyval.i_val) = 0; }
9951#line 9952 "sql_parser.tab.c" /* yacc.c:1646 */
9952 break;
9953
9954 case 399:
9955#line 2611 "sql_parser.y" /* yacc.c:1646 */
9956 { (yyval.i_val) = 1; }
9957#line 9958 "sql_parser.tab.c" /* yacc.c:1646 */
9958 break;
9959
9960 case 400:
9961#line 2616 "sql_parser.y" /* yacc.c:1646 */
9962 { (yyval.sym) = _symbol_create_list(SQL_INSERT, NULL); }
9963#line 9964 "sql_parser.tab.c" /* yacc.c:1646 */
9964 break;
9965
9966 case 401:
9967#line 2617 "sql_parser.y" /* yacc.c:1646 */
9968 { (yyval.sym) = _symbol_create_list(SQL_DELETE, NULL); }
9969#line 9970 "sql_parser.tab.c" /* yacc.c:1646 */
9970 break;
9971
9972 case 402:
9973#line 2618 "sql_parser.y" /* yacc.c:1646 */
9974 { (yyval.sym) = _symbol_create_list(SQL_TRUNCATE, NULL); }
9975#line 9976 "sql_parser.tab.c" /* yacc.c:1646 */
9976 break;
9977
9978 case 403:
9979#line 2619 "sql_parser.y" /* yacc.c:1646 */
9980 { (yyval.sym) = _symbol_create_list(SQL_UPDATE, NULL); }
9981#line 9982 "sql_parser.tab.c" /* yacc.c:1646 */
9982 break;
9983
9984 case 404:
9985#line 2620 "sql_parser.y" /* yacc.c:1646 */
9986 { (yyval.sym) = _symbol_create_list(SQL_UPDATE, (yyvsp[0].l)); }
9987#line 9988 "sql_parser.tab.c" /* yacc.c:1646 */
9988 break;
9989
9990 case 405:
9991#line 2624 "sql_parser.y" /* yacc.c:1646 */
9992 { (yyval.l) = NULL; }
9993#line 9994 "sql_parser.tab.c" /* yacc.c:1646 */
9994 break;
9995
9996 case 406:
9997#line 2625 "sql_parser.y" /* yacc.c:1646 */
9998 { (yyval.l) = (yyvsp[0].l); }
9999#line 10000 "sql_parser.tab.c" /* yacc.c:1646 */
10000 break;
10001
10002 case 407:
10003#line 2629 "sql_parser.y" /* yacc.c:1646 */
10004 { (yyval.l) = append_list(L(), (yyvsp[0].l)); }
10005#line 10006 "sql_parser.tab.c" /* yacc.c:1646 */
10006 break;
10007
10008 case 408:
10009#line 2631 "sql_parser.y" /* yacc.c:1646 */
10010 { (yyval.l) = append_list((yyvsp[-1].l), (yyvsp[0].l)); }
10011#line 10012 "sql_parser.tab.c" /* yacc.c:1646 */
10012 break;
10013
10014 case 409:
10015#line 2636 "sql_parser.y" /* yacc.c:1646 */
10016 { (yyval.l) = append_string(append_int(L(), 0), (yyvsp[0].sval)); }
10017#line 10018 "sql_parser.tab.c" /* yacc.c:1646 */
10018 break;
10019
10020 case 410:
10021#line 2637 "sql_parser.y" /* yacc.c:1646 */
10022 { (yyval.l) = append_string(append_int(L(), 1), (yyvsp[0].sval)); }
10023#line 10024 "sql_parser.tab.c" /* yacc.c:1646 */
10024 break;
10025
10026 case 411:
10027#line 2638 "sql_parser.y" /* yacc.c:1646 */
10028 { (yyval.l) = append_string(append_int(L(), 0), (yyvsp[0].sval)); }
10029#line 10030 "sql_parser.tab.c" /* yacc.c:1646 */
10030 break;
10031
10032 case 412:
10033#line 2639 "sql_parser.y" /* yacc.c:1646 */
10034 { (yyval.l) = append_string(append_int(L(), 1), (yyvsp[0].sval)); }
10035#line 10036 "sql_parser.tab.c" /* yacc.c:1646 */
10036 break;
10037
10038 case 417:
10039#line 2654 "sql_parser.y" /* yacc.c:1646 */
10040 { (yyval.l) = L();
10041 append_int((yyval.l), (yyvsp[-2].i_val));
10042 append_symbol((yyval.l), (yyvsp[-1].sym));
10043 append_list((yyval.l), (yyvsp[0].l));
10044 }
10045#line 10046 "sql_parser.tab.c" /* yacc.c:1646 */
10046 break;
10047
10048 case 418:
10049#line 2661 "sql_parser.y" /* yacc.c:1646 */
10050 { (yyval.i_val) = 1; }
10051#line 10052 "sql_parser.tab.c" /* yacc.c:1646 */
10052 break;
10053
10054 case 419:
10055#line 2662 "sql_parser.y" /* yacc.c:1646 */
10056 { (yyval.i_val) = (yyvsp[0].i_val); }
10057#line 10058 "sql_parser.tab.c" /* yacc.c:1646 */
10058 break;
10059
10060 case 420:
10061#line 2666 "sql_parser.y" /* yacc.c:1646 */
10062 { (yyval.i_val) = 0; }
10063#line 10064 "sql_parser.tab.c" /* yacc.c:1646 */
10064 break;
10065
10066 case 421:
10067#line 2667 "sql_parser.y" /* yacc.c:1646 */
10068 { (yyval.i_val) = 1; }
10069#line 10070 "sql_parser.tab.c" /* yacc.c:1646 */
10070 break;
10071
10072 case 422:
10073#line 2671 "sql_parser.y" /* yacc.c:1646 */
10074 { (yyval.sym) = NULL; }
10075#line 10076 "sql_parser.tab.c" /* yacc.c:1646 */
10076 break;
10077
10078 case 423:
10079#line 2672 "sql_parser.y" /* yacc.c:1646 */
10080 { (yyval.sym) = (yyvsp[-1].sym); }
10081#line 10082 "sql_parser.tab.c" /* yacc.c:1646 */
10082 break;
10083
10084 case 424:
10085#line 2677 "sql_parser.y" /* yacc.c:1646 */
10086 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
10087#line 10088 "sql_parser.tab.c" /* yacc.c:1646 */
10088 break;
10089
10090 case 425:
10091#line 2680 "sql_parser.y" /* yacc.c:1646 */
10092 { (yyval.l) = (yyvsp[-1].l); }
10093#line 10094 "sql_parser.tab.c" /* yacc.c:1646 */
10094 break;
10095
10096 case 426:
10097#line 2685 "sql_parser.y" /* yacc.c:1646 */
10098 { dlist *l = L();
10099 append_list(l, (yyvsp[-1].l) );
10100 append_list(l, (yyvsp[0].l) );
10101 append_int(l, F_FUNC );
10102 (yyval.l) = l; }
10103#line 10104 "sql_parser.tab.c" /* yacc.c:1646 */
10104 break;
10105
10106 case 427:
10107#line 2691 "sql_parser.y" /* yacc.c:1646 */
10108 { dlist *l = L();
10109 append_list(l, (yyvsp[-1].l) );
10110 append_list(l, (yyvsp[0].l) );
10111 append_int(l, F_FILT );
10112 (yyval.l) = l; }
10113#line 10114 "sql_parser.tab.c" /* yacc.c:1646 */
10114 break;
10115
10116 case 428:
10117#line 2697 "sql_parser.y" /* yacc.c:1646 */
10118 { dlist *l = L();
10119 append_list(l, (yyvsp[-1].l) );
10120 append_list(l, (yyvsp[0].l) );
10121 append_int(l, F_AGGR );
10122 (yyval.l) = l; }
10123#line 10124 "sql_parser.tab.c" /* yacc.c:1646 */
10124 break;
10125
10126 case 429:
10127#line 2703 "sql_parser.y" /* yacc.c:1646 */
10128 { dlist *l = L();
10129 append_list(l, (yyvsp[-1].l) );
10130 append_list(l, (yyvsp[0].l) );
10131 append_int(l, F_PROC );
10132 (yyval.l) = l; }
10133#line 10134 "sql_parser.tab.c" /* yacc.c:1646 */
10134 break;
10135
10136 case 430:
10137#line 2709 "sql_parser.y" /* yacc.c:1646 */
10138 { dlist *l = L();
10139 append_list(l, (yyvsp[-1].l) );
10140 append_list(l, (yyvsp[0].l) );
10141 append_int(l, F_LOADER );
10142 (yyval.l) = l; }
10143#line 10144 "sql_parser.tab.c" /* yacc.c:1646 */
10144 break;
10145
10146 case 431:
10147#line 2718 "sql_parser.y" /* yacc.c:1646 */
10148 { dlist *l = L();
10149 append_list(l, (yyvsp[-1].l) );
10150 append_list(l, (yyvsp[0].l) );
10151 append_int(l, F_FUNC );
10152 append_int(l, (yyvsp[-2].bval) );
10153 (yyval.l) = l; }
10154#line 10155 "sql_parser.tab.c" /* yacc.c:1646 */
10155 break;
10156
10157 case 432:
10158#line 2725 "sql_parser.y" /* yacc.c:1646 */
10159 { dlist *l = L();
10160 append_list(l, (yyvsp[-1].l) );
10161 append_list(l, (yyvsp[0].l) );
10162 append_int(l, F_FILT );
10163 append_int(l, (yyvsp[-2].bval) );
10164 (yyval.l) = l; }
10165#line 10166 "sql_parser.tab.c" /* yacc.c:1646 */
10166 break;
10167
10168 case 433:
10169#line 2732 "sql_parser.y" /* yacc.c:1646 */
10170 { dlist *l = L();
10171 append_list(l, (yyvsp[-1].l) );
10172 append_list(l, (yyvsp[0].l) );
10173 append_int(l, F_AGGR );
10174 append_int(l, (yyvsp[-2].bval) );
10175 (yyval.l) = l; }
10176#line 10177 "sql_parser.tab.c" /* yacc.c:1646 */
10177 break;
10178
10179 case 434:
10180#line 2739 "sql_parser.y" /* yacc.c:1646 */
10181 { dlist *l = L();
10182 append_list(l, (yyvsp[-1].l) );
10183 append_list(l, (yyvsp[0].l) );
10184 append_int(l, F_PROC );
10185 append_int(l, (yyvsp[-2].bval) );
10186 (yyval.l) = l; }
10187#line 10188 "sql_parser.tab.c" /* yacc.c:1646 */
10188 break;
10189
10190 case 435:
10191#line 2746 "sql_parser.y" /* yacc.c:1646 */
10192 { dlist *l = L();
10193 append_list(l, (yyvsp[-1].l) );
10194 append_list(l, (yyvsp[0].l) );
10195 append_int(l, F_LOADER );
10196 append_int(l, (yyvsp[-2].bval) );
10197 (yyval.l) = l; }
10198#line 10199 "sql_parser.tab.c" /* yacc.c:1646 */
10199 break;
10200
10201 case 436:
10202#line 2756 "sql_parser.y" /* yacc.c:1646 */
10203 { dlist *l = L();
10204 append_list(l, (yyvsp[-1].l) );
10205 append_int(l, (yyvsp[0].i_val) );
10206 append_int(l, (yyvsp[-2].bval) );
10207 (yyval.sym) = _symbol_create_list( SQL_DROP_TABLE, l ); }
10208#line 10209 "sql_parser.tab.c" /* yacc.c:1646 */
10209 break;
10210
10211 case 437:
10212#line 2762 "sql_parser.y" /* yacc.c:1646 */
10213 { dlist *l = (yyvsp[-1].l);
10214 append_int(l, 0 ); /* not all */
10215 append_int(l, (yyvsp[0].i_val) );
10216 (yyval.sym) = _symbol_create_list( SQL_DROP_FUNC, l ); }
10217#line 10218 "sql_parser.tab.c" /* yacc.c:1646 */
10218 break;
10219
10220 case 438:
10221#line 2767 "sql_parser.y" /* yacc.c:1646 */
10222 { dlist *l = L();
10223 append_list(l, (yyvsp[-1].l) );
10224 append_list(l, NULL );
10225 append_int(l, F_FUNC );
10226 append_int(l, FALSE );
10227 append_int(l, 1 );
10228 append_int(l, (yyvsp[0].i_val) );
10229 (yyval.sym) = _symbol_create_list( SQL_DROP_FUNC, l ); }
10230#line 10231 "sql_parser.tab.c" /* yacc.c:1646 */
10231 break;
10232
10233 case 439:
10234#line 2776 "sql_parser.y" /* yacc.c:1646 */
10235 { dlist *l = L();
10236 append_list(l, (yyvsp[-1].l) );
10237 append_list(l, NULL );
10238 append_int(l, F_FILT );
10239 append_int(l, FALSE );
10240 append_int(l, 1 );
10241 append_int(l, (yyvsp[0].i_val) );
10242 (yyval.sym) = _symbol_create_list( SQL_DROP_FUNC, l ); }
10243#line 10244 "sql_parser.tab.c" /* yacc.c:1646 */
10244 break;
10245
10246 case 440:
10247#line 2785 "sql_parser.y" /* yacc.c:1646 */
10248 { dlist *l = L();
10249 append_list(l, (yyvsp[-1].l) );
10250 append_list(l, NULL );
10251 append_int(l, F_AGGR );
10252 append_int(l, FALSE );
10253 append_int(l, 1 );
10254 append_int(l, (yyvsp[0].i_val) );
10255 (yyval.sym) = _symbol_create_list( SQL_DROP_FUNC, l ); }
10256#line 10257 "sql_parser.tab.c" /* yacc.c:1646 */
10257 break;
10258
10259 case 441:
10260#line 2794 "sql_parser.y" /* yacc.c:1646 */
10261 { dlist *l = L();
10262 append_list(l, (yyvsp[-1].l) );
10263 append_list(l, NULL );
10264 append_int(l, F_PROC );
10265 append_int(l, FALSE );
10266 append_int(l, 1 );
10267 append_int(l, (yyvsp[0].i_val) );
10268 (yyval.sym) = _symbol_create_list( SQL_DROP_FUNC, l ); }
10269#line 10270 "sql_parser.tab.c" /* yacc.c:1646 */
10270 break;
10271
10272 case 442:
10273#line 2803 "sql_parser.y" /* yacc.c:1646 */
10274 { dlist *l = L();
10275 append_list(l, (yyvsp[-1].l) );
10276 append_list(l, NULL );
10277 append_int(l, F_LOADER );
10278 append_int(l, FALSE );
10279 append_int(l, 1 );
10280 append_int(l, (yyvsp[0].i_val) );
10281 (yyval.sym) = _symbol_create_list( SQL_DROP_FUNC, l ); }
10282#line 10283 "sql_parser.tab.c" /* yacc.c:1646 */
10283 break;
10284
10285 case 443:
10286#line 2812 "sql_parser.y" /* yacc.c:1646 */
10287 { dlist *l = L();
10288 append_list(l, (yyvsp[-1].l) );
10289 append_int(l, (yyvsp[0].i_val) );
10290 append_int(l, (yyvsp[-2].bval) );
10291 (yyval.sym) = _symbol_create_list( SQL_DROP_VIEW, l ); }
10292#line 10293 "sql_parser.tab.c" /* yacc.c:1646 */
10293 break;
10294
10295 case 444:
10296#line 2818 "sql_parser.y" /* yacc.c:1646 */
10297 { dlist *l = L();
10298 append_list(l, (yyvsp[-1].l) );
10299 append_int(l, (yyvsp[0].i_val) );
10300 (yyval.sym) = _symbol_create_list( SQL_DROP_TYPE, l ); }
10301#line 10302 "sql_parser.tab.c" /* yacc.c:1646 */
10302 break;
10303
10304 case 445:
10305#line 2822 "sql_parser.y" /* yacc.c:1646 */
10306 { (yyval.sym) = _symbol_create( SQL_DROP_ROLE, (yyvsp[0].sval) ); }
10307#line 10308 "sql_parser.tab.c" /* yacc.c:1646 */
10308 break;
10309
10310 case 446:
10311#line 2823 "sql_parser.y" /* yacc.c:1646 */
10312 { (yyval.sym) = _symbol_create( SQL_DROP_USER, (yyvsp[0].sval) ); }
10313#line 10314 "sql_parser.tab.c" /* yacc.c:1646 */
10314 break;
10315
10316 case 447:
10317#line 2824 "sql_parser.y" /* yacc.c:1646 */
10318 { (yyval.sym) = _symbol_create_list( SQL_DROP_INDEX, (yyvsp[0].l) ); }
10319#line 10320 "sql_parser.tab.c" /* yacc.c:1646 */
10320 break;
10321
10322 case 448:
10323#line 2826 "sql_parser.y" /* yacc.c:1646 */
10324 { dlist *l = L();
10325 append_list(l, (yyvsp[0].l) );
10326 append_int(l, (yyvsp[-1].bval) );
10327 (yyval.sym) = _symbol_create_list( SQL_DROP_TRIGGER, l );
10328 }
10329#line 10330 "sql_parser.tab.c" /* yacc.c:1646 */
10330 break;
10331
10332 case 449:
10333#line 2834 "sql_parser.y" /* yacc.c:1646 */
10334 {(yyval.l) = NULL;}
10335#line 10336 "sql_parser.tab.c" /* yacc.c:1646 */
10336 break;
10337
10338 case 450:
10339#line 2835 "sql_parser.y" /* yacc.c:1646 */
10340 {(yyval.l) = (yyvsp[-1].l);}
10341#line 10342 "sql_parser.tab.c" /* yacc.c:1646 */
10342 break;
10343
10344 case 451:
10345#line 2836 "sql_parser.y" /* yacc.c:1646 */
10346 {(yyval.l) = L(); }
10347#line 10348 "sql_parser.tab.c" /* yacc.c:1646 */
10348 break;
10349
10350 case 452:
10351#line 2840 "sql_parser.y" /* yacc.c:1646 */
10352 { dlist *l = L();
10353 append_type(l, &(yyvsp[0].type) );
10354 (yyval.l)= l; }
10355#line 10356 "sql_parser.tab.c" /* yacc.c:1646 */
10356 break;
10357
10358 case 453:
10359#line 2843 "sql_parser.y" /* yacc.c:1646 */
10360 { append_type((yyvsp[0].l), &(yyvsp[-2].type));
10361 (yyval.l) = (yyvsp[0].l); }
10362#line 10363 "sql_parser.tab.c" /* yacc.c:1646 */
10363 break;
10364
10365 case 454:
10366#line 2848 "sql_parser.y" /* yacc.c:1646 */
10367 { (yyval.i_val) = 0; }
10368#line 10369 "sql_parser.tab.c" /* yacc.c:1646 */
10369 break;
10370
10371 case 455:
10372#line 2849 "sql_parser.y" /* yacc.c:1646 */
10373 { (yyval.i_val) = 0; }
10374#line 10375 "sql_parser.tab.c" /* yacc.c:1646 */
10375 break;
10376
10377 case 456:
10378#line 2850 "sql_parser.y" /* yacc.c:1646 */
10379 { (yyval.i_val) = 1; }
10380#line 10381 "sql_parser.tab.c" /* yacc.c:1646 */
10381 break;
10382
10383 case 465:
10384#line 2870 "sql_parser.y" /* yacc.c:1646 */
10385 {
10386 (yyval.sym) = (yyvsp[0].sym);
10387 m->type = Q_TRANS; }
10388#line 10389 "sql_parser.tab.c" /* yacc.c:1646 */
10389 break;
10390
10391 case 466:
10392#line 2877 "sql_parser.y" /* yacc.c:1646 */
10393 { (yyval.sym) = _symbol_create_int( TR_COMMIT, (yyvsp[0].bval)); }
10394#line 10395 "sql_parser.tab.c" /* yacc.c:1646 */
10395 break;
10396
10397 case 467:
10398#line 2879 "sql_parser.y" /* yacc.c:1646 */
10399 { (yyval.sym) = _symbol_create( TR_SAVEPOINT, (yyvsp[0].sval)); }
10400#line 10401 "sql_parser.tab.c" /* yacc.c:1646 */
10401 break;
10402
10403 case 468:
10404#line 2881 "sql_parser.y" /* yacc.c:1646 */
10405 { (yyval.sym) = _symbol_create( TR_RELEASE, (yyvsp[0].sval)); }
10406#line 10407 "sql_parser.tab.c" /* yacc.c:1646 */
10407 break;
10408
10409 case 469:
10410#line 2883 "sql_parser.y" /* yacc.c:1646 */
10411 { (yyval.sym) = _symbol_create_list( TR_ROLLBACK,
10412 append_string(
10413 append_int(L(), (yyvsp[-1].bval)), (yyvsp[0].sval) )); }
10414#line 10415 "sql_parser.tab.c" /* yacc.c:1646 */
10415 break;
10416
10417 case 470:
10418#line 2887 "sql_parser.y" /* yacc.c:1646 */
10419 { (yyval.sym) = _symbol_create_int( TR_START, (yyvsp[0].i_val)); }
10420#line 10421 "sql_parser.tab.c" /* yacc.c:1646 */
10421 break;
10422
10423 case 471:
10424#line 2889 "sql_parser.y" /* yacc.c:1646 */
10425 { (yyval.sym) = _symbol_create_int( TR_MODE, (yyvsp[0].i_val)); }
10426#line 10427 "sql_parser.tab.c" /* yacc.c:1646 */
10427 break;
10428
10429 case 472:
10430#line 2891 "sql_parser.y" /* yacc.c:1646 */
10431 { (yyval.sym) = _symbol_create_int( TR_MODE, (yyvsp[0].i_val)); }
10432#line 10433 "sql_parser.tab.c" /* yacc.c:1646 */
10433 break;
10434
10435 case 473:
10436#line 2895 "sql_parser.y" /* yacc.c:1646 */
10437 { (yyval.i_val) = tr_none; }
10438#line 10439 "sql_parser.tab.c" /* yacc.c:1646 */
10439 break;
10440
10441 case 475:
10442#line 2901 "sql_parser.y" /* yacc.c:1646 */
10443 { (yyval.i_val) = (yyvsp[0].i_val); }
10444#line 10445 "sql_parser.tab.c" /* yacc.c:1646 */
10445 break;
10446
10447 case 476:
10448#line 2903 "sql_parser.y" /* yacc.c:1646 */
10449 { (yyval.i_val) = ((yyvsp[-2].i_val) | (yyvsp[0].i_val)); }
10450#line 10451 "sql_parser.tab.c" /* yacc.c:1646 */
10451 break;
10452
10453 case 477:
10454#line 2907 "sql_parser.y" /* yacc.c:1646 */
10455 { (yyval.i_val) = tr_readonly; }
10456#line 10457 "sql_parser.tab.c" /* yacc.c:1646 */
10457 break;
10458
10459 case 478:
10460#line 2908 "sql_parser.y" /* yacc.c:1646 */
10461 { (yyval.i_val) = tr_writable; }
10462#line 10463 "sql_parser.tab.c" /* yacc.c:1646 */
10463 break;
10464
10465 case 479:
10466#line 2909 "sql_parser.y" /* yacc.c:1646 */
10467 { (yyval.i_val) = tr_serializable; }
10468#line 10469 "sql_parser.tab.c" /* yacc.c:1646 */
10469 break;
10470
10471 case 480:
10472#line 2910 "sql_parser.y" /* yacc.c:1646 */
10473 { (yyval.i_val) = tr_none; /* not supported */ }
10474#line 10475 "sql_parser.tab.c" /* yacc.c:1646 */
10475 break;
10476
10477 case 485:
10478#line 2921 "sql_parser.y" /* yacc.c:1646 */
10479 { (yyval.bval) = 0; }
10480#line 10481 "sql_parser.tab.c" /* yacc.c:1646 */
10481 break;
10482
10483 case 486:
10484#line 2922 "sql_parser.y" /* yacc.c:1646 */
10485 { (yyval.bval) = 0; }
10486#line 10487 "sql_parser.tab.c" /* yacc.c:1646 */
10487 break;
10488
10489 case 487:
10490#line 2926 "sql_parser.y" /* yacc.c:1646 */
10491 { (yyval.bval) = 1; }
10492#line 10493 "sql_parser.tab.c" /* yacc.c:1646 */
10493 break;
10494
10495 case 488:
10496#line 2927 "sql_parser.y" /* yacc.c:1646 */
10497 { (yyval.bval) = 0; }
10498#line 10499 "sql_parser.tab.c" /* yacc.c:1646 */
10499 break;
10500
10501 case 489:
10502#line 2928 "sql_parser.y" /* yacc.c:1646 */
10503 { (yyval.bval) = 0; }
10504#line 10505 "sql_parser.tab.c" /* yacc.c:1646 */
10505 break;
10506
10507 case 490:
10508#line 2932 "sql_parser.y" /* yacc.c:1646 */
10509 { (yyval.sval) = NULL; }
10510#line 10511 "sql_parser.tab.c" /* yacc.c:1646 */
10511 break;
10512
10513 case 491:
10514#line 2933 "sql_parser.y" /* yacc.c:1646 */
10515 { (yyval.sval) = (yyvsp[0].sval); }
10516#line 10517 "sql_parser.tab.c" /* yacc.c:1646 */
10517 break;
10518
10519 case 492:
10520#line 2937 "sql_parser.y" /* yacc.c:1646 */
10521 { (yyval.bval) = 0; }
10522#line 10523 "sql_parser.tab.c" /* yacc.c:1646 */
10523 break;
10524
10525 case 493:
10526#line 2938 "sql_parser.y" /* yacc.c:1646 */
10527 { (yyval.bval) = 1; }
10528#line 10529 "sql_parser.tab.c" /* yacc.c:1646 */
10529 break;
10530
10531 case 494:
10532#line 2939 "sql_parser.y" /* yacc.c:1646 */
10533 { (yyval.bval) = 0; }
10534#line 10535 "sql_parser.tab.c" /* yacc.c:1646 */
10535 break;
10536
10537 case 495:
10538#line 2944 "sql_parser.y" /* yacc.c:1646 */
10539 { dlist *l = L();
10540 append_list(l, (yyvsp[-11].l));
10541 append_list(l, (yyvsp[-10].l));
10542 append_list(l, (yyvsp[-8].l));
10543 append_list(l, (yyvsp[-7].l));
10544 append_list(l, (yyvsp[-5].l));
10545 append_list(l, (yyvsp[-13].l));
10546 append_string(l, (yyvsp[-4].sval));
10547 append_int(l, (yyvsp[-3].bval));
10548 append_int(l, (yyvsp[-2].bval));
10549 append_int(l, (yyvsp[-1].bval));
10550 append_list(l, (yyvsp[0].l));
10551 append_int(l, (yyvsp[-6].bval));
10552 (yyval.sym) = _symbol_create_list( SQL_COPYFROM, l ); }
10553#line 10554 "sql_parser.tab.c" /* yacc.c:1646 */
10554 break;
10555
10556 case 496:
10557#line 2959 "sql_parser.y" /* yacc.c:1646 */
10558 { dlist *l = L();
10559 append_list(l, (yyvsp[-9].l));
10560 append_list(l, (yyvsp[-8].l));
10561 append_list(l, NULL);
10562 append_list(l, (yyvsp[-5].l));
10563 append_list(l, (yyvsp[-4].l));
10564 append_list(l, (yyvsp[-11].l));
10565 append_string(l, (yyvsp[-3].sval));
10566 append_int(l, (yyvsp[-2].bval));
10567 append_int(l, (yyvsp[-1].bval));
10568 append_int(l, (yyvsp[0].bval));
10569 append_list(l, NULL);
10570 append_int(l, 0);
10571 (yyval.sym) = _symbol_create_list( SQL_COPYFROM, l ); }
10572#line 10573 "sql_parser.tab.c" /* yacc.c:1646 */
10573 break;
10574
10575 case 497:
10576#line 2974 "sql_parser.y" /* yacc.c:1646 */
10577 { dlist *l = L();
10578 append_list(l, (yyvsp[-2].l));
10579 append_symbol(l, (yyvsp[0].sym));
10580 (yyval.sym) = _symbol_create_list( SQL_COPYLOADER, l ); }
10581#line 10582 "sql_parser.tab.c" /* yacc.c:1646 */
10582 break;
10583
10584 case 498:
10585#line 2979 "sql_parser.y" /* yacc.c:1646 */
10586 { dlist *l = L();
10587 append_list(l, (yyvsp[-5].l));
10588 append_list(l, (yyvsp[-4].l));
10589 append_list(l, (yyvsp[-2].l));
10590 append_int(l, (yyvsp[0].bval));
10591 append_int(l, (yyvsp[-1].bval));
10592 (yyval.sym) = _symbol_create_list( SQL_BINCOPYFROM, l ); }
10593#line 10594 "sql_parser.tab.c" /* yacc.c:1646 */
10594 break;
10595
10596 case 499:
10597#line 2987 "sql_parser.y" /* yacc.c:1646 */
10598 { dlist *l = L();
10599 append_symbol(l, (yyvsp[-5].sym));
10600 append_string(l, (yyvsp[-3].sval));
10601 append_list(l, (yyvsp[-1].l));
10602 append_string(l, (yyvsp[0].sval));
10603 append_int(l, (yyvsp[-2].bval));
10604 (yyval.sym) = _symbol_create_list( SQL_COPYTO, l ); }
10605#line 10606 "sql_parser.tab.c" /* yacc.c:1646 */
10606 break;
10607
10608 case 500:
10609#line 2995 "sql_parser.y" /* yacc.c:1646 */
10610 { dlist *l = L();
10611 append_symbol(l, (yyvsp[-4].sym));
10612 append_string(l, NULL);
10613 append_list(l, (yyvsp[-1].l));
10614 append_string(l, (yyvsp[0].sval));
10615 append_int(l, 0);
10616 (yyval.sym) = _symbol_create_list( SQL_COPYTO, l ); }
10617#line 10618 "sql_parser.tab.c" /* yacc.c:1646 */
10618 break;
10619
10620 case 501:
10621#line 3005 "sql_parser.y" /* yacc.c:1646 */
10622 { (yyval.l) = NULL; }
10623#line 10624 "sql_parser.tab.c" /* yacc.c:1646 */
10624 break;
10625
10626 case 502:
10627#line 3006 "sql_parser.y" /* yacc.c:1646 */
10628 { (yyval.l) = (yyvsp[-1].l); }
10629#line 10630 "sql_parser.tab.c" /* yacc.c:1646 */
10630 break;
10631
10632 case 503:
10633#line 3011 "sql_parser.y" /* yacc.c:1646 */
10634 { (yyval.l) = append_lng(L(), (yyvsp[0].l_val)); }
10635#line 10636 "sql_parser.tab.c" /* yacc.c:1646 */
10636 break;
10637
10638 case 504:
10639#line 3013 "sql_parser.y" /* yacc.c:1646 */
10640 { (yyval.l) = append_lng((yyvsp[-2].l), (yyvsp[0].l_val)); }
10641#line 10642 "sql_parser.tab.c" /* yacc.c:1646 */
10642 break;
10643
10644 case 505:
10645#line 3018 "sql_parser.y" /* yacc.c:1646 */
10646 { (yyval.l) = NULL; }
10647#line 10648 "sql_parser.tab.c" /* yacc.c:1646 */
10648 break;
10649
10650 case 506:
10651#line 3019 "sql_parser.y" /* yacc.c:1646 */
10652 { (yyval.l) = (yyvsp[-1].l); }
10653#line 10654 "sql_parser.tab.c" /* yacc.c:1646 */
10654 break;
10655
10656 case 507:
10657#line 3023 "sql_parser.y" /* yacc.c:1646 */
10658 { (yyval.l) = append_list(L(), (yyvsp[0].l)); }
10659#line 10660 "sql_parser.tab.c" /* yacc.c:1646 */
10660 break;
10661
10662 case 508:
10663#line 3024 "sql_parser.y" /* yacc.c:1646 */
10664 { (yyval.l) = append_list((yyvsp[-2].l), (yyvsp[0].l)); }
10665#line 10666 "sql_parser.tab.c" /* yacc.c:1646 */
10666 break;
10667
10668 case 509:
10669#line 3029 "sql_parser.y" /* yacc.c:1646 */
10670 { dlist *l = L();
10671 append_string(l, (yyvsp[0].sval) );
10672 (yyval.l) = l; }
10673#line 10674 "sql_parser.tab.c" /* yacc.c:1646 */
10674 break;
10675
10676 case 510:
10677#line 3033 "sql_parser.y" /* yacc.c:1646 */
10678 { dlist *l = L();
10679 append_string(l, (yyvsp[-1].sval) );
10680 append_string(l, (yyvsp[0].sval) );
10681 (yyval.l) = l; }
10682#line 10683 "sql_parser.tab.c" /* yacc.c:1646 */
10683 break;
10684
10685 case 511:
10686#line 3041 "sql_parser.y" /* yacc.c:1646 */
10687 { dlist *l = L();
10688 append_string(l, sa_strdup(SA, "|"));
10689 append_string(l, sa_strdup(SA, "\n"));
10690 (yyval.l) = l; }
10691#line 10692 "sql_parser.tab.c" /* yacc.c:1646 */
10692 break;
10693
10694 case 512:
10695#line 3046 "sql_parser.y" /* yacc.c:1646 */
10696 { dlist *l = L();
10697 append_string(l, (yyvsp[0].sval));
10698 append_string(l, sa_strdup(SA, "\n"));
10699 (yyval.l) = l; }
10700#line 10701 "sql_parser.tab.c" /* yacc.c:1646 */
10701 break;
10702
10703 case 513:
10704#line 3051 "sql_parser.y" /* yacc.c:1646 */
10705 { dlist *l = L();
10706 append_string(l, (yyvsp[-2].sval));
10707 append_string(l, (yyvsp[0].sval));
10708 (yyval.l) = l; }
10709#line 10710 "sql_parser.tab.c" /* yacc.c:1646 */
10710 break;
10711
10712 case 514:
10713#line 3056 "sql_parser.y" /* yacc.c:1646 */
10714 { dlist *l = L();
10715 append_string(l, (yyvsp[-4].sval));
10716 append_string(l, (yyvsp[-2].sval));
10717 append_string(l, (yyvsp[0].sval));
10718 (yyval.l) = l; }
10719#line 10720 "sql_parser.tab.c" /* yacc.c:1646 */
10720 break;
10721
10722 case 515:
10723#line 3064 "sql_parser.y" /* yacc.c:1646 */
10724 { (yyval.sval) = NULL; }
10725#line 10726 "sql_parser.tab.c" /* yacc.c:1646 */
10726 break;
10727
10728 case 516:
10729#line 3065 "sql_parser.y" /* yacc.c:1646 */
10730 { (yyval.sval) = NULL; }
10731#line 10732 "sql_parser.tab.c" /* yacc.c:1646 */
10732 break;
10733
10734 case 517:
10735#line 3069 "sql_parser.y" /* yacc.c:1646 */
10736 { (yyval.l) = NULL; }
10737#line 10738 "sql_parser.tab.c" /* yacc.c:1646 */
10738 break;
10739
10740 case 518:
10741#line 3070 "sql_parser.y" /* yacc.c:1646 */
10742 { (yyval.l) = append_lng(append_lng(L(), (yyvsp[-1].l_val)), 0); }
10743#line 10744 "sql_parser.tab.c" /* yacc.c:1646 */
10744 break;
10745
10746 case 519:
10747#line 3071 "sql_parser.y" /* yacc.c:1646 */
10748 { (yyval.l) = append_lng(append_lng(L(), -1), (yyvsp[0].l_val)); }
10749#line 10750 "sql_parser.tab.c" /* yacc.c:1646 */
10750 break;
10751
10752 case 520:
10753#line 3073 "sql_parser.y" /* yacc.c:1646 */
10754 { (yyval.l) = append_lng(append_lng(L(), (yyvsp[-3].l_val)), (yyvsp[-1].l_val)); }
10755#line 10756 "sql_parser.tab.c" /* yacc.c:1646 */
10756 break;
10757
10758 case 521:
10759#line 3075 "sql_parser.y" /* yacc.c:1646 */
10760 { (yyval.l) = append_lng(append_lng(L(), (yyvsp[-3].l_val)), (yyvsp[0].l_val)); }
10761#line 10762 "sql_parser.tab.c" /* yacc.c:1646 */
10762 break;
10763
10764 case 522:
10765#line 3079 "sql_parser.y" /* yacc.c:1646 */
10766 { (yyval.sval) = NULL; }
10767#line 10768 "sql_parser.tab.c" /* yacc.c:1646 */
10768 break;
10769
10770 case 523:
10771#line 3080 "sql_parser.y" /* yacc.c:1646 */
10772 { (yyval.sval) = (yyvsp[0].sval); }
10773#line 10774 "sql_parser.tab.c" /* yacc.c:1646 */
10774 break;
10775
10776 case 524:
10777#line 3084 "sql_parser.y" /* yacc.c:1646 */
10778 { (yyval.bval) = FALSE; }
10779#line 10780 "sql_parser.tab.c" /* yacc.c:1646 */
10780 break;
10781
10782 case 525:
10783#line 3085 "sql_parser.y" /* yacc.c:1646 */
10784 { (yyval.bval) = TRUE; }
10785#line 10786 "sql_parser.tab.c" /* yacc.c:1646 */
10786 break;
10787
10788 case 526:
10789#line 3089 "sql_parser.y" /* yacc.c:1646 */
10790 { (yyval.bval) = FALSE; }
10791#line 10792 "sql_parser.tab.c" /* yacc.c:1646 */
10792 break;
10793
10794 case 527:
10795#line 3090 "sql_parser.y" /* yacc.c:1646 */
10796 { (yyval.bval) = TRUE; }
10797#line 10798 "sql_parser.tab.c" /* yacc.c:1646 */
10798 break;
10799
10800 case 528:
10801#line 3094 "sql_parser.y" /* yacc.c:1646 */
10802 { (yyval.bval) = TRUE; }
10803#line 10804 "sql_parser.tab.c" /* yacc.c:1646 */
10804 break;
10805
10806 case 529:
10807#line 3095 "sql_parser.y" /* yacc.c:1646 */
10808 { (yyval.bval) = FALSE; }
10809#line 10810 "sql_parser.tab.c" /* yacc.c:1646 */
10810 break;
10811
10812 case 530:
10813#line 3099 "sql_parser.y" /* yacc.c:1646 */
10814 { (yyval.l) = (yyvsp[0].l); }
10815#line 10816 "sql_parser.tab.c" /* yacc.c:1646 */
10816 break;
10817
10818 case 531:
10819#line 3100 "sql_parser.y" /* yacc.c:1646 */
10820 { (yyval.l) = (yyvsp[-1].l); }
10821#line 10822 "sql_parser.tab.c" /* yacc.c:1646 */
10822 break;
10823
10824 case 532:
10825#line 3104 "sql_parser.y" /* yacc.c:1646 */
10826 { (yyval.l) = append_string(L(), (yyvsp[0].sval)); }
10827#line 10828 "sql_parser.tab.c" /* yacc.c:1646 */
10828 break;
10829
10830 case 533:
10831#line 3106 "sql_parser.y" /* yacc.c:1646 */
10832 { (yyval.l) = append_string((yyvsp[-2].l), (yyvsp[0].sval)); }
10833#line 10834 "sql_parser.tab.c" /* yacc.c:1646 */
10834 break;
10835
10836 case 534:
10837#line 3112 "sql_parser.y" /* yacc.c:1646 */
10838 { dlist *l = L();
10839 append_list(l, (yyvsp[-2].l));
10840 append_string(l, (yyvsp[-1].sval));
10841 append_symbol(l, (yyvsp[0].sym));
10842 (yyval.sym) = _symbol_create_list( SQL_DELETE, l ); }
10843#line 10844 "sql_parser.tab.c" /* yacc.c:1646 */
10844 break;
10845
10846 case 535:
10847#line 3120 "sql_parser.y" /* yacc.c:1646 */
10848 { (yyval.i_val) = 0; }
10849#line 10850 "sql_parser.tab.c" /* yacc.c:1646 */
10850 break;
10851
10852 case 536:
10853#line 3121 "sql_parser.y" /* yacc.c:1646 */
10854 { (yyval.i_val) = 0; }
10855#line 10856 "sql_parser.tab.c" /* yacc.c:1646 */
10856 break;
10857
10858 case 537:
10859#line 3122 "sql_parser.y" /* yacc.c:1646 */
10860 { (yyval.i_val) = 1; }
10861#line 10862 "sql_parser.tab.c" /* yacc.c:1646 */
10862 break;
10863
10864 case 538:
10865#line 3127 "sql_parser.y" /* yacc.c:1646 */
10866 { dlist *l = L();
10867 append_list(l, (yyvsp[-2].l) );
10868 append_int(l, (yyvsp[-1].i_val) );
10869 append_int(l, (yyvsp[0].i_val) );
10870 (yyval.sym) = _symbol_create_list( SQL_TRUNCATE, l ); }
10871#line 10872 "sql_parser.tab.c" /* yacc.c:1646 */
10872 break;
10873
10874 case 539:
10875#line 3133 "sql_parser.y" /* yacc.c:1646 */
10876 { dlist *l = L();
10877 append_list(l, (yyvsp[-2].l) );
10878 append_int(l, (yyvsp[-1].i_val) );
10879 append_int(l, (yyvsp[0].i_val) );
10880 (yyval.sym) = _symbol_create_list( SQL_TRUNCATE, l ); }
10881#line 10882 "sql_parser.tab.c" /* yacc.c:1646 */
10882 break;
10883
10884 case 540:
10885#line 3143 "sql_parser.y" /* yacc.c:1646 */
10886 { dlist *l = L();
10887 append_list(l, (yyvsp[-5].l));
10888 append_string(l, (yyvsp[-4].sval));
10889 append_list(l, (yyvsp[-2].l));
10890 append_symbol(l, (yyvsp[-1].sym));
10891 append_symbol(l, (yyvsp[0].sym));
10892 (yyval.sym) = _symbol_create_list( SQL_UPDATE, l ); }
10893#line 10894 "sql_parser.tab.c" /* yacc.c:1646 */
10894 break;
10895
10896 case 541:
10897#line 3153 "sql_parser.y" /* yacc.c:1646 */
10898 { (yyval.sym) = NULL; }
10899#line 10900 "sql_parser.tab.c" /* yacc.c:1646 */
10900 break;
10901
10902 case 542:
10903#line 3154 "sql_parser.y" /* yacc.c:1646 */
10904 { (yyval.sym) = (yyvsp[0].sym); }
10905#line 10906 "sql_parser.tab.c" /* yacc.c:1646 */
10906 break;
10907
10908 case 543:
10909#line 3159 "sql_parser.y" /* yacc.c:1646 */
10910 { dlist *l = L();
10911 append_list(l, (yyvsp[0].l));
10912 (yyval.sym) = _symbol_create_list( SQL_UPDATE, l ); }
10913#line 10914 "sql_parser.tab.c" /* yacc.c:1646 */
10914 break;
10915
10916 case 544:
10917#line 3163 "sql_parser.y" /* yacc.c:1646 */
10918 { (yyval.sym) = _symbol_create_list( SQL_DELETE, NULL ); }
10919#line 10920 "sql_parser.tab.c" /* yacc.c:1646 */
10920 break;
10921
10922 case 545:
10923#line 3168 "sql_parser.y" /* yacc.c:1646 */
10924 { dlist *l = L();
10925 append_list(l, (yyvsp[-1].l));
10926 append_symbol(l, (yyvsp[0].sym));
10927 (yyval.sym) = _symbol_create_list( SQL_INSERT, l ); }
10928#line 10929 "sql_parser.tab.c" /* yacc.c:1646 */
10929 break;
10930
10931 case 546:
10932#line 3176 "sql_parser.y" /* yacc.c:1646 */
10933 { dlist *l = L();
10934 append_symbol(l, (yyvsp[-2].sym));
10935 append_symbol(l, (yyvsp[0].sym));
10936 (yyval.sym) = _symbol_create_list( SQL_MERGE_MATCH, l ); }
10937#line 10938 "sql_parser.tab.c" /* yacc.c:1646 */
10938 break;
10939
10940 case 547:
10941#line 3181 "sql_parser.y" /* yacc.c:1646 */
10942 { dlist *l = L();
10943 append_symbol(l, (yyvsp[-2].sym));
10944 append_symbol(l, (yyvsp[0].sym));
10945 (yyval.sym) = _symbol_create_list( SQL_MERGE_NO_MATCH, l ); }
10946#line 10947 "sql_parser.tab.c" /* yacc.c:1646 */
10947 break;
10948
10949 case 548:
10950#line 3188 "sql_parser.y" /* yacc.c:1646 */
10951 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
10952#line 10953 "sql_parser.tab.c" /* yacc.c:1646 */
10953 break;
10954
10955 case 549:
10956#line 3189 "sql_parser.y" /* yacc.c:1646 */
10957 { (yyval.l) = append_symbol((yyvsp[-1].l), (yyvsp[0].sym)); }
10958#line 10959 "sql_parser.tab.c" /* yacc.c:1646 */
10959 break;
10960
10961 case 550:
10962#line 3195 "sql_parser.y" /* yacc.c:1646 */
10963 { dlist *l = L();
10964 append_list(l, (yyvsp[-6].l));
10965 append_string(l, (yyvsp[-5].sval));
10966 append_symbol(l, (yyvsp[-3].sym));
10967 append_symbol(l, (yyvsp[-1].sym));
10968 append_list(l, (yyvsp[0].l));
10969 (yyval.sym) = _symbol_create_list( SQL_MERGE, l ); }
10970#line 10971 "sql_parser.tab.c" /* yacc.c:1646 */
10971 break;
10972
10973 case 551:
10974#line 3206 "sql_parser.y" /* yacc.c:1646 */
10975 { dlist *l = L();
10976 append_list(l, (yyvsp[-1].l));
10977 append_list(l, NULL);
10978 append_symbol(l, (yyvsp[0].sym));
10979 (yyval.sym) = _symbol_create_list( SQL_INSERT, l ); }
10980#line 10981 "sql_parser.tab.c" /* yacc.c:1646 */
10981 break;
10982
10983 case 552:
10984#line 3214 "sql_parser.y" /* yacc.c:1646 */
10985 { dlist *l = L();
10986 append_list(l, (yyvsp[-2].l));
10987 append_list(l, (yyvsp[-1].l));
10988 append_symbol(l, (yyvsp[0].sym));
10989 (yyval.sym) = _symbol_create_list( SQL_INSERT, l ); }
10990#line 10991 "sql_parser.tab.c" /* yacc.c:1646 */
10991 break;
10992
10993 case 553:
10994#line 3223 "sql_parser.y" /* yacc.c:1646 */
10995 { (yyval.sym) = _symbol_create_list( SQL_VALUES, L()); }
10996#line 10997 "sql_parser.tab.c" /* yacc.c:1646 */
10997 break;
10998
10999 case 554:
11000#line 3225 "sql_parser.y" /* yacc.c:1646 */
11001 { (yyval.sym) = _symbol_create_list( SQL_VALUES, L()); }
11002#line 11003 "sql_parser.tab.c" /* yacc.c:1646 */
11003 break;
11004
11005 case 556:
11006#line 3231 "sql_parser.y" /* yacc.c:1646 */
11007 { (yyval.l) = append_list(L(), (yyvsp[-1].l)); }
11008#line 11009 "sql_parser.tab.c" /* yacc.c:1646 */
11009 break;
11010
11011 case 557:
11012#line 3233 "sql_parser.y" /* yacc.c:1646 */
11013 { (yyval.l) = append_list((yyvsp[-4].l), (yyvsp[-1].l)); }
11014#line 11015 "sql_parser.tab.c" /* yacc.c:1646 */
11015 break;
11016
11017 case 558:
11018#line 3237 "sql_parser.y" /* yacc.c:1646 */
11019 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
11020#line 11021 "sql_parser.tab.c" /* yacc.c:1646 */
11021 break;
11022
11023 case 559:
11024#line 3239 "sql_parser.y" /* yacc.c:1646 */
11025 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym)); }
11026#line 11027 "sql_parser.tab.c" /* yacc.c:1646 */
11027 break;
11028
11029 case 560:
11030#line 3243 "sql_parser.y" /* yacc.c:1646 */
11031 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
11032#line 11033 "sql_parser.tab.c" /* yacc.c:1646 */
11033 break;
11034
11035 case 561:
11036#line 3245 "sql_parser.y" /* yacc.c:1646 */
11037 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym)); }
11038#line 11039 "sql_parser.tab.c" /* yacc.c:1646 */
11039 break;
11040
11041 case 562:
11042#line 3250 "sql_parser.y" /* yacc.c:1646 */
11043 {
11044 if (m->emode == m_normal && m->caching) {
11045 /* replace by argument */
11046 atom *a = atom_general(SA, sql_bind_localtype("void"), NULL);
11047
11048 if(!sql_add_arg( m, a)) {
11049 char *msg = sql_message(SQLSTATE(HY001) "allocation failure");
11050 yyerror(m, msg);
11051 _DELETE(msg);
11052 YYABORT;
11053 }
11054 (yyval.sym) = _symbol_create_list( SQL_IDENT,
11055 append_int(L(), m->argc-1));
11056 } else {
11057 (yyval.sym) = _symbol_create(SQL_NULL, NULL );
11058 }
11059 }
11060#line 11061 "sql_parser.tab.c" /* yacc.c:1646 */
11061 break;
11062
11063 case 565:
11064#line 3276 "sql_parser.y" /* yacc.c:1646 */
11065 { (yyval.sym) = _symbol_create(SQL_DEFAULT, NULL ); }
11066#line 11067 "sql_parser.tab.c" /* yacc.c:1646 */
11067 break;
11068
11069 case 568:
11070#line 3285 "sql_parser.y" /* yacc.c:1646 */
11071 { (yyval.bval) = FALSE; }
11072#line 11073 "sql_parser.tab.c" /* yacc.c:1646 */
11073 break;
11074
11075 case 569:
11076#line 3286 "sql_parser.y" /* yacc.c:1646 */
11077 { (yyval.bval) = FALSE; }
11078#line 11079 "sql_parser.tab.c" /* yacc.c:1646 */
11079 break;
11080
11081 case 570:
11082#line 3287 "sql_parser.y" /* yacc.c:1646 */
11083 { (yyval.bval) = TRUE; }
11084#line 11085 "sql_parser.tab.c" /* yacc.c:1646 */
11085 break;
11086
11087 case 571:
11088#line 3291 "sql_parser.y" /* yacc.c:1646 */
11089 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym) ); }
11090#line 11091 "sql_parser.tab.c" /* yacc.c:1646 */
11091 break;
11092
11093 case 572:
11094#line 3293 "sql_parser.y" /* yacc.c:1646 */
11095 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym) ); }
11096#line 11097 "sql_parser.tab.c" /* yacc.c:1646 */
11097 break;
11098
11099 case 573:
11100#line 3297 "sql_parser.y" /* yacc.c:1646 */
11101 { (yyval.sym) = _symbol_create(SQL_DEFAULT, NULL ); }
11102#line 11103 "sql_parser.tab.c" /* yacc.c:1646 */
11103 break;
11104
11105 case 574:
11106#line 3302 "sql_parser.y" /* yacc.c:1646 */
11107 { dlist *l = L();
11108 append_symbol(l, (yyvsp[0].sym));
11109 append_string(l, (yyvsp[-2].sval));
11110 (yyval.sym) = _symbol_create_list( SQL_ASSIGN, l); }
11111#line 11112 "sql_parser.tab.c" /* yacc.c:1646 */
11112 break;
11113
11114 case 575:
11115#line 3307 "sql_parser.y" /* yacc.c:1646 */
11116 { dlist *l = L();
11117 append_symbol(l, (yyvsp[0].sym) );
11118 append_string(l, (yyvsp[-2].sval));
11119 (yyval.sym) = _symbol_create_list( SQL_ASSIGN, l); }
11120#line 11121 "sql_parser.tab.c" /* yacc.c:1646 */
11121 break;
11122
11123 case 576:
11124#line 3312 "sql_parser.y" /* yacc.c:1646 */
11125 { dlist *l = L();
11126 append_symbol(l, (yyvsp[0].sym));
11127 append_list(l, (yyvsp[-2].l));
11128 (yyval.sym) = _symbol_create_list( SQL_ASSIGN, l ); }
11129#line 11130 "sql_parser.tab.c" /* yacc.c:1646 */
11130 break;
11131
11132 case 577:
11133#line 3319 "sql_parser.y" /* yacc.c:1646 */
11134 { (yyval.sym) = NULL; }
11135#line 11136 "sql_parser.tab.c" /* yacc.c:1646 */
11136 break;
11137
11138 case 578:
11139#line 3320 "sql_parser.y" /* yacc.c:1646 */
11140 { (yyval.sym) = (yyvsp[0].sym); }
11141#line 11142 "sql_parser.tab.c" /* yacc.c:1646 */
11142 break;
11143
11144 case 579:
11145#line 3327 "sql_parser.y" /* yacc.c:1646 */
11146 { (yyval.sym) = (yyvsp[-1].sym); }
11147#line 11148 "sql_parser.tab.c" /* yacc.c:1646 */
11148 break;
11149
11150 case 580:
11151#line 3329 "sql_parser.y" /* yacc.c:1646 */
11152 { dlist *l = L();
11153 append_symbol(l, (yyvsp[-3].sym));
11154 append_symbol(l, (yyvsp[0].sym));
11155 (yyval.sym) = _symbol_create_list( SQL_CROSS, l); }
11156#line 11157 "sql_parser.tab.c" /* yacc.c:1646 */
11157 break;
11158
11159 case 581:
11160#line 3334 "sql_parser.y" /* yacc.c:1646 */
11161 { dlist *l = L();
11162 append_symbol(l, (yyvsp[-3].sym));
11163 append_int(l, 0);
11164 append_int(l, 4);
11165 append_symbol(l, (yyvsp[-1].sym));
11166 append_symbol(l, (yyvsp[0].sym));
11167 (yyval.sym) = _symbol_create_list( SQL_UNIONJOIN, l); }
11168#line 11169 "sql_parser.tab.c" /* yacc.c:1646 */
11169 break;
11170
11171 case 582:
11172#line 3342 "sql_parser.y" /* yacc.c:1646 */
11173 { dlist *l = L();
11174 append_symbol(l, (yyvsp[-4].sym));
11175 append_int(l, 0);
11176 append_int(l, (yyvsp[-3].i_val));
11177 append_symbol(l, (yyvsp[-1].sym));
11178 append_symbol(l, (yyvsp[0].sym));
11179 (yyval.sym) = _symbol_create_list( SQL_JOIN, l); }
11180#line 11181 "sql_parser.tab.c" /* yacc.c:1646 */
11181 break;
11182
11183 case 583:
11184#line 3350 "sql_parser.y" /* yacc.c:1646 */
11185 { dlist *l = L();
11186 append_symbol(l, (yyvsp[-4].sym));
11187 append_int(l, 1);
11188 append_int(l, (yyvsp[-2].i_val));
11189 append_symbol(l, (yyvsp[0].sym));
11190 append_symbol(l, NULL);
11191 (yyval.sym) = _symbol_create_list( SQL_JOIN, l); }
11192#line 11193 "sql_parser.tab.c" /* yacc.c:1646 */
11193 break;
11194
11195 case 584:
11196#line 3360 "sql_parser.y" /* yacc.c:1646 */
11197 { (yyval.i_val) = 0; }
11198#line 11199 "sql_parser.tab.c" /* yacc.c:1646 */
11199 break;
11200
11201 case 585:
11202#line 3361 "sql_parser.y" /* yacc.c:1646 */
11203 { (yyval.i_val) = 0; }
11204#line 11205 "sql_parser.tab.c" /* yacc.c:1646 */
11205 break;
11206
11207 case 586:
11208#line 3362 "sql_parser.y" /* yacc.c:1646 */
11209 { (yyval.i_val) = 1 + (yyvsp[-1].i_val); }
11210#line 11211 "sql_parser.tab.c" /* yacc.c:1646 */
11211 break;
11212
11213 case 587:
11214#line 3366 "sql_parser.y" /* yacc.c:1646 */
11215 { (yyval.i_val) = 0; }
11216#line 11217 "sql_parser.tab.c" /* yacc.c:1646 */
11217 break;
11218
11219 case 588:
11220#line 3367 "sql_parser.y" /* yacc.c:1646 */
11221 { (yyval.i_val) = 0; }
11222#line 11223 "sql_parser.tab.c" /* yacc.c:1646 */
11223 break;
11224
11225 case 589:
11226#line 3371 "sql_parser.y" /* yacc.c:1646 */
11227 { (yyval.i_val) = 0; }
11228#line 11229 "sql_parser.tab.c" /* yacc.c:1646 */
11229 break;
11230
11231 case 590:
11232#line 3372 "sql_parser.y" /* yacc.c:1646 */
11233 { (yyval.i_val) = 1; }
11234#line 11235 "sql_parser.tab.c" /* yacc.c:1646 */
11235 break;
11236
11237 case 591:
11238#line 3373 "sql_parser.y" /* yacc.c:1646 */
11239 { (yyval.i_val) = 2; }
11240#line 11241 "sql_parser.tab.c" /* yacc.c:1646 */
11241 break;
11242
11243 case 592:
11244#line 3377 "sql_parser.y" /* yacc.c:1646 */
11245 { (yyval.sym) = (yyvsp[0].sym); }
11246#line 11247 "sql_parser.tab.c" /* yacc.c:1646 */
11247 break;
11248
11249 case 593:
11250#line 3379 "sql_parser.y" /* yacc.c:1646 */
11251 { (yyval.sym) = _symbol_create_list( SQL_USING, (yyvsp[0].l)); }
11252#line 11253 "sql_parser.tab.c" /* yacc.c:1646 */
11253 break;
11254
11255 case 595:
11256#line 3403 "sql_parser.y" /* yacc.c:1646 */
11257 {
11258 dlist *l = L();
11259 append_list(l, (yyvsp[-1].l));
11260 append_symbol(l, (yyvsp[0].sym));
11261 (yyval.sym) = _symbol_create_list( SQL_WITH, l );
11262 }
11263#line 11264 "sql_parser.tab.c" /* yacc.c:1646 */
11264 break;
11265
11266 case 596:
11267#line 3412 "sql_parser.y" /* yacc.c:1646 */
11268 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym)); }
11269#line 11270 "sql_parser.tab.c" /* yacc.c:1646 */
11270 break;
11271
11272 case 597:
11273#line 3413 "sql_parser.y" /* yacc.c:1646 */
11274 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
11275#line 11276 "sql_parser.tab.c" /* yacc.c:1646 */
11276 break;
11277
11278 case 598:
11279#line 3418 "sql_parser.y" /* yacc.c:1646 */
11280 { dlist *l = L();
11281 append_list(l, append_string(L(), (yyvsp[-3].sval)));
11282 append_list(l, (yyvsp[-2].l));
11283 append_symbol(l, (yyvsp[0].sym));
11284 append_int(l, FALSE); /* no with check */
11285 append_int(l, FALSE); /* inlined view (ie not persistent) */
11286 append_int(l, FALSE); /* no replace clause */
11287 (yyval.sym) = _symbol_create_list( SQL_CREATE_VIEW, l );
11288 }
11289#line 11290 "sql_parser.tab.c" /* yacc.c:1646 */
11290 break;
11291
11292 case 607:
11293#line 3445 "sql_parser.y" /* yacc.c:1646 */
11294 { (yyval.sym) = newSelectNode( SA, (yyvsp[-2].bval), (yyvsp[-1].l), NULL,
11295 (yyvsp[0].l)->h->data.sym,
11296 (yyvsp[0].l)->h->next->data.sym,
11297 (yyvsp[0].l)->h->next->next->data.sym,
11298 (yyvsp[0].l)->h->next->next->next->data.sym,
11299 NULL, NULL, NULL, NULL, NULL,
11300 (yyvsp[0].l)->h->next->next->next->next->data.sym);
11301 }
11302#line 11303 "sql_parser.tab.c" /* yacc.c:1646 */
11303 break;
11304
11305 case 608:
11306#line 3457 "sql_parser.y" /* yacc.c:1646 */
11307 { (yyval.sym) = newSelectNode( SA, (yyvsp[-4].bval), (yyvsp[-3].l), (yyvsp[-1].l),
11308 (yyvsp[0].l)->h->data.sym,
11309 (yyvsp[0].l)->h->next->data.sym,
11310 (yyvsp[0].l)->h->next->next->data.sym,
11311 (yyvsp[0].l)->h->next->next->next->data.sym,
11312 NULL, NULL, NULL, NULL, NULL,
11313 (yyvsp[0].l)->h->next->next->next->next->data.sym);
11314 }
11315#line 11316 "sql_parser.tab.c" /* yacc.c:1646 */
11316 break;
11317
11318 case 609:
11319#line 3469 "sql_parser.y" /* yacc.c:1646 */
11320 {
11321 (yyval.sym) = (yyvsp[-4].sym);
11322 if ((yyvsp[-3].sym) || (yyvsp[-2].sym) || (yyvsp[-1].sym) || (yyvsp[0].sym)) {
11323 if ((yyvsp[-4].sym) != NULL &&
11324 ((yyvsp[-4].sym)->token == SQL_SELECT ||
11325 (yyvsp[-4].sym)->token == SQL_UNION ||
11326 (yyvsp[-4].sym)->token == SQL_EXCEPT ||
11327 (yyvsp[-4].sym)->token == SQL_INTERSECT)) {
11328 if ((yyvsp[-4].sym)->token == SQL_SELECT) {
11329 SelectNode *s = (SelectNode*)(yyvsp[-4].sym);
11330
11331 s -> orderby = (yyvsp[-3].sym);
11332 s -> limit = (yyvsp[-2].sym);
11333 s -> offset = (yyvsp[-1].sym);
11334 s -> sample = (yyvsp[0].sym);
11335 } else { /* Add extra select * from .. in case of UNION, EXCEPT, INTERSECT */
11336 (yyval.sym) = newSelectNode(
11337 SA, 0,
11338 append_symbol(L(), _symbol_create_list(SQL_TABLE, append_string(append_string(L(),NULL),NULL))), NULL,
11339 _symbol_create_list( SQL_FROM, append_symbol(L(), (yyvsp[-4].sym))), NULL, NULL, NULL, (yyvsp[-3].sym), _symbol_create_list(SQL_NAME, append_list(append_string(L(),"inner"),NULL)), (yyvsp[-2].sym), (yyvsp[-1].sym), (yyvsp[0].sym), NULL);
11340 }
11341 } else {
11342 yyerror(m, "missing SELECT operator");
11343 YYABORT;
11344 }
11345 }
11346 }
11347#line 11348 "sql_parser.tab.c" /* yacc.c:1646 */
11348 break;
11349
11350 case 610:
11351#line 3499 "sql_parser.y" /* yacc.c:1646 */
11352 { (yyval.l) = append_string(L(), (yyvsp[0].sval)); }
11353#line 11354 "sql_parser.tab.c" /* yacc.c:1646 */
11354 break;
11355
11356 case 611:
11357#line 3501 "sql_parser.y" /* yacc.c:1646 */
11358 { (yyval.l) = append_string((yyvsp[-2].l), (yyvsp[0].sval)); }
11359#line 11360 "sql_parser.tab.c" /* yacc.c:1646 */
11360 break;
11361
11362 case 613:
11363#line 3511 "sql_parser.y" /* yacc.c:1646 */
11364 { dlist *l = L();
11365 append_symbol(l, (yyvsp[-4].sym));
11366 append_int(l, (yyvsp[-2].bval));
11367 append_list(l, (yyvsp[-1].l));
11368 append_symbol(l, (yyvsp[0].sym));
11369 (yyval.sym) = _symbol_create_list( SQL_UNION, l); }
11370#line 11371 "sql_parser.tab.c" /* yacc.c:1646 */
11371 break;
11372
11373 case 614:
11374#line 3520 "sql_parser.y" /* yacc.c:1646 */
11375 { dlist *l = L();
11376 append_symbol(l, (yyvsp[-4].sym));
11377 append_int(l, (yyvsp[-2].bval));
11378 append_list(l, (yyvsp[-1].l));
11379 append_symbol(l, (yyvsp[0].sym));
11380 (yyval.sym) = _symbol_create_list( SQL_EXCEPT, l); }
11381#line 11382 "sql_parser.tab.c" /* yacc.c:1646 */
11382 break;
11383
11384 case 615:
11385#line 3529 "sql_parser.y" /* yacc.c:1646 */
11386 { dlist *l = L();
11387 append_symbol(l, (yyvsp[-4].sym));
11388 append_int(l, (yyvsp[-2].bval));
11389 append_list(l, (yyvsp[-1].l));
11390 append_symbol(l, (yyvsp[0].sym));
11391 (yyval.sym) = _symbol_create_list( SQL_INTERSECT, l); }
11392#line 11393 "sql_parser.tab.c" /* yacc.c:1646 */
11393 break;
11394
11395 case 616:
11396#line 3535 "sql_parser.y" /* yacc.c:1646 */
11397 { (yyval.sym) = _symbol_create_list( SQL_VALUES, (yyvsp[0].l)); }
11398#line 11399 "sql_parser.tab.c" /* yacc.c:1646 */
11399 break;
11400
11401 case 617:
11402#line 3536 "sql_parser.y" /* yacc.c:1646 */
11403 { (yyval.sym) = (yyvsp[-1].sym); }
11404#line 11405 "sql_parser.tab.c" /* yacc.c:1646 */
11405 break;
11406
11407 case 619:
11408#line 3541 "sql_parser.y" /* yacc.c:1646 */
11409 { (yyval.bval) = TRUE; }
11410#line 11411 "sql_parser.tab.c" /* yacc.c:1646 */
11411 break;
11412
11413 case 620:
11414#line 3542 "sql_parser.y" /* yacc.c:1646 */
11415 { (yyval.bval) = FALSE; }
11416#line 11417 "sql_parser.tab.c" /* yacc.c:1646 */
11417 break;
11418
11419 case 621:
11420#line 3543 "sql_parser.y" /* yacc.c:1646 */
11421 { (yyval.bval) = TRUE; }
11422#line 11423 "sql_parser.tab.c" /* yacc.c:1646 */
11423 break;
11424
11425 case 622:
11426#line 3548 "sql_parser.y" /* yacc.c:1646 */
11427 { (yyval.l) = NULL; }
11428#line 11429 "sql_parser.tab.c" /* yacc.c:1646 */
11429 break;
11430
11431 case 623:
11432#line 3550 "sql_parser.y" /* yacc.c:1646 */
11433 { (yyval.l) = L(); }
11434#line 11435 "sql_parser.tab.c" /* yacc.c:1646 */
11435 break;
11436
11437 case 624:
11438#line 3552 "sql_parser.y" /* yacc.c:1646 */
11439 { (yyval.l) = (yyvsp[-1].l); }
11440#line 11441 "sql_parser.tab.c" /* yacc.c:1646 */
11441 break;
11442
11443 case 626:
11444#line 3562 "sql_parser.y" /* yacc.c:1646 */
11445 { (yyval.l) = L();
11446 append_symbol((yyval.l), (yyvsp[-4].sym));
11447 append_symbol((yyval.l), (yyvsp[-2].sym));
11448 append_symbol((yyval.l), (yyvsp[-1].sym));
11449 append_symbol((yyval.l), (yyvsp[0].sym));
11450 append_symbol((yyval.l), (yyvsp[-3].sym)); }
11451#line 11452 "sql_parser.tab.c" /* yacc.c:1646 */
11452 break;
11453
11454 case 627:
11455#line 3571 "sql_parser.y" /* yacc.c:1646 */
11456 { dlist *l = L(); append_string(l, (yyvsp[-4].sval)); append_list(l, (yyvsp[-1].l));
11457 (yyval.sym) = _symbol_create_list(SQL_NAME, l); }
11458#line 11459 "sql_parser.tab.c" /* yacc.c:1646 */
11459 break;
11460
11461 case 628:
11462#line 3576 "sql_parser.y" /* yacc.c:1646 */
11463 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
11464#line 11465 "sql_parser.tab.c" /* yacc.c:1646 */
11465 break;
11466
11467 case 629:
11468#line 3577 "sql_parser.y" /* yacc.c:1646 */
11469 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym)); }
11470#line 11471 "sql_parser.tab.c" /* yacc.c:1646 */
11471 break;
11472
11473 case 630:
11474#line 3581 "sql_parser.y" /* yacc.c:1646 */
11475 { (yyval.sym) = NULL; }
11476#line 11477 "sql_parser.tab.c" /* yacc.c:1646 */
11477 break;
11478
11479 case 631:
11480#line 3582 "sql_parser.y" /* yacc.c:1646 */
11481 { (yyval.sym) = _symbol_create_list( SQL_WINDOW, (yyvsp[0].l)); }
11482#line 11483 "sql_parser.tab.c" /* yacc.c:1646 */
11483 break;
11484
11485 case 632:
11486#line 3586 "sql_parser.y" /* yacc.c:1646 */
11487 { (yyval.sym) = NULL; }
11488#line 11489 "sql_parser.tab.c" /* yacc.c:1646 */
11489 break;
11490
11491 case 633:
11492#line 3587 "sql_parser.y" /* yacc.c:1646 */
11493 { (yyval.sym) = _symbol_create_list( SQL_FROM, (yyvsp[0].l)); }
11494#line 11495 "sql_parser.tab.c" /* yacc.c:1646 */
11495 break;
11496
11497 case 634:
11498#line 3591 "sql_parser.y" /* yacc.c:1646 */
11499 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
11500#line 11501 "sql_parser.tab.c" /* yacc.c:1646 */
11501 break;
11502
11503 case 635:
11504#line 3593 "sql_parser.y" /* yacc.c:1646 */
11505 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym)); }
11506#line 11507 "sql_parser.tab.c" /* yacc.c:1646 */
11507 break;
11508
11509 case 636:
11510#line 3597 "sql_parser.y" /* yacc.c:1646 */
11511 { dlist *l = L();
11512 append_list(l, (yyvsp[-1].l));
11513 append_symbol(l, (yyvsp[0].sym));
11514 (yyval.sym) = _symbol_create_list(SQL_NAME, l); }
11515#line 11516 "sql_parser.tab.c" /* yacc.c:1646 */
11516 break;
11517
11518 case 637:
11519#line 3602 "sql_parser.y" /* yacc.c:1646 */
11520 { dlist *l = L();
11521 append_symbol(l, (yyvsp[-1].sym));
11522 append_symbol(l, (yyvsp[0].sym));
11523 append_int(l, 0);
11524 (yyval.sym) = _symbol_create_list(SQL_TABLE, l); }
11525#line 11526 "sql_parser.tab.c" /* yacc.c:1646 */
11526 break;
11527
11528 case 638:
11529#line 3608 "sql_parser.y" /* yacc.c:1646 */
11530 { dlist *l = L();
11531 append_symbol(l, (yyvsp[-1].sym));
11532 append_symbol(l, (yyvsp[0].sym));
11533 append_int(l, 1);
11534 (yyval.sym) = _symbol_create_list(SQL_TABLE, l); }
11535#line 11536 "sql_parser.tab.c" /* yacc.c:1646 */
11536 break;
11537
11538 case 639:
11539#line 3614 "sql_parser.y" /* yacc.c:1646 */
11540 {
11541 (yyval.sym) = (yyvsp[-1].sym);
11542 if ((yyval.sym)->token == SQL_SELECT) {
11543 SelectNode *sn = (SelectNode*)(yyvsp[-1].sym);
11544 sn->name = (yyvsp[0].sym);
11545 } else {
11546 append_symbol((yyvsp[-1].sym)->data.lval, (yyvsp[0].sym));
11547 }
11548 }
11549#line 11550 "sql_parser.tab.c" /* yacc.c:1646 */
11550 break;
11551
11552 case 640:
11553#line 3624 "sql_parser.y" /* yacc.c:1646 */
11554 {
11555 (yyval.sym) = (yyvsp[-1].sym);
11556 if ((yyval.sym)->token == SQL_SELECT) {
11557 SelectNode *sn = (SelectNode*)(yyvsp[-1].sym);
11558 sn->name = (yyvsp[0].sym);
11559 sn->lateral = 1;
11560 } else {
11561 append_symbol((yyvsp[-1].sym)->data.lval, (yyvsp[0].sym));
11562 append_int((yyvsp[-1].sym)->data.lval, 1);
11563 }
11564 }
11565#line 11566 "sql_parser.tab.c" /* yacc.c:1646 */
11566 break;
11567
11568 case 641:
11569#line 3636 "sql_parser.y" /* yacc.c:1646 */
11570 { (yyval.sym) = NULL;
11571 yyerror(m, "subquery table reference needs alias, use AS xxx");
11572 YYABORT;
11573 }
11574#line 11575 "sql_parser.tab.c" /* yacc.c:1646 */
11575 break;
11576
11577 case 642:
11578#line 3640 "sql_parser.y" /* yacc.c:1646 */
11579 { (yyval.sym) = (yyvsp[0].sym);
11580 append_symbol((yyvsp[0].sym)->data.lval, NULL); }
11581#line 11582 "sql_parser.tab.c" /* yacc.c:1646 */
11582 break;
11583
11584 case 643:
11585#line 3646 "sql_parser.y" /* yacc.c:1646 */
11586 { dlist *l = L();
11587 append_string(l, (yyvsp[-3].sval));
11588 append_list(l, (yyvsp[-1].l));
11589 (yyval.sym) = _symbol_create_list(SQL_NAME, l); }
11590#line 11591 "sql_parser.tab.c" /* yacc.c:1646 */
11591 break;
11592
11593 case 644:
11594#line 3651 "sql_parser.y" /* yacc.c:1646 */
11595 { dlist *l = L();
11596 append_string(l, (yyvsp[0].sval));
11597 append_list(l, NULL);
11598 (yyval.sym) = _symbol_create_list(SQL_NAME, l); }
11599#line 11600 "sql_parser.tab.c" /* yacc.c:1646 */
11600 break;
11601
11602 case 645:
11603#line 3656 "sql_parser.y" /* yacc.c:1646 */
11604 { dlist *l = L();
11605 append_string(l, (yyvsp[-3].sval));
11606 append_list(l, (yyvsp[-1].l));
11607 (yyval.sym) = _symbol_create_list(SQL_NAME, l); }
11608#line 11609 "sql_parser.tab.c" /* yacc.c:1646 */
11609 break;
11610
11611 case 646:
11612#line 3661 "sql_parser.y" /* yacc.c:1646 */
11613 { dlist *l = L();
11614 append_string(l, (yyvsp[0].sval));
11615 append_list(l, NULL);
11616 (yyval.sym) = _symbol_create_list(SQL_NAME, l); }
11617#line 11618 "sql_parser.tab.c" /* yacc.c:1646 */
11618 break;
11619
11620 case 647:
11621#line 3668 "sql_parser.y" /* yacc.c:1646 */
11622 { (yyval.sym) = NULL; }
11623#line 11624 "sql_parser.tab.c" /* yacc.c:1646 */
11624 break;
11625
11626 case 648:
11627#line 3669 "sql_parser.y" /* yacc.c:1646 */
11628 { (yyval.sym) = (yyvsp[0].sym); }
11629#line 11630 "sql_parser.tab.c" /* yacc.c:1646 */
11630 break;
11631
11632 case 649:
11633#line 3673 "sql_parser.y" /* yacc.c:1646 */
11634 { (yyval.sym) = NULL; }
11635#line 11636 "sql_parser.tab.c" /* yacc.c:1646 */
11636 break;
11637
11638 case 650:
11639#line 3674 "sql_parser.y" /* yacc.c:1646 */
11640 { (yyval.sym) = _symbol_create_list( SQL_GROUPBY, (yyvsp[0].l) );}
11641#line 11642 "sql_parser.tab.c" /* yacc.c:1646 */
11642 break;
11643
11644 case 651:
11645#line 3678 "sql_parser.y" /* yacc.c:1646 */
11646 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
11647#line 11648 "sql_parser.tab.c" /* yacc.c:1646 */
11648 break;
11649
11650 case 652:
11651#line 3679 "sql_parser.y" /* yacc.c:1646 */
11652 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym)); }
11653#line 11654 "sql_parser.tab.c" /* yacc.c:1646 */
11654 break;
11655
11656 case 653:
11657#line 3683 "sql_parser.y" /* yacc.c:1646 */
11658 { (yyval.l) = append_symbol(L(),
11659 _symbol_create_list(SQL_COLUMN,(yyvsp[0].l))); }
11660#line 11661 "sql_parser.tab.c" /* yacc.c:1646 */
11661 break;
11662
11663 case 654:
11664#line 3686 "sql_parser.y" /* yacc.c:1646 */
11665 { (yyval.l) = append_symbol( (yyvsp[-2].l),
11666 _symbol_create_list(SQL_COLUMN,(yyvsp[0].l))); }
11667#line 11668 "sql_parser.tab.c" /* yacc.c:1646 */
11668 break;
11669
11670 case 655:
11671#line 3691 "sql_parser.y" /* yacc.c:1646 */
11672 { (yyval.sym) = NULL; }
11673#line 11674 "sql_parser.tab.c" /* yacc.c:1646 */
11674 break;
11675
11676 case 656:
11677#line 3692 "sql_parser.y" /* yacc.c:1646 */
11678 { (yyval.sym) = (yyvsp[0].sym); }
11679#line 11680 "sql_parser.tab.c" /* yacc.c:1646 */
11680 break;
11681
11682 case 657:
11683#line 3697 "sql_parser.y" /* yacc.c:1646 */
11684 { dlist *l = L();
11685 append_symbol(l, (yyvsp[-2].sym));
11686 append_symbol(l, (yyvsp[0].sym));
11687 (yyval.sym) = _symbol_create_list(SQL_OR, l ); }
11688#line 11689 "sql_parser.tab.c" /* yacc.c:1646 */
11689 break;
11690
11691 case 658:
11692#line 3701 "sql_parser.y" /* yacc.c:1646 */
11693 { (yyval.sym) = (yyvsp[0].sym); }
11694#line 11695 "sql_parser.tab.c" /* yacc.c:1646 */
11695 break;
11696
11697 case 659:
11698#line 3706 "sql_parser.y" /* yacc.c:1646 */
11699 { dlist *l = L();
11700 append_symbol(l, (yyvsp[-2].sym));
11701 append_symbol(l, (yyvsp[0].sym));
11702 (yyval.sym) = _symbol_create_list(SQL_AND, l ); }
11703#line 11704 "sql_parser.tab.c" /* yacc.c:1646 */
11704 break;
11705
11706 case 660:
11707#line 3710 "sql_parser.y" /* yacc.c:1646 */
11708 { (yyval.sym) = (yyvsp[0].sym); }
11709#line 11710 "sql_parser.tab.c" /* yacc.c:1646 */
11710 break;
11711
11712 case 661:
11713#line 3714 "sql_parser.y" /* yacc.c:1646 */
11714 { (yyval.sym) = NULL; }
11715#line 11716 "sql_parser.tab.c" /* yacc.c:1646 */
11716 break;
11717
11718 case 662:
11719#line 3716 "sql_parser.y" /* yacc.c:1646 */
11720 { (yyval.sym) = _symbol_create_list( SQL_ORDERBY, (yyvsp[0].l)); }
11721#line 11722 "sql_parser.tab.c" /* yacc.c:1646 */
11722 break;
11723
11724 case 663:
11725#line 3720 "sql_parser.y" /* yacc.c:1646 */
11726 { (yyval.sym) = NULL; }
11727#line 11728 "sql_parser.tab.c" /* yacc.c:1646 */
11728 break;
11729
11730 case 664:
11731#line 3721 "sql_parser.y" /* yacc.c:1646 */
11732 {
11733 sql_subtype *t = sql_bind_localtype("lng");
11734 (yyval.sym) = _newAtomNode( atom_int(SA, t, (yyvsp[0].l_val)));
11735 }
11736#line 11737 "sql_parser.tab.c" /* yacc.c:1646 */
11737 break;
11738
11739 case 665:
11740#line 3725 "sql_parser.y" /* yacc.c:1646 */
11741 { (yyval.sym) = (yyvsp[0].sym); }
11742#line 11743 "sql_parser.tab.c" /* yacc.c:1646 */
11743 break;
11744
11745 case 666:
11746#line 3729 "sql_parser.y" /* yacc.c:1646 */
11747 { (yyval.sym) = NULL; }
11748#line 11749 "sql_parser.tab.c" /* yacc.c:1646 */
11749 break;
11750
11751 case 667:
11752#line 3730 "sql_parser.y" /* yacc.c:1646 */
11753 {
11754 sql_subtype *t = sql_bind_localtype("lng");
11755 (yyval.sym) = _newAtomNode( atom_int(SA, t, (yyvsp[0].l_val)));
11756 }
11757#line 11758 "sql_parser.tab.c" /* yacc.c:1646 */
11758 break;
11759
11760 case 668:
11761#line 3734 "sql_parser.y" /* yacc.c:1646 */
11762 { (yyval.sym) = (yyvsp[0].sym); }
11763#line 11764 "sql_parser.tab.c" /* yacc.c:1646 */
11764 break;
11765
11766 case 669:
11767#line 3738 "sql_parser.y" /* yacc.c:1646 */
11768 { (yyval.sym) = NULL; }
11769#line 11770 "sql_parser.tab.c" /* yacc.c:1646 */
11770 break;
11771
11772 case 670:
11773#line 3739 "sql_parser.y" /* yacc.c:1646 */
11774 {
11775
11776 dlist *l = L();
11777
11778 append_symbol(l,
11779 _newAtomNode( atom_int(SA, sql_bind_localtype("lng"), (yyvsp[-1].l_val))) );
11780
11781 if ((yyvsp[0].sym))
11782 append_symbol(l,(yyvsp[0].sym));
11783
11784 (yyval.sym) = _symbol_create_list(SQL_SAMPLE, l);
11785 }
11786#line 11787 "sql_parser.tab.c" /* yacc.c:1646 */
11787 break;
11788
11789 case 671:
11790#line 3751 "sql_parser.y" /* yacc.c:1646 */
11791 {
11792
11793 dlist *l = L();
11794
11795 append_symbol(l,
11796 _newAtomNode( atom_float(SA, sql_bind_localtype("dbl"), strtod((yyvsp[-1].sval),NULL))) );
11797
11798 if ((yyvsp[0].sym))
11799 append_symbol(l,(yyvsp[0].sym));
11800
11801 (yyval.sym) = _symbol_create_list(SQL_SAMPLE, l);
11802 }
11803#line 11804 "sql_parser.tab.c" /* yacc.c:1646 */
11804 break;
11805
11806 case 672:
11807#line 3763 "sql_parser.y" /* yacc.c:1646 */
11808 { (yyval.sym) = (yyvsp[0].sym); }
11809#line 11810 "sql_parser.tab.c" /* yacc.c:1646 */
11810 break;
11811
11812 case 673:
11813#line 3767 "sql_parser.y" /* yacc.c:1646 */
11814 { (yyval.sym) = NULL; }
11815#line 11816 "sql_parser.tab.c" /* yacc.c:1646 */
11816 break;
11817
11818 case 674:
11819#line 3768 "sql_parser.y" /* yacc.c:1646 */
11820 {
11821 (yyval.sym) = _newAtomNode( atom_int(SA, sql_bind_localtype("int"), (yyvsp[0].i_val)));
11822 }
11823#line 11824 "sql_parser.tab.c" /* yacc.c:1646 */
11824 break;
11825
11826 case 675:
11827#line 3773 "sql_parser.y" /* yacc.c:1646 */
11828 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
11829#line 11830 "sql_parser.tab.c" /* yacc.c:1646 */
11830 break;
11831
11832 case 676:
11833#line 3775 "sql_parser.y" /* yacc.c:1646 */
11834 { (yyval.l) = append_symbol( (yyvsp[-2].l), (yyvsp[0].sym) ); }
11835#line 11836 "sql_parser.tab.c" /* yacc.c:1646 */
11836 break;
11837
11838 case 677:
11839#line 3780 "sql_parser.y" /* yacc.c:1646 */
11840 { dlist *l = L();
11841 append_symbol(l, (yyvsp[-2].sym));
11842 append_int(l, (yyvsp[-1].bval) | (((yyvsp[0].bval) == -1 ? !(yyvsp[-1].bval) : (yyvsp[0].bval)) << 1));
11843 (yyval.sym) = _symbol_create_list(SQL_COLUMN, l ); }
11844#line 11845 "sql_parser.tab.c" /* yacc.c:1646 */
11845 break;
11846
11847 case 678:
11848#line 3787 "sql_parser.y" /* yacc.c:1646 */
11849 { (yyval.bval) = TRUE; }
11850#line 11851 "sql_parser.tab.c" /* yacc.c:1646 */
11851 break;
11852
11853 case 679:
11854#line 3788 "sql_parser.y" /* yacc.c:1646 */
11855 { (yyval.bval) = TRUE; }
11856#line 11857 "sql_parser.tab.c" /* yacc.c:1646 */
11857 break;
11858
11859 case 680:
11860#line 3789 "sql_parser.y" /* yacc.c:1646 */
11861 { (yyval.bval) = FALSE; }
11862#line 11863 "sql_parser.tab.c" /* yacc.c:1646 */
11863 break;
11864
11865 case 681:
11866#line 3793 "sql_parser.y" /* yacc.c:1646 */
11867 { (yyval.bval) = -1; }
11868#line 11869 "sql_parser.tab.c" /* yacc.c:1646 */
11869 break;
11870
11871 case 682:
11872#line 3794 "sql_parser.y" /* yacc.c:1646 */
11873 { (yyval.bval) = TRUE; }
11874#line 11875 "sql_parser.tab.c" /* yacc.c:1646 */
11875 break;
11876
11877 case 683:
11878#line 3795 "sql_parser.y" /* yacc.c:1646 */
11879 { (yyval.bval) = FALSE; }
11880#line 11881 "sql_parser.tab.c" /* yacc.c:1646 */
11881 break;
11882
11883 case 693:
11884#line 3812 "sql_parser.y" /* yacc.c:1646 */
11885 { (yyval.sym) = (yyvsp[0].sym);
11886
11887 if ((yyval.sym)->token == SQL_EXISTS)
11888 (yyval.sym)->token = SQL_NOT_EXISTS;
11889 else if ((yyval.sym)->token == SQL_NOT_EXISTS)
11890 (yyval.sym)->token = SQL_EXISTS;
11891 else if ((yyval.sym)->token == SQL_NOT_BETWEEN)
11892 (yyval.sym)->token = SQL_BETWEEN;
11893 else if ((yyval.sym)->token == SQL_BETWEEN)
11894 (yyval.sym)->token = SQL_NOT_BETWEEN;
11895 else if ((yyval.sym)->token == SQL_NOT_LIKE)
11896 (yyval.sym)->token = SQL_LIKE;
11897 else if ((yyval.sym)->token == SQL_LIKE)
11898 (yyval.sym)->token = SQL_NOT_LIKE;
11899 else
11900 (yyval.sym) = _symbol_create_symbol(SQL_NOT, (yyvsp[0].sym)); }
11901#line 11902 "sql_parser.tab.c" /* yacc.c:1646 */
11902 break;
11903
11904 case 694:
11905#line 3828 "sql_parser.y" /* yacc.c:1646 */
11906 { (yyval.sym) = (yyvsp[0].sym); }
11907#line 11908 "sql_parser.tab.c" /* yacc.c:1646 */
11908 break;
11909
11910 case 695:
11911#line 3833 "sql_parser.y" /* yacc.c:1646 */
11912 { dlist *l = L();
11913
11914 append_symbol(l, (yyvsp[-2].sym));
11915 append_string(l, (yyvsp[-1].sval));
11916 append_symbol(l, (yyvsp[0].sym));
11917 (yyval.sym) = _symbol_create_list(SQL_COMPARE, l ); }
11918#line 11919 "sql_parser.tab.c" /* yacc.c:1646 */
11919 break;
11920
11921 case 696:
11922#line 3840 "sql_parser.y" /* yacc.c:1646 */
11923 { dlist *l = L();
11924
11925 append_symbol(l, (yyvsp[-2].sym));
11926 append_string(l, sa_strdup(SA, "="));
11927 append_symbol(l, (yyvsp[0].sym));
11928 (yyval.sym) = _symbol_create_list(SQL_COMPARE, l ); }
11929#line 11930 "sql_parser.tab.c" /* yacc.c:1646 */
11930 break;
11931
11932 case 697:
11933#line 3850 "sql_parser.y" /* yacc.c:1646 */
11934 { dlist *l = L();
11935 append_symbol(l, (yyvsp[-5].sym));
11936 append_int(l, (yyvsp[-3].i_val));
11937 append_symbol(l, (yyvsp[-2].sym));
11938 append_symbol(l, (yyvsp[0].sym));
11939 (yyval.sym) = _symbol_create_list(SQL_NOT_BETWEEN, l ); }
11940#line 11941 "sql_parser.tab.c" /* yacc.c:1646 */
11941 break;
11942
11943 case 698:
11944#line 3857 "sql_parser.y" /* yacc.c:1646 */
11945 { dlist *l = L();
11946 append_symbol(l, (yyvsp[-5].sym));
11947 append_int(l, (yyvsp[-3].i_val));
11948 append_symbol(l, (yyvsp[-2].sym));
11949 append_symbol(l, (yyvsp[0].sym));
11950 (yyval.sym) = _symbol_create_list(SQL_BETWEEN, l ); }
11951#line 11952 "sql_parser.tab.c" /* yacc.c:1646 */
11952 break;
11953
11954 case 699:
11955#line 3866 "sql_parser.y" /* yacc.c:1646 */
11956 { (yyval.i_val) = 0; }
11957#line 11958 "sql_parser.tab.c" /* yacc.c:1646 */
11958 break;
11959
11960 case 700:
11961#line 3867 "sql_parser.y" /* yacc.c:1646 */
11962 { (yyval.i_val) = 0; }
11963#line 11964 "sql_parser.tab.c" /* yacc.c:1646 */
11964 break;
11965
11966 case 701:
11967#line 3868 "sql_parser.y" /* yacc.c:1646 */
11968 { (yyval.i_val) = 1; }
11969#line 11970 "sql_parser.tab.c" /* yacc.c:1646 */
11970 break;
11971
11972 case 702:
11973#line 3873 "sql_parser.y" /* yacc.c:1646 */
11974 { dlist *l = L();
11975 append_symbol(l, (yyvsp[-2].sym));
11976 append_symbol(l, (yyvsp[0].sym));
11977 append_int(l, FALSE); /* case sensitive */
11978 append_int(l, TRUE); /* anti */
11979 (yyval.sym) = _symbol_create_list( SQL_LIKE, l ); }
11980#line 11981 "sql_parser.tab.c" /* yacc.c:1646 */
11981 break;
11982
11983 case 703:
11984#line 3880 "sql_parser.y" /* yacc.c:1646 */
11985 { dlist *l = L();
11986 append_symbol(l, (yyvsp[-2].sym));
11987 append_symbol(l, (yyvsp[0].sym));
11988 append_int(l, TRUE); /* case insensitive */
11989 append_int(l, TRUE); /* anti */
11990 (yyval.sym) = _symbol_create_list( SQL_LIKE, l ); }
11991#line 11992 "sql_parser.tab.c" /* yacc.c:1646 */
11992 break;
11993
11994 case 704:
11995#line 3887 "sql_parser.y" /* yacc.c:1646 */
11996 { dlist *l = L();
11997 append_symbol(l, (yyvsp[-2].sym));
11998 append_symbol(l, (yyvsp[0].sym));
11999 append_int(l, FALSE); /* case sensitive */
12000 append_int(l, FALSE); /* anti */
12001 (yyval.sym) = _symbol_create_list( SQL_LIKE, l ); }
12002#line 12003 "sql_parser.tab.c" /* yacc.c:1646 */
12003 break;
12004
12005 case 705:
12006#line 3894 "sql_parser.y" /* yacc.c:1646 */
12007 { dlist *l = L();
12008 append_symbol(l, (yyvsp[-2].sym));
12009 append_symbol(l, (yyvsp[0].sym));
12010 append_int(l, TRUE); /* case insensitive */
12011 append_int(l, FALSE); /* anti */
12012 (yyval.sym) = _symbol_create_list( SQL_LIKE, l ); }
12013#line 12014 "sql_parser.tab.c" /* yacc.c:1646 */
12014 break;
12015
12016 case 706:
12017#line 3904 "sql_parser.y" /* yacc.c:1646 */
12018 { dlist *l = L();
12019 append_symbol(l, (yyvsp[0].sym));
12020 (yyval.sym) = _symbol_create_list(SQL_ESCAPE, l ); }
12021#line 12022 "sql_parser.tab.c" /* yacc.c:1646 */
12022 break;
12023
12024 case 707:
12025#line 3908 "sql_parser.y" /* yacc.c:1646 */
12026 { const char *s = (yyvsp[0].sval);
12027 if (_strlen(s) != 1) {
12028 yyerror(m, SQLSTATE(22019) "ESCAPE must be one character");
12029 (yyval.sym) = NULL;
12030 YYABORT;
12031 } else {
12032 dlist *l = L();
12033 append_symbol(l, (yyvsp[-2].sym));
12034 append_string(l, s);
12035 (yyval.sym) = _symbol_create_list(SQL_ESCAPE, l);
12036 }
12037 }
12038#line 12039 "sql_parser.tab.c" /* yacc.c:1646 */
12039 break;
12040
12041 case 708:
12042#line 3923 "sql_parser.y" /* yacc.c:1646 */
12043 { (yyval.sym) = _symbol_create_symbol( SQL_IS_NOT_NULL, (yyvsp[-3].sym) );}
12044#line 12045 "sql_parser.tab.c" /* yacc.c:1646 */
12045 break;
12046
12047 case 709:
12048#line 3924 "sql_parser.y" /* yacc.c:1646 */
12049 { (yyval.sym) = _symbol_create_symbol( SQL_IS_NULL, (yyvsp[-2].sym) ); }
12050#line 12051 "sql_parser.tab.c" /* yacc.c:1646 */
12051 break;
12052
12053 case 710:
12054#line 3929 "sql_parser.y" /* yacc.c:1646 */
12055 { dlist *l = L();
12056
12057 append_symbol(l, (yyvsp[-4].sym));
12058 append_list(l, (yyvsp[-1].l));
12059 (yyval.sym) = _symbol_create_list(SQL_NOT_IN, l ); }
12060#line 12061 "sql_parser.tab.c" /* yacc.c:1646 */
12061 break;
12062
12063 case 711:
12064#line 3935 "sql_parser.y" /* yacc.c:1646 */
12065 { dlist *l = L();
12066
12067 append_symbol(l, (yyvsp[-4].sym));
12068 append_list(l, (yyvsp[-1].l));
12069 (yyval.sym) = _symbol_create_list(SQL_IN, l ); }
12070#line 12071 "sql_parser.tab.c" /* yacc.c:1646 */
12071 break;
12072
12073 case 712:
12074#line 3941 "sql_parser.y" /* yacc.c:1646 */
12075 { dlist *l = L();
12076 append_list(l, (yyvsp[-5].l));
12077 append_list(l, (yyvsp[-1].l));
12078 (yyval.sym) = _symbol_create_list(SQL_NOT_IN, l ); }
12079#line 12080 "sql_parser.tab.c" /* yacc.c:1646 */
12080 break;
12081
12082 case 713:
12083#line 3946 "sql_parser.y" /* yacc.c:1646 */
12084 { dlist *l = L();
12085 append_list(l, (yyvsp[-5].l));
12086 append_list(l, (yyvsp[-1].l));
12087 (yyval.sym) = _symbol_create_list(SQL_IN, l ); }
12088#line 12089 "sql_parser.tab.c" /* yacc.c:1646 */
12089 break;
12090
12091 case 714:
12092#line 3954 "sql_parser.y" /* yacc.c:1646 */
12093 { (yyval.l) = append_symbol( L(), (yyvsp[0].sym));}
12094#line 12095 "sql_parser.tab.c" /* yacc.c:1646 */
12095 break;
12096
12097 case 715:
12098#line 3956 "sql_parser.y" /* yacc.c:1646 */
12099 { (yyval.l) = append_symbol( (yyvsp[-2].l), (yyvsp[0].sym)); }
12100#line 12101 "sql_parser.tab.c" /* yacc.c:1646 */
12101 break;
12102
12103 case 716:
12104#line 3962 "sql_parser.y" /* yacc.c:1646 */
12105 { dlist *l = L();
12106 append_symbol(l, (yyvsp[-3].sym));
12107 append_string(l, (yyvsp[-2].sval));
12108 append_symbol(l, (yyvsp[0].sym));
12109 append_int(l, (yyvsp[-1].i_val));
12110 (yyval.sym) = _symbol_create_list(SQL_COMPARE, l ); }
12111#line 12112 "sql_parser.tab.c" /* yacc.c:1646 */
12112 break;
12113
12114 case 717:
12115#line 3969 "sql_parser.y" /* yacc.c:1646 */
12116 { dlist *l = L();
12117 append_symbol(l, (yyvsp[-3].sym));
12118 append_string(l, sa_strdup(SA, "="));
12119 append_symbol(l, (yyvsp[0].sym));
12120 append_int(l, (yyvsp[-1].i_val));
12121 (yyval.sym) = _symbol_create_list(SQL_COMPARE, l ); }
12122#line 12123 "sql_parser.tab.c" /* yacc.c:1646 */
12123 break;
12124
12125 case 718:
12126#line 3978 "sql_parser.y" /* yacc.c:1646 */
12127 { (yyval.i_val) = 0; }
12128#line 12129 "sql_parser.tab.c" /* yacc.c:1646 */
12129 break;
12130
12131 case 719:
12132#line 3979 "sql_parser.y" /* yacc.c:1646 */
12133 { (yyval.i_val) = 0; }
12134#line 12135 "sql_parser.tab.c" /* yacc.c:1646 */
12135 break;
12136
12137 case 720:
12138#line 3980 "sql_parser.y" /* yacc.c:1646 */
12139 { (yyval.i_val) = 1; }
12140#line 12141 "sql_parser.tab.c" /* yacc.c:1646 */
12141 break;
12142
12143 case 721:
12144#line 3984 "sql_parser.y" /* yacc.c:1646 */
12145 { (yyval.sym) = _symbol_create_symbol( SQL_EXISTS, (yyvsp[0].sym) ); }
12146#line 12147 "sql_parser.tab.c" /* yacc.c:1646 */
12147 break;
12148
12149 case 722:
12150#line 3988 "sql_parser.y" /* yacc.c:1646 */
12151 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
12152#line 12153 "sql_parser.tab.c" /* yacc.c:1646 */
12153 break;
12154
12155 case 723:
12156#line 3989 "sql_parser.y" /* yacc.c:1646 */
12157 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym)); }
12158#line 12159 "sql_parser.tab.c" /* yacc.c:1646 */
12159 break;
12160
12161 case 724:
12162#line 3993 "sql_parser.y" /* yacc.c:1646 */
12163 { (yyval.l) = (yyvsp[-1].l); }
12164#line 12165 "sql_parser.tab.c" /* yacc.c:1646 */
12165 break;
12166
12167 case 725:
12168#line 3998 "sql_parser.y" /* yacc.c:1646 */
12169 { dlist *l = L();
12170 append_list(l, (yyvsp[-2].l));
12171 append_list(l, (yyvsp[-1].l));
12172 append_list(l, (yyvsp[0].l));
12173 (yyval.sym) = _symbol_create_list(SQL_FILTER, l ); }
12174#line 12175 "sql_parser.tab.c" /* yacc.c:1646 */
12175 break;
12176
12177 case 726:
12178#line 4006 "sql_parser.y" /* yacc.c:1646 */
12179 { (yyval.sym) = (yyvsp[-1].sym); }
12180#line 12181 "sql_parser.tab.c" /* yacc.c:1646 */
12181 break;
12182
12183 case 727:
12184#line 4007 "sql_parser.y" /* yacc.c:1646 */
12185 { (yyval.sym) = (yyvsp[-1].sym); }
12186#line 12187 "sql_parser.tab.c" /* yacc.c:1646 */
12187 break;
12188
12189 case 728:
12190#line 4011 "sql_parser.y" /* yacc.c:1646 */
12191 { (yyval.sym) = (yyvsp[-1].sym); }
12192#line 12193 "sql_parser.tab.c" /* yacc.c:1646 */
12193 break;
12194
12195 case 729:
12196#line 4012 "sql_parser.y" /* yacc.c:1646 */
12197 { (yyval.sym) = (yyvsp[-1].sym); }
12198#line 12199 "sql_parser.tab.c" /* yacc.c:1646 */
12199 break;
12200
12201 case 731:
12202#line 4019 "sql_parser.y" /* yacc.c:1646 */
12203 { dlist *l = L();
12204 append_list(l,
12205 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "sql_add")));
12206 append_symbol(l, (yyvsp[-2].sym));
12207 append_symbol(l, (yyvsp[0].sym));
12208 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12209#line 12210 "sql_parser.tab.c" /* yacc.c:1646 */
12210 break;
12211
12212 case 732:
12213#line 4026 "sql_parser.y" /* yacc.c:1646 */
12214 { dlist *l = L();
12215 append_list(l,
12216 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "sql_sub")));
12217 append_symbol(l, (yyvsp[-2].sym));
12218 append_symbol(l, (yyvsp[0].sym));
12219 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12220#line 12221 "sql_parser.tab.c" /* yacc.c:1646 */
12221 break;
12222
12223 case 733:
12224#line 4033 "sql_parser.y" /* yacc.c:1646 */
12225 { dlist *l = L();
12226 append_list(l,
12227 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "sql_mul")));
12228 append_symbol(l, (yyvsp[-2].sym));
12229 append_symbol(l, (yyvsp[0].sym));
12230 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12231#line 12232 "sql_parser.tab.c" /* yacc.c:1646 */
12232 break;
12233
12234 case 734:
12235#line 4040 "sql_parser.y" /* yacc.c:1646 */
12236 { dlist *l = L();
12237 append_list(l,
12238 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "sql_div")));
12239 append_symbol(l, (yyvsp[-2].sym));
12240 append_symbol(l, (yyvsp[0].sym));
12241 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12242#line 12243 "sql_parser.tab.c" /* yacc.c:1646 */
12243 break;
12244
12245 case 735:
12246#line 4047 "sql_parser.y" /* yacc.c:1646 */
12247 { dlist *l = L();
12248 append_list(l,
12249 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "mod")));
12250 append_symbol(l, (yyvsp[-2].sym));
12251 append_symbol(l, (yyvsp[0].sym));
12252 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12253#line 12254 "sql_parser.tab.c" /* yacc.c:1646 */
12254 break;
12255
12256 case 736:
12257#line 4054 "sql_parser.y" /* yacc.c:1646 */
12258 { dlist *l = L();
12259 append_list(l,
12260 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "bit_xor")));
12261 append_symbol(l, (yyvsp[-2].sym));
12262 append_symbol(l, (yyvsp[0].sym));
12263 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12264#line 12265 "sql_parser.tab.c" /* yacc.c:1646 */
12265 break;
12266
12267 case 737:
12268#line 4061 "sql_parser.y" /* yacc.c:1646 */
12269 { dlist *l = L();
12270 append_list(l,
12271 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "bit_and")));
12272 append_symbol(l, (yyvsp[-2].sym));
12273 append_symbol(l, (yyvsp[0].sym));
12274 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12275#line 12276 "sql_parser.tab.c" /* yacc.c:1646 */
12276 break;
12277
12278 case 738:
12279#line 4068 "sql_parser.y" /* yacc.c:1646 */
12280 { dlist *l = L();
12281 append_list(l,
12282 append_string(L(), sa_strdup(SA, "mbr_overlap")));
12283 append_symbol(l, (yyvsp[-2].sym));
12284 append_symbol(l, (yyvsp[0].sym));
12285 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12286#line 12287 "sql_parser.tab.c" /* yacc.c:1646 */
12287 break;
12288
12289 case 739:
12290#line 4075 "sql_parser.y" /* yacc.c:1646 */
12291 { dlist *l = L();
12292 append_list(l,
12293 append_string(L(), sa_strdup(SA, "mbr_overlap_or_left")));
12294 append_symbol(l, (yyvsp[-2].sym));
12295 append_symbol(l, (yyvsp[0].sym));
12296 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12297#line 12298 "sql_parser.tab.c" /* yacc.c:1646 */
12298 break;
12299
12300 case 740:
12301#line 4082 "sql_parser.y" /* yacc.c:1646 */
12302 { dlist *l = L();
12303 append_list(l,
12304 append_string(L(), sa_strdup(SA, "mbr_overlap_or_right")));
12305 append_symbol(l, (yyvsp[-2].sym));
12306 append_symbol(l, (yyvsp[0].sym));
12307 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12308#line 12309 "sql_parser.tab.c" /* yacc.c:1646 */
12309 break;
12310
12311 case 741:
12312#line 4089 "sql_parser.y" /* yacc.c:1646 */
12313 { dlist *l = L();
12314 append_list(l,
12315 append_string(L(), sa_strdup(SA, "mbr_overlap_or_below")));
12316 append_symbol(l, (yyvsp[-2].sym));
12317 append_symbol(l, (yyvsp[0].sym));
12318 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12319#line 12320 "sql_parser.tab.c" /* yacc.c:1646 */
12320 break;
12321
12322 case 742:
12323#line 4096 "sql_parser.y" /* yacc.c:1646 */
12324 { dlist *l = L();
12325 append_list(l, append_string(L(), sa_strdup(SA, "mbr_below")));
12326 append_symbol(l, (yyvsp[-2].sym));
12327 append_symbol(l, (yyvsp[0].sym));
12328 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12329#line 12330 "sql_parser.tab.c" /* yacc.c:1646 */
12330 break;
12331
12332 case 743:
12333#line 4102 "sql_parser.y" /* yacc.c:1646 */
12334 { dlist *l = L();
12335 append_list(l,
12336 append_string(L(), sa_strdup(SA, "mbr_overlap_or_above")));
12337 append_symbol(l, (yyvsp[-2].sym));
12338 append_symbol(l, (yyvsp[0].sym));
12339 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12340#line 12341 "sql_parser.tab.c" /* yacc.c:1646 */
12341 break;
12342
12343 case 744:
12344#line 4109 "sql_parser.y" /* yacc.c:1646 */
12345 { dlist *l = L();
12346 append_list(l,
12347 append_string(L(), sa_strdup(SA, "mbr_above")));
12348 append_symbol(l, (yyvsp[-2].sym));
12349 append_symbol(l, (yyvsp[0].sym));
12350 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12351#line 12352 "sql_parser.tab.c" /* yacc.c:1646 */
12352 break;
12353
12354 case 745:
12355#line 4116 "sql_parser.y" /* yacc.c:1646 */
12356 { dlist *l = L();
12357 append_list(l,
12358 append_string(L(), sa_strdup(SA, "mbr_distance")));
12359 append_symbol(l, (yyvsp[-2].sym));
12360 append_symbol(l, (yyvsp[0].sym));
12361 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12362#line 12363 "sql_parser.tab.c" /* yacc.c:1646 */
12363 break;
12364
12365 case 746:
12366#line 4123 "sql_parser.y" /* yacc.c:1646 */
12367 { dlist *l = L();
12368 append_list(l,
12369 append_string(L(), sa_strdup(SA, "mbr_contained")));
12370 append_symbol(l, (yyvsp[-2].sym));
12371 append_symbol(l, (yyvsp[0].sym));
12372 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12373#line 12374 "sql_parser.tab.c" /* yacc.c:1646 */
12374 break;
12375
12376 case 747:
12377#line 4130 "sql_parser.y" /* yacc.c:1646 */
12378 { dlist *l = L();
12379 append_list(l,
12380 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "bit_or")));
12381 append_symbol(l, (yyvsp[-2].sym));
12382 append_symbol(l, (yyvsp[0].sym));
12383 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12384#line 12385 "sql_parser.tab.c" /* yacc.c:1646 */
12385 break;
12386
12387 case 748:
12388#line 4137 "sql_parser.y" /* yacc.c:1646 */
12389 { dlist *l = L();
12390 append_list(l,
12391 append_string(L(), sa_strdup(SA, "mbr_contains")));
12392 append_symbol(l, (yyvsp[-2].sym));
12393 append_symbol(l, (yyvsp[0].sym));
12394 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12395#line 12396 "sql_parser.tab.c" /* yacc.c:1646 */
12396 break;
12397
12398 case 749:
12399#line 4144 "sql_parser.y" /* yacc.c:1646 */
12400 { dlist *l = L();
12401 append_list(l,
12402 append_string(L(), sa_strdup(SA, "mbr_equal")));
12403 append_symbol(l, (yyvsp[-2].sym));
12404 append_symbol(l, (yyvsp[0].sym));
12405 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12406#line 12407 "sql_parser.tab.c" /* yacc.c:1646 */
12407 break;
12408
12409 case 750:
12410#line 4151 "sql_parser.y" /* yacc.c:1646 */
12411 { dlist *l = L();
12412 append_list(l,
12413 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "bit_not")));
12414 append_symbol(l, (yyvsp[0].sym));
12415 (yyval.sym) = _symbol_create_list( SQL_UNOP, l ); }
12416#line 12417 "sql_parser.tab.c" /* yacc.c:1646 */
12417 break;
12418
12419 case 751:
12420#line 4157 "sql_parser.y" /* yacc.c:1646 */
12421 { dlist *l = L();
12422 append_list(l,
12423 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "left_shift")));
12424 append_symbol(l, (yyvsp[-2].sym));
12425 append_symbol(l, (yyvsp[0].sym));
12426 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12427#line 12428 "sql_parser.tab.c" /* yacc.c:1646 */
12428 break;
12429
12430 case 752:
12431#line 4164 "sql_parser.y" /* yacc.c:1646 */
12432 { dlist *l = L();
12433 append_list(l,
12434 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "right_shift")));
12435 append_symbol(l, (yyvsp[-2].sym));
12436 append_symbol(l, (yyvsp[0].sym));
12437 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12438#line 12439 "sql_parser.tab.c" /* yacc.c:1646 */
12439 break;
12440
12441 case 753:
12442#line 4171 "sql_parser.y" /* yacc.c:1646 */
12443 { dlist *l = L();
12444 append_list(l,
12445 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "left_shift_assign")));
12446 append_symbol(l, (yyvsp[-2].sym));
12447 append_symbol(l, (yyvsp[0].sym));
12448 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12449#line 12450 "sql_parser.tab.c" /* yacc.c:1646 */
12450 break;
12451
12452 case 754:
12453#line 4178 "sql_parser.y" /* yacc.c:1646 */
12454 { dlist *l = L();
12455 append_list(l,
12456 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "right_shift_assign")));
12457 append_symbol(l, (yyvsp[-2].sym));
12458 append_symbol(l, (yyvsp[0].sym));
12459 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12460#line 12461 "sql_parser.tab.c" /* yacc.c:1646 */
12461 break;
12462
12463 case 755:
12464#line 4185 "sql_parser.y" /* yacc.c:1646 */
12465 { (yyval.sym) = (yyvsp[0].sym); }
12466#line 12467 "sql_parser.tab.c" /* yacc.c:1646 */
12467 break;
12468
12469 case 756:
12470#line 4187 "sql_parser.y" /* yacc.c:1646 */
12471 {
12472 (yyval.sym) = NULL;
12473 assert(((yyvsp[0].sym)->token != SQL_COLUMN && (yyvsp[0].sym)->token != SQL_IDENT) || (yyvsp[0].sym)->data.lval->h->type != type_lng);
12474 if (((yyvsp[0].sym)->token == SQL_COLUMN || (yyvsp[0].sym)->token == SQL_IDENT) && (yyvsp[0].sym)->data.lval->h->type == type_int) {
12475 atom *a = sql_bind_arg(m, (yyvsp[0].sym)->data.lval->h->data.i_val);
12476 if (!atom_neg(a)) {
12477 (yyval.sym) = (yyvsp[0].sym);
12478 } else {
12479 yyerror(m, SQLSTATE(22003) "value too large or not a number");
12480 (yyval.sym) = NULL;
12481 YYABORT;
12482 }
12483 }
12484 if (!(yyval.sym)) {
12485 dlist *l = L();
12486 append_list(l,
12487 append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "sql_neg")));
12488 append_symbol(l, (yyvsp[0].sym));
12489 (yyval.sym) = _symbol_create_list( SQL_UNOP, l );
12490 }
12491 }
12492#line 12493 "sql_parser.tab.c" /* yacc.c:1646 */
12493 break;
12494
12495 case 757:
12496#line 4208 "sql_parser.y" /* yacc.c:1646 */
12497 { (yyval.sym) = (yyvsp[-1].sym); }
12498#line 12499 "sql_parser.tab.c" /* yacc.c:1646 */
12499 break;
12500
12501 case 758:
12502#line 4212 "sql_parser.y" /* yacc.c:1646 */
12503 { (yyval.sym) = (yyvsp[0].sym); }
12504#line 12505 "sql_parser.tab.c" /* yacc.c:1646 */
12505 break;
12506
12507 case 761:
12508#line 4218 "sql_parser.y" /* yacc.c:1646 */
12509 { (yyval.sym) = _symbol_create_list( SQL_COLUMN,
12510 append_string(L(), sa_strdup(SA, "current_user"))); }
12511#line 12512 "sql_parser.tab.c" /* yacc.c:1646 */
12512 break;
12513
12514 case 762:
12515#line 4220 "sql_parser.y" /* yacc.c:1646 */
12516 { (yyval.sym) = _symbol_create_list( SQL_COLUMN,
12517 append_string(L(), sa_strdup(SA, "current_role"))); }
12518#line 12519 "sql_parser.tab.c" /* yacc.c:1646 */
12519 break;
12520
12521 case 764:
12522#line 4223 "sql_parser.y" /* yacc.c:1646 */
12523 { (yyval.sym) = _symbol_create_list( SQL_COLUMN, (yyvsp[0].l)); }
12524#line 12525 "sql_parser.tab.c" /* yacc.c:1646 */
12525 break;
12526
12527 case 768:
12528#line 4227 "sql_parser.y" /* yacc.c:1646 */
12529 { (yyval.sym) = _symbol_create_list( SQL_NEXT, (yyvsp[0].l)); }
12530#line 12531 "sql_parser.tab.c" /* yacc.c:1646 */
12531 break;
12532
12533 case 776:
12534#line 4239 "sql_parser.y" /* yacc.c:1646 */
12535 {
12536 int nr = (m->params)?list_length(m->params):0;
12537
12538 sql_add_param(m, NULL, NULL);
12539 (yyval.sym) = _symbol_create_int( SQL_PARAMETER, nr );
12540 }
12541#line 12542 "sql_parser.tab.c" /* yacc.c:1646 */
12542 break;
12543
12544 case 777:
12545#line 4248 "sql_parser.y" /* yacc.c:1646 */
12546 { (yyval.sym) = _symbol_create_list( SQL_RANK, append_list(append_symbol(L(), (yyvsp[-4].sym)), (yyvsp[-1].l))); }
12547#line 12548 "sql_parser.tab.c" /* yacc.c:1646 */
12548 break;
12549
12550 case 778:
12551#line 4250 "sql_parser.y" /* yacc.c:1646 */
12552 { (yyval.sym) = _symbol_create_list( SQL_RANK, append_string(append_symbol(L(), (yyvsp[-2].sym)), (yyvsp[0].sval))); }
12553#line 12554 "sql_parser.tab.c" /* yacc.c:1646 */
12554 break;
12555
12556 case 779:
12557#line 4255 "sql_parser.y" /* yacc.c:1646 */
12558 { dlist *l = L();
12559 append_list(l, (yyvsp[-2].l));
12560 append_list(l, NULL);
12561 (yyval.sym) = _symbol_create_list( SQL_RANK, l ); }
12562#line 12563 "sql_parser.tab.c" /* yacc.c:1646 */
12563 break;
12564
12565 case 780:
12566#line 4260 "sql_parser.y" /* yacc.c:1646 */
12567 { dlist *l = L();
12568 append_list(l, (yyvsp[-3].l));
12569 append_list(l, (yyvsp[-1].l));
12570 (yyval.sym) = _symbol_create_list( SQL_RANK, l ); }
12571#line 12572 "sql_parser.tab.c" /* yacc.c:1646 */
12572 break;
12573
12574 case 782:
12575#line 4269 "sql_parser.y" /* yacc.c:1646 */
12576 { (yyval.l) = append_symbol(append_symbol(append_symbol(append_string(L(), (yyvsp[-3].sval)), (yyvsp[-2].sym)), (yyvsp[-1].sym)), (yyvsp[0].sym)); }
12577#line 12578 "sql_parser.tab.c" /* yacc.c:1646 */
12578 break;
12579
12580 case 783:
12581#line 4273 "sql_parser.y" /* yacc.c:1646 */
12582 { (yyval.sval) = NULL; }
12583#line 12584 "sql_parser.tab.c" /* yacc.c:1646 */
12584 break;
12585
12586 case 784:
12587#line 4274 "sql_parser.y" /* yacc.c:1646 */
12588 { (yyval.sval) = (yyvsp[0].sval); }
12589#line 12590 "sql_parser.tab.c" /* yacc.c:1646 */
12590 break;
12591
12592 case 785:
12593#line 4278 "sql_parser.y" /* yacc.c:1646 */
12594 { (yyval.sym) = NULL; }
12595#line 12596 "sql_parser.tab.c" /* yacc.c:1646 */
12596 break;
12597
12598 case 786:
12599#line 4280 "sql_parser.y" /* yacc.c:1646 */
12600 { (yyval.sym) = _symbol_create_list( SQL_GROUPBY, (yyvsp[0].l) ); }
12601#line 12602 "sql_parser.tab.c" /* yacc.c:1646 */
12602 break;
12603
12604 case 787:
12605#line 4284 "sql_parser.y" /* yacc.c:1646 */
12606 { (yyval.sym) = NULL; }
12607#line 12608 "sql_parser.tab.c" /* yacc.c:1646 */
12608 break;
12609
12610 case 788:
12611#line 4286 "sql_parser.y" /* yacc.c:1646 */
12612 { (yyval.sym) = _symbol_create_list( SQL_ORDERBY, (yyvsp[0].l) ); }
12613#line 12614 "sql_parser.tab.c" /* yacc.c:1646 */
12614 break;
12615
12616 case 789:
12617#line 4290 "sql_parser.y" /* yacc.c:1646 */
12618 { (yyval.sym) = NULL; }
12619#line 12620 "sql_parser.tab.c" /* yacc.c:1646 */
12620 break;
12621
12622 case 790:
12623#line 4292 "sql_parser.y" /* yacc.c:1646 */
12624 { (yyval.sym) = _symbol_create_list( SQL_FRAME, append_int(append_int((yyvsp[-1].l), (yyvsp[-2].i_val)), (yyvsp[0].i_val))); }
12625#line 12626 "sql_parser.tab.c" /* yacc.c:1646 */
12626 break;
12627
12628 case 791:
12629#line 4296 "sql_parser.y" /* yacc.c:1646 */
12630 { (yyval.i_val) = FRAME_ROWS; }
12631#line 12632 "sql_parser.tab.c" /* yacc.c:1646 */
12632 break;
12633
12634 case 792:
12635#line 4297 "sql_parser.y" /* yacc.c:1646 */
12636 { (yyval.i_val) = FRAME_RANGE; }
12637#line 12638 "sql_parser.tab.c" /* yacc.c:1646 */
12638 break;
12639
12640 case 793:
12641#line 4298 "sql_parser.y" /* yacc.c:1646 */
12642 { (yyval.i_val) = FRAME_GROUPS; }
12643#line 12644 "sql_parser.tab.c" /* yacc.c:1646 */
12644 break;
12645
12646 case 794:
12647#line 4302 "sql_parser.y" /* yacc.c:1646 */
12648 { dlist *l = L(); append_symbol(l, (yyvsp[0].sym));
12649 symbol *s = _symbol_create_int( SQL_FOLLOWING, CURRENT_ROW_BOUND);
12650 dlist *l2 = append_symbol(L(), s);
12651 symbol *sym = _symbol_create_list( SQL_CURRENT_ROW, l2);
12652 append_symbol(l, sym);
12653 (yyval.l) = l; }
12654#line 12655 "sql_parser.tab.c" /* yacc.c:1646 */
12655 break;
12656
12657 case 795:
12658#line 4308 "sql_parser.y" /* yacc.c:1646 */
12659 { (yyval.l) = (yyvsp[0].l); }
12660#line 12661 "sql_parser.tab.c" /* yacc.c:1646 */
12661 break;
12662
12663 case 796:
12664#line 4312 "sql_parser.y" /* yacc.c:1646 */
12665 { symbol *s = _symbol_create_int( SQL_PRECEDING, UNBOUNDED_PRECEDING_BOUND);
12666 dlist *l2 = append_symbol(L(), s);
12667 (yyval.sym) = _symbol_create_list( SQL_PRECEDING, l2); }
12668#line 12669 "sql_parser.tab.c" /* yacc.c:1646 */
12669 break;
12670
12671 case 797:
12672#line 4315 "sql_parser.y" /* yacc.c:1646 */
12673 { dlist *l2 = append_symbol(L(), (yyvsp[-1].sym));
12674 (yyval.sym) = _symbol_create_list( SQL_PRECEDING, l2); }
12675#line 12676 "sql_parser.tab.c" /* yacc.c:1646 */
12676 break;
12677
12678 case 798:
12679#line 4317 "sql_parser.y" /* yacc.c:1646 */
12680 { symbol *s = _symbol_create_int( SQL_PRECEDING, CURRENT_ROW_BOUND);
12681 dlist *l = append_symbol(L(), s);
12682 (yyval.sym) = _symbol_create_list( SQL_CURRENT_ROW, l); }
12683#line 12684 "sql_parser.tab.c" /* yacc.c:1646 */
12684 break;
12685
12686 case 801:
12687#line 4328 "sql_parser.y" /* yacc.c:1646 */
12688 { (yyval.l) = append_symbol(append_symbol(L(), (yyvsp[-2].sym)), (yyvsp[0].sym)); }
12689#line 12690 "sql_parser.tab.c" /* yacc.c:1646 */
12690 break;
12691
12692 case 802:
12693#line 4332 "sql_parser.y" /* yacc.c:1646 */
12694 { symbol *s = _symbol_create_int( SQL_FOLLOWING, UNBOUNDED_FOLLOWING_BOUND);
12695 dlist *l2 = append_symbol(L(), s);
12696 (yyval.sym) = _symbol_create_list( SQL_FOLLOWING, l2); }
12697#line 12698 "sql_parser.tab.c" /* yacc.c:1646 */
12698 break;
12699
12700 case 803:
12701#line 4335 "sql_parser.y" /* yacc.c:1646 */
12702 { dlist *l2 = append_symbol(L(), (yyvsp[-1].sym));
12703 (yyval.sym) = _symbol_create_list( SQL_FOLLOWING, l2); }
12704#line 12705 "sql_parser.tab.c" /* yacc.c:1646 */
12705 break;
12706
12707 case 804:
12708#line 4340 "sql_parser.y" /* yacc.c:1646 */
12709 { (yyval.i_val) = EXCLUDE_NONE; }
12710#line 12711 "sql_parser.tab.c" /* yacc.c:1646 */
12711 break;
12712
12713 case 805:
12714#line 4341 "sql_parser.y" /* yacc.c:1646 */
12715 { (yyval.i_val) = EXCLUDE_CURRENT_ROW; }
12716#line 12717 "sql_parser.tab.c" /* yacc.c:1646 */
12717 break;
12718
12719 case 806:
12720#line 4342 "sql_parser.y" /* yacc.c:1646 */
12721 { (yyval.i_val) = EXCLUDE_GROUP; }
12722#line 12723 "sql_parser.tab.c" /* yacc.c:1646 */
12723 break;
12724
12725 case 807:
12726#line 4343 "sql_parser.y" /* yacc.c:1646 */
12727 { (yyval.i_val) = EXCLUDE_TIES; }
12728#line 12729 "sql_parser.tab.c" /* yacc.c:1646 */
12729 break;
12730
12731 case 808:
12732#line 4344 "sql_parser.y" /* yacc.c:1646 */
12733 { (yyval.i_val) = EXCLUDE_NONE; }
12734#line 12735 "sql_parser.tab.c" /* yacc.c:1646 */
12735 break;
12736
12737 case 809:
12738#line 4348 "sql_parser.y" /* yacc.c:1646 */
12739 { (yyval.sym) = _symbol_create( SQL_NAME, (yyvsp[0].sval) ); }
12740#line 12741 "sql_parser.tab.c" /* yacc.c:1646 */
12741 break;
12742
12743 case 810:
12744#line 4353 "sql_parser.y" /* yacc.c:1646 */
12745 { dlist *l = L();
12746 append_list(l, (yyvsp[-2].l));
12747 (yyval.sym) = _symbol_create_list( SQL_OP, l ); }
12748#line 12749 "sql_parser.tab.c" /* yacc.c:1646 */
12749 break;
12750
12751 case 811:
12752#line 4357 "sql_parser.y" /* yacc.c:1646 */
12753 { dlist *l = L();
12754 append_list(l, (yyvsp[-3].l));
12755 if (dlist_length((yyvsp[-1].l)) == 1) {
12756 append_symbol(l, (yyvsp[-1].l)->h->data.sym);
12757 (yyval.sym) = _symbol_create_list( SQL_UNOP, l );
12758 } else if (dlist_length((yyvsp[-1].l)) == 2) {
12759 append_symbol(l, (yyvsp[-1].l)->h->data.sym);
12760 append_symbol(l, (yyvsp[-1].l)->h->next->data.sym);
12761 (yyval.sym) = _symbol_create_list( SQL_BINOP, l );
12762 } else {
12763 append_list(l, (yyvsp[-1].l));
12764 (yyval.sym) = _symbol_create_list( SQL_NOP, l );
12765 }
12766 }
12767#line 12768 "sql_parser.tab.c" /* yacc.c:1646 */
12768 break;
12769
12770 case 812:
12771#line 4384 "sql_parser.y" /* yacc.c:1646 */
12772 { (yyval.l) = append_string(L(), (yyvsp[0].sval)); }
12773#line 12774 "sql_parser.tab.c" /* yacc.c:1646 */
12774 break;
12775
12776 case 813:
12777#line 4385 "sql_parser.y" /* yacc.c:1646 */
12778 { (yyval.l) = append_string(
12779 append_string(L(), (yyvsp[-2].sval)), (yyvsp[0].sval));}
12780#line 12781 "sql_parser.tab.c" /* yacc.c:1646 */
12781 break;
12782
12783 case 814:
12784#line 4390 "sql_parser.y" /* yacc.c:1646 */
12785 { (yyval.sval) = (yyvsp[0].sval); }
12786#line 12787 "sql_parser.tab.c" /* yacc.c:1646 */
12787 break;
12788
12789 case 815:
12790#line 4391 "sql_parser.y" /* yacc.c:1646 */
12791 { (yyval.sval) = sa_strdup(SA, "left"); }
12792#line 12793 "sql_parser.tab.c" /* yacc.c:1646 */
12793 break;
12794
12795 case 816:
12796#line 4392 "sql_parser.y" /* yacc.c:1646 */
12797 { (yyval.sval) = sa_strdup(SA, "right"); }
12798#line 12799 "sql_parser.tab.c" /* yacc.c:1646 */
12799 break;
12800
12801 case 817:
12802#line 4393 "sql_parser.y" /* yacc.c:1646 */
12803 { (yyval.sval) = sa_strdup(SA, "insert"); }
12804#line 12805 "sql_parser.tab.c" /* yacc.c:1646 */
12805 break;
12806
12807 case 818:
12808#line 4398 "sql_parser.y" /* yacc.c:1646 */
12809 { dlist *l = L();
12810 const char *ident = datetime_field((itype)(yyvsp[-3].i_val));
12811 append_list(l,
12812 append_string(L(), sa_strdup(SA, ident)));
12813 append_symbol(l, (yyvsp[-1].sym));
12814 (yyval.sym) = _symbol_create_list( SQL_UNOP, l ); }
12815#line 12816 "sql_parser.tab.c" /* yacc.c:1646 */
12816 break;
12817
12818 case 819:
12819#line 4405 "sql_parser.y" /* yacc.c:1646 */
12820 { dlist *l = L();
12821 append_list(l,
12822 append_string(L(), sa_strdup(SA, "current_date")));
12823 (yyval.sym) = _symbol_create_list( SQL_OP, l ); }
12824#line 12825 "sql_parser.tab.c" /* yacc.c:1646 */
12825 break;
12826
12827 case 820:
12828#line 4410 "sql_parser.y" /* yacc.c:1646 */
12829 { dlist *l = L();
12830 append_list(l,
12831 append_string(L(), sa_strdup(SA, "current_time")));
12832 (yyval.sym) = _symbol_create_list( SQL_OP, l ); }
12833#line 12834 "sql_parser.tab.c" /* yacc.c:1646 */
12834 break;
12835
12836 case 821:
12837#line 4415 "sql_parser.y" /* yacc.c:1646 */
12838 { dlist *l = L();
12839 append_list(l,
12840 append_string(L(), sa_strdup(SA, "current_timestamp")));
12841 (yyval.sym) = _symbol_create_list( SQL_OP, l ); }
12842#line 12843 "sql_parser.tab.c" /* yacc.c:1646 */
12843 break;
12844
12845 case 822:
12846#line 4420 "sql_parser.y" /* yacc.c:1646 */
12847 { dlist *l = L();
12848 append_list(l,
12849 append_string(L(), sa_strdup(SA, "localtime")));
12850 (yyval.sym) = _symbol_create_list( SQL_OP, l ); }
12851#line 12852 "sql_parser.tab.c" /* yacc.c:1646 */
12852 break;
12853
12854 case 823:
12855#line 4425 "sql_parser.y" /* yacc.c:1646 */
12856 { dlist *l = L();
12857 append_list(l,
12858 append_string(L(), sa_strdup(SA, "localtimestamp")));
12859 (yyval.sym) = _symbol_create_list( SQL_OP, l ); }
12860#line 12861 "sql_parser.tab.c" /* yacc.c:1646 */
12861 break;
12862
12863 case 824:
12864#line 4432 "sql_parser.y" /* yacc.c:1646 */
12865 { (yyval.bval) = 0; }
12866#line 12867 "sql_parser.tab.c" /* yacc.c:1646 */
12867 break;
12868
12869 case 825:
12870#line 4433 "sql_parser.y" /* yacc.c:1646 */
12871 { (yyval.bval) = 1; }
12872#line 12873 "sql_parser.tab.c" /* yacc.c:1646 */
12873 break;
12874
12875 case 826:
12876#line 4438 "sql_parser.y" /* yacc.c:1646 */
12877 { dlist *l = L();
12878 dlist *ops = L();
12879 append_list(l,
12880 append_string(L(), sa_strdup(SA, "substring")));
12881 append_symbol(ops, (yyvsp[-5].sym));
12882 append_symbol(ops, (yyvsp[-3].sym));
12883 append_symbol(ops, (yyvsp[-1].sym));
12884 append_list(l, ops);
12885 (yyval.sym) = _symbol_create_list( SQL_NOP, l ); }
12886#line 12887 "sql_parser.tab.c" /* yacc.c:1646 */
12887 break;
12888
12889 case 827:
12890#line 4448 "sql_parser.y" /* yacc.c:1646 */
12891 { dlist *l = L();
12892 dlist *ops = L();
12893 append_list(l,
12894 append_string(L(), sa_strdup(SA, "substring")));
12895 append_symbol(ops, (yyvsp[-5].sym));
12896 append_symbol(ops, (yyvsp[-3].sym));
12897 append_symbol(ops, (yyvsp[-1].sym));
12898 append_list(l, ops);
12899 (yyval.sym) = _symbol_create_list( SQL_NOP, l ); }
12900#line 12901 "sql_parser.tab.c" /* yacc.c:1646 */
12901 break;
12902
12903 case 828:
12904#line 4458 "sql_parser.y" /* yacc.c:1646 */
12905 { dlist *l = L();
12906 append_list(l,
12907 append_string(L(), sa_strdup(SA, "substring")));
12908 append_symbol(l, (yyvsp[-3].sym));
12909 append_symbol(l, (yyvsp[-1].sym));
12910 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12911#line 12912 "sql_parser.tab.c" /* yacc.c:1646 */
12912 break;
12913
12914 case 829:
12915#line 4465 "sql_parser.y" /* yacc.c:1646 */
12916 { dlist *l = L();
12917 append_list(l,
12918 append_string(L(), sa_strdup(SA, "substring")));
12919 append_symbol(l, (yyvsp[-3].sym));
12920 append_symbol(l, (yyvsp[-1].sym));
12921 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12922#line 12923 "sql_parser.tab.c" /* yacc.c:1646 */
12923 break;
12924
12925 case 830:
12926#line 4472 "sql_parser.y" /* yacc.c:1646 */
12927 { dlist *l = L();
12928 append_list(l,
12929 append_string(L(), sa_strdup(SA, "locate")));
12930 append_symbol(l, (yyvsp[-3].sym));
12931 append_symbol(l, (yyvsp[-1].sym));
12932 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12933#line 12934 "sql_parser.tab.c" /* yacc.c:1646 */
12934 break;
12935
12936 case 831:
12937#line 4479 "sql_parser.y" /* yacc.c:1646 */
12938 { dlist *l = L();
12939 append_list(l,
12940 append_string(L(), sa_strdup(SA, "concat")));
12941 append_symbol(l, (yyvsp[-2].sym));
12942 append_symbol(l, (yyvsp[0].sym));
12943 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
12944#line 12945 "sql_parser.tab.c" /* yacc.c:1646 */
12945 break;
12946
12947 case 832:
12948#line 4486 "sql_parser.y" /* yacc.c:1646 */
12949 { dlist *l = L();
12950 dlist *ops = L();
12951 append_list(l,
12952 append_string(L(), sa_strdup(SA, "splitpart")));
12953 append_symbol(ops, (yyvsp[-5].sym));
12954 append_symbol(ops, (yyvsp[-3].sym));
12955 append_symbol(ops, (yyvsp[-1].sym));
12956 append_list(l, ops);
12957 (yyval.sym) = _symbol_create_list( SQL_NOP, l ); }
12958#line 12959 "sql_parser.tab.c" /* yacc.c:1646 */
12959 break;
12960
12961 case 833:
12962#line 4498 "sql_parser.y" /* yacc.c:1646 */
12963 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym) ); }
12964#line 12965 "sql_parser.tab.c" /* yacc.c:1646 */
12965 break;
12966
12967 case 834:
12968#line 4500 "sql_parser.y" /* yacc.c:1646 */
12969 { (yyval.l) = append_symbol( (yyvsp[-2].l), (yyvsp[0].sym) ); }
12970#line 12971 "sql_parser.tab.c" /* yacc.c:1646 */
12971 break;
12972
12973 case 835:
12974#line 4505 "sql_parser.y" /* yacc.c:1646 */
12975 { dlist *l = L();
12976 append_string(l, NULL);
12977 append_string(l, NULL);
12978 (yyval.sym) = _symbol_create_list( SQL_TABLE, l ); }
12979#line 12980 "sql_parser.tab.c" /* yacc.c:1646 */
12980 break;
12981
12982 case 836:
12983#line 4510 "sql_parser.y" /* yacc.c:1646 */
12984 { dlist *l = L();
12985 append_string(l, (yyvsp[-2].sval));
12986 append_string(l, NULL);
12987 (yyval.sym) = _symbol_create_list( SQL_TABLE, l ); }
12988#line 12989 "sql_parser.tab.c" /* yacc.c:1646 */
12989 break;
12990
12991 case 837:
12992#line 4515 "sql_parser.y" /* yacc.c:1646 */
12993 { dlist *l = L();
12994 append_symbol(l, (yyvsp[-2].sym));
12995 append_string(l, NULL);
12996 (yyval.sym) = _symbol_create_list( SQL_TABLE, l ); }
12997#line 12998 "sql_parser.tab.c" /* yacc.c:1646 */
12998 break;
12999
13000 case 838:
13001#line 4520 "sql_parser.y" /* yacc.c:1646 */
13002 { dlist *l = L();
13003 append_symbol(l, (yyvsp[-1].sym));
13004 append_string(l, (yyvsp[0].sval));
13005 (yyval.sym) = _symbol_create_list( SQL_COLUMN, l ); }
13006#line 13007 "sql_parser.tab.c" /* yacc.c:1646 */
13007 break;
13008
13009 case 839:
13010#line 4527 "sql_parser.y" /* yacc.c:1646 */
13011 { (yyval.sval) = NULL; }
13012#line 13013 "sql_parser.tab.c" /* yacc.c:1646 */
13013 break;
13014
13015 case 840:
13016#line 4528 "sql_parser.y" /* yacc.c:1646 */
13017 { (yyval.sval) = (yyvsp[0].sval); }
13018#line 13019 "sql_parser.tab.c" /* yacc.c:1646 */
13019 break;
13020
13021 case 841:
13022#line 4529 "sql_parser.y" /* yacc.c:1646 */
13023 { (yyval.sval) = (yyvsp[0].sval); }
13024#line 13025 "sql_parser.tab.c" /* yacc.c:1646 */
13025 break;
13026
13027 case 842:
13028#line 4534 "sql_parser.y" /* yacc.c:1646 */
13029 {
13030 if (m->emode == m_normal && m->caching) {
13031 /* replace by argument */
13032 AtomNode *an = (AtomNode*)(yyvsp[0].sym);
13033
13034 if(!sql_add_arg( m, an->a)) {
13035 char *msg = sql_message(SQLSTATE(HY001) "allocation failure");
13036 yyerror(m, msg);
13037 _DELETE(msg);
13038 YYABORT;
13039 }
13040 an->a = NULL;
13041 (yyval.sym) = _symbol_create_list( SQL_IDENT,
13042 append_int(L(), m->argc-1));
13043 } else {
13044 AtomNode *an = (AtomNode*)(yyvsp[0].sym);
13045 atom *a = an->a;
13046 an->a = atom_dup(SA, a);
13047 (yyval.sym) = (yyvsp[0].sym);
13048 }
13049 }
13050#line 13051 "sql_parser.tab.c" /* yacc.c:1646 */
13051 break;
13052
13053 case 843:
13054#line 4558 "sql_parser.y" /* yacc.c:1646 */
13055 { (yyval.l) = append_string(L(), (yyvsp[0].sval)); }
13056#line 13057 "sql_parser.tab.c" /* yacc.c:1646 */
13057 break;
13058
13059 case 844:
13060#line 4559 "sql_parser.y" /* yacc.c:1646 */
13061 { (yyval.l) = append_string(
13062 append_string(L(), (yyvsp[-2].sval)), (yyvsp[0].sval));}
13063#line 13064 "sql_parser.tab.c" /* yacc.c:1646 */
13064 break;
13065
13066 case 845:
13067#line 4564 "sql_parser.y" /* yacc.c:1646 */
13068 { (yyval.l) = append_string(L(), (yyvsp[0].sval)); }
13069#line 13070 "sql_parser.tab.c" /* yacc.c:1646 */
13070 break;
13071
13072 case 846:
13073#line 4565 "sql_parser.y" /* yacc.c:1646 */
13074 { (yyval.l) = append_string(
13075 append_string(L(), (yyvsp[-2].sval)), (yyvsp[0].sval));}
13076#line 13077 "sql_parser.tab.c" /* yacc.c:1646 */
13077 break;
13078
13079 case 847:
13080#line 4570 "sql_parser.y" /* yacc.c:1646 */
13081 { (yyval.l) = append_string(L(), (yyvsp[0].sval)); }
13082#line 13083 "sql_parser.tab.c" /* yacc.c:1646 */
13083 break;
13084
13085 case 848:
13086#line 4571 "sql_parser.y" /* yacc.c:1646 */
13087 { (yyval.l) = append_string(
13088 append_string(L(), (yyvsp[-2].sval)), (yyvsp[0].sval));}
13089#line 13090 "sql_parser.tab.c" /* yacc.c:1646 */
13090 break;
13091
13092 case 849:
13093#line 4578 "sql_parser.y" /* yacc.c:1646 */
13094 { dlist *l = L();
13095 append_list(l, (yyvsp[-3].l));
13096 append_int(l, FALSE);
13097 append_symbol(l, NULL);
13098 (yyval.sym) = _symbol_create_list( SQL_AGGR, l ); }
13099#line 13100 "sql_parser.tab.c" /* yacc.c:1646 */
13100 break;
13101
13102 case 850:
13103#line 4584 "sql_parser.y" /* yacc.c:1646 */
13104 { dlist *l = L();
13105 append_list(l, (yyvsp[-5].l));
13106 append_int(l, FALSE);
13107 append_symbol(l, NULL);
13108 (yyval.sym) = _symbol_create_list( SQL_AGGR, l ); }
13109#line 13110 "sql_parser.tab.c" /* yacc.c:1646 */
13110 break;
13111
13112 case 851:
13113#line 4590 "sql_parser.y" /* yacc.c:1646 */
13114 { dlist *l = L();
13115 append_list(l, (yyvsp[-4].l));
13116 append_int(l, TRUE);
13117 append_symbol(l, (yyvsp[-1].sym));
13118 (yyval.sym) = _symbol_create_list( SQL_AGGR, l ); }
13119#line 13120 "sql_parser.tab.c" /* yacc.c:1646 */
13120 break;
13121
13122 case 852:
13123#line 4596 "sql_parser.y" /* yacc.c:1646 */
13124 { dlist *l = L();
13125 append_list(l, (yyvsp[-4].l));
13126 append_int(l, FALSE);
13127 append_symbol(l, (yyvsp[-1].sym));
13128 (yyval.sym) = _symbol_create_list( SQL_AGGR, l ); }
13129#line 13130 "sql_parser.tab.c" /* yacc.c:1646 */
13130 break;
13131
13132 case 853:
13133#line 4602 "sql_parser.y" /* yacc.c:1646 */
13134 { dlist *l = L();
13135 append_list(l, (yyvsp[-3].l));
13136 append_int(l, FALSE);
13137 append_symbol(l, (yyvsp[-1].sym));
13138 (yyval.sym) = _symbol_create_list( SQL_AGGR, l ); }
13139#line 13140 "sql_parser.tab.c" /* yacc.c:1646 */
13140 break;
13141
13142 case 854:
13143#line 4608 "sql_parser.y" /* yacc.c:1646 */
13144 { dlist *l = L();
13145 append_list(l, (yyvsp[-5].l));
13146 append_int(l, FALSE);
13147 append_symbol(l, (yyvsp[-3].sym));
13148 append_symbol(l, (yyvsp[-1].sym));
13149 (yyval.sym) = _symbol_create_list( SQL_AGGR, l ); }
13150#line 13151 "sql_parser.tab.c" /* yacc.c:1646 */
13151 break;
13152
13153 case 856:
13154#line 4618 "sql_parser.y" /* yacc.c:1646 */
13155 { (yyval.i_val) = 1; }
13156#line 13157 "sql_parser.tab.c" /* yacc.c:1646 */
13157 break;
13158
13159 case 857:
13160#line 4619 "sql_parser.y" /* yacc.c:1646 */
13161 { (yyval.i_val) = -1; }
13162#line 13163 "sql_parser.tab.c" /* yacc.c:1646 */
13163 break;
13164
13165 case 858:
13166#line 4620 "sql_parser.y" /* yacc.c:1646 */
13167 { (yyval.i_val) = 1; }
13168#line 13169 "sql_parser.tab.c" /* yacc.c:1646 */
13169 break;
13170
13171 case 859:
13172#line 4624 "sql_parser.y" /* yacc.c:1646 */
13173 { (yyval.bval) = 1; }
13174#line 13175 "sql_parser.tab.c" /* yacc.c:1646 */
13175 break;
13176
13177 case 860:
13178#line 4625 "sql_parser.y" /* yacc.c:1646 */
13179 { (yyval.bval) = 0; }
13180#line 13181 "sql_parser.tab.c" /* yacc.c:1646 */
13181 break;
13182
13183 case 861:
13184#line 4636 "sql_parser.y" /* yacc.c:1646 */
13185 { (yyval.i_val) = (yyvsp[-1].i_val)+1; }
13186#line 13187 "sql_parser.tab.c" /* yacc.c:1646 */
13187 break;
13188
13189 case 862:
13190#line 4638 "sql_parser.y" /* yacc.c:1646 */
13191 { (yyval.i_val) = 0+1; }
13192#line 13193 "sql_parser.tab.c" /* yacc.c:1646 */
13193 break;
13194
13195 case 863:
13196#line 4642 "sql_parser.y" /* yacc.c:1646 */
13197 { (yyval.i_val) = (yyvsp[-1].i_val)+1; }
13198#line 13199 "sql_parser.tab.c" /* yacc.c:1646 */
13199 break;
13200
13201 case 864:
13202#line 4644 "sql_parser.y" /* yacc.c:1646 */
13203 { (yyval.i_val) = 6+1; }
13204#line 13205 "sql_parser.tab.c" /* yacc.c:1646 */
13205 break;
13206
13207 case 865:
13208#line 4648 "sql_parser.y" /* yacc.c:1646 */
13209 { sql_find_subtype(&(yyval.type), "date", 0, 0); }
13210#line 13211 "sql_parser.tab.c" /* yacc.c:1646 */
13211 break;
13212
13213 case 866:
13214#line 4650 "sql_parser.y" /* yacc.c:1646 */
13215 { if ((yyvsp[0].bval))
13216 sql_find_subtype(&(yyval.type), "timetz", (yyvsp[-1].i_val), 0);
13217 else
13218 sql_find_subtype(&(yyval.type), "time", (yyvsp[-1].i_val), 0);
13219 }
13220#line 13221 "sql_parser.tab.c" /* yacc.c:1646 */
13221 break;
13222
13223 case 867:
13224#line 4656 "sql_parser.y" /* yacc.c:1646 */
13225 { if ((yyvsp[0].bval))
13226 sql_find_subtype(&(yyval.type), "timestamptz", (yyvsp[-1].i_val), 0);
13227 else
13228 sql_find_subtype(&(yyval.type), "timestamp", (yyvsp[-1].i_val), 0);
13229 }
13230#line 13231 "sql_parser.tab.c" /* yacc.c:1646 */
13231 break;
13232
13233 case 868:
13234#line 4664 "sql_parser.y" /* yacc.c:1646 */
13235 { (yyval.i_val) = iyear; }
13236#line 13237 "sql_parser.tab.c" /* yacc.c:1646 */
13237 break;
13238
13239 case 869:
13240#line 4665 "sql_parser.y" /* yacc.c:1646 */
13241 { (yyval.i_val) = imonth; }
13242#line 13243 "sql_parser.tab.c" /* yacc.c:1646 */
13243 break;
13244
13245 case 870:
13246#line 4666 "sql_parser.y" /* yacc.c:1646 */
13247 { (yyval.i_val) = iday; }
13248#line 13249 "sql_parser.tab.c" /* yacc.c:1646 */
13249 break;
13250
13251 case 871:
13252#line 4667 "sql_parser.y" /* yacc.c:1646 */
13253 { (yyval.i_val) = ihour; }
13254#line 13255 "sql_parser.tab.c" /* yacc.c:1646 */
13255 break;
13256
13257 case 872:
13258#line 4668 "sql_parser.y" /* yacc.c:1646 */
13259 { (yyval.i_val) = imin; }
13260#line 13261 "sql_parser.tab.c" /* yacc.c:1646 */
13261 break;
13262
13263 case 874:
13264#line 4673 "sql_parser.y" /* yacc.c:1646 */
13265 { (yyval.i_val) = isec; }
13266#line 13267 "sql_parser.tab.c" /* yacc.c:1646 */
13267 break;
13268
13269 case 876:
13270#line 4678 "sql_parser.y" /* yacc.c:1646 */
13271 { (yyval.i_val) = icentury; }
13272#line 13273 "sql_parser.tab.c" /* yacc.c:1646 */
13273 break;
13274
13275 case 877:
13276#line 4679 "sql_parser.y" /* yacc.c:1646 */
13277 { (yyval.i_val) = idecade; }
13278#line 13279 "sql_parser.tab.c" /* yacc.c:1646 */
13279 break;
13280
13281 case 878:
13282#line 4680 "sql_parser.y" /* yacc.c:1646 */
13283 { (yyval.i_val) = iquarter; }
13284#line 13285 "sql_parser.tab.c" /* yacc.c:1646 */
13285 break;
13286
13287 case 879:
13288#line 4681 "sql_parser.y" /* yacc.c:1646 */
13289 { (yyval.i_val) = iweek; }
13290#line 13291 "sql_parser.tab.c" /* yacc.c:1646 */
13291 break;
13292
13293 case 880:
13294#line 4682 "sql_parser.y" /* yacc.c:1646 */
13295 { (yyval.i_val) = idow; }
13296#line 13297 "sql_parser.tab.c" /* yacc.c:1646 */
13297 break;
13298
13299 case 881:
13300#line 4684 "sql_parser.y" /* yacc.c:1646 */
13301 { (yyval.i_val) = idoy; }
13302#line 13303 "sql_parser.tab.c" /* yacc.c:1646 */
13303 break;
13304
13305 case 882:
13306#line 4690 "sql_parser.y" /* yacc.c:1646 */
13307 { (yyval.l) = append_int(
13308 append_int( L(), (yyvsp[-1].i_val)), (yyvsp[0].i_val)-1); }
13309#line 13310 "sql_parser.tab.c" /* yacc.c:1646 */
13310 break;
13311
13312 case 883:
13313#line 4696 "sql_parser.y" /* yacc.c:1646 */
13314 { (yyval.l) = append_int(
13315 append_int( L(), (yyvsp[0].i_val)), 0); }
13316#line 13317 "sql_parser.tab.c" /* yacc.c:1646 */
13317 break;
13318
13319 case 884:
13320#line 4699 "sql_parser.y" /* yacc.c:1646 */
13321 { (yyval.l) = append_int(
13322 append_int( L(), isec), (yyvsp[0].i_val)-1); }
13323#line 13324 "sql_parser.tab.c" /* yacc.c:1646 */
13324 break;
13325
13326 case 885:
13327#line 4705 "sql_parser.y" /* yacc.c:1646 */
13328 { (yyval.l) = append_int(
13329 append_int( L(), (yyvsp[-1].i_val)), (yyvsp[0].i_val)-1); }
13330#line 13331 "sql_parser.tab.c" /* yacc.c:1646 */
13331 break;
13332
13333 case 886:
13334#line 4708 "sql_parser.y" /* yacc.c:1646 */
13335 { (yyval.l) = append_int(
13336 append_int( L(), isec), (yyvsp[0].i_val)-1); }
13337#line 13338 "sql_parser.tab.c" /* yacc.c:1646 */
13338 break;
13339
13340 case 887:
13341#line 4714 "sql_parser.y" /* yacc.c:1646 */
13342 { (yyval.l) = append_list(
13343 append_list( L(), (yyvsp[-2].l)), (yyvsp[0].l) ); }
13344#line 13345 "sql_parser.tab.c" /* yacc.c:1646 */
13345 break;
13346
13347 case 888:
13348#line 4717 "sql_parser.y" /* yacc.c:1646 */
13349 { (yyval.l) = append_list( L(), (yyvsp[0].l)); }
13350#line 13351 "sql_parser.tab.c" /* yacc.c:1646 */
13351 break;
13352
13353 case 889:
13354#line 4721 "sql_parser.y" /* yacc.c:1646 */
13355 {
13356 int sk, ek, sp, ep;
13357 int tpe;
13358
13359 (yyval.type).type = NULL;
13360 if ( (tpe = parse_interval_qualifier( m, (yyvsp[0].l), &sk, &ek, &sp, &ep )) < 0){
13361 yyerror(m, SQLSTATE(22006) "incorrect interval");
13362 YYABORT;
13363 } else {
13364 int d = inttype2digits(sk, ek);
13365 if (tpe == 0){
13366 sql_find_subtype(&(yyval.type), "month_interval", d, 0);
13367 } else {
13368 sql_find_subtype(&(yyval.type), "sec_interval", d, 0);
13369 }
13370 }
13371 }
13372#line 13373 "sql_parser.tab.c" /* yacc.c:1646 */
13373 break;
13374
13375 case 893:
13376#line 4747 "sql_parser.y" /* yacc.c:1646 */
13377 { const char *s = (yyvsp[0].sval);
13378 int len = UTF8_strlen(s);
13379 sql_subtype t;
13380 sql_find_subtype(&t, "char", len, 0 );
13381 (yyval.sym) = _newAtomNode( _atom_string(&t, s)); }
13382#line 13383 "sql_parser.tab.c" /* yacc.c:1646 */
13383 break;
13384
13385 case 894:
13386#line 4753 "sql_parser.y" /* yacc.c:1646 */
13387 { int len = _strlen((yyvsp[0].sval)), i = 2, err = 0;
13388 char * hexa = (yyvsp[0].sval);
13389 sql_subtype t;
13390#ifdef HAVE_HGE
13391 hge res = 0;
13392#else
13393 lng res = 0;
13394#endif
13395 /* skip leading '0' */
13396 while (i < len && hexa[i] == '0')
13397 i++;
13398
13399 /* we only support positive values that fit in a signed 128-bit type,
13400 * i.e., max. 63/127 bit => < 2^63/2^127 => < 0x800...
13401 * (leading sign (-0x...) is handled separately elsewhere)
13402 */
13403 if (len - i < MAX_HEX_DIGITS || (len - i == MAX_HEX_DIGITS && hexa[i] < '8'))
13404 while (err == 0 && i < len)
13405 {
13406 res <<= 4;
13407 if (isdigit((unsigned char) hexa[i]))
13408 res = res + (hexa[i] - '0');
13409 else if ('A' <= hexa[i] && hexa[i] <= 'F')
13410 res = res + (hexa[i] - 'A' + 10);
13411 else if ('a' <= hexa[i] && hexa[i] <= 'f')
13412 res = res + (hexa[i] - 'a' + 10);
13413 else
13414 err = 1;
13415 i++;
13416 }
13417 else
13418 err = 1;
13419
13420 if (err == 0) {
13421 assert(res >= 0);
13422
13423 /* use smallest type that can accommodate the given value */
13424 if (res <= GDK_bte_max)
13425 sql_find_subtype(&t, "tinyint", 8, 0 );
13426 else if (res <= GDK_sht_max)
13427 sql_find_subtype(&t, "smallint", 16, 0 );
13428 else if (res <= GDK_int_max)
13429 sql_find_subtype(&t, "int", 32, 0 );
13430 else if (res <= GDK_lng_max)
13431 sql_find_subtype(&t, "bigint", 64, 0 );
13432#ifdef HAVE_HGE
13433 else if (res <= GDK_hge_max && have_hge)
13434 sql_find_subtype(&t, "hugeint", 128, 0 );
13435#endif
13436 else
13437 err = 1;
13438 }
13439
13440 if (err != 0) {
13441 char *msg = sql_message(SQLSTATE(22003) "Invalid hexadecimal number or hexadecimal too large (%s)", (yyvsp[0].sval));
13442
13443 yyerror(m, msg);
13444 _DELETE(msg);
13445 (yyval.sym) = NULL;
13446 YYABORT;
13447 } else {
13448 (yyval.sym) = _newAtomNode( atom_int(SA, &t, res));
13449 }
13450 }
13451#line 13452 "sql_parser.tab.c" /* yacc.c:1646 */
13452 break;
13453
13454 case 895:
13455#line 4818 "sql_parser.y" /* yacc.c:1646 */
13456 { int err = 0;
13457 size_t len = sizeof(lng);
13458 lng value, *p = &value;
13459 sql_subtype t;
13460
13461 if (lngFromStr((yyvsp[0].sval), &len, &p, false) < 0 || is_lng_nil(value))
13462 err = 2;
13463
13464 if (!err) {
13465 if ((value >= GDK_lng_min && value <= GDK_lng_max))
13466#if SIZEOF_OID == SIZEOF_INT
13467 sql_find_subtype(&t, "oid", 31, 0 );
13468#else
13469 sql_find_subtype(&t, "oid", 63, 0 );
13470#endif
13471 else
13472 err = 1;
13473 }
13474
13475 if (err) {
13476 char *msg = sql_message(SQLSTATE(22003) "OID value too large or not a number (%s)", (yyvsp[0].sval));
13477
13478 yyerror(m, msg);
13479 _DELETE(msg);
13480 (yyval.sym) = NULL;
13481 YYABORT;
13482 } else {
13483 (yyval.sym) = _newAtomNode( atom_int(SA, &t, value));
13484 }
13485 }
13486#line 13487 "sql_parser.tab.c" /* yacc.c:1646 */
13487 break;
13488
13489 case 896:
13490#line 4849 "sql_parser.y" /* yacc.c:1646 */
13491 { int digits = _strlen((yyvsp[0].sval)), err = 0;
13492#ifdef HAVE_HGE
13493 hge value, *p = &value;
13494 size_t len = sizeof(hge);
13495 const hge one = 1;
13496#else
13497 lng value, *p = &value;
13498 size_t len = sizeof(lng);
13499 const lng one = 1;
13500#endif
13501 sql_subtype t;
13502
13503#ifdef HAVE_HGE
13504 if (hgeFromStr((yyvsp[0].sval), &len, &p, false) < 0 || is_hge_nil(value))
13505 err = 2;
13506#else
13507 if (lngFromStr((yyvsp[0].sval), &len, &p, false) < 0 || is_lng_nil(value))
13508 err = 2;
13509#endif
13510
13511 /* find the most suitable data type for the given number */
13512 if (!err) {
13513 int bits = digits2bits(digits), obits = bits;
13514
13515 while (bits > 0 &&
13516 (bits == sizeof(value) * 8 ||
13517 (one << (bits - 1)) > value))
13518 bits--;
13519
13520 if (bits != obits &&
13521 (bits == 8 || bits == 16 || bits == 32 || bits == 64))
13522 bits++;
13523
13524 if (value >= GDK_bte_min && value <= GDK_bte_max)
13525 sql_find_subtype(&t, "tinyint", bits, 0 );
13526 else if (value >= GDK_sht_min && value <= GDK_sht_max)
13527 sql_find_subtype(&t, "smallint", bits, 0 );
13528 else if (value >= GDK_int_min && value <= GDK_int_max)
13529 sql_find_subtype(&t, "int", bits, 0 );
13530 else if (value >= GDK_lng_min && value <= GDK_lng_max)
13531 sql_find_subtype(&t, "bigint", bits, 0 );
13532#ifdef HAVE_HGE
13533 else if (value >= GDK_hge_min && value <= GDK_hge_max && have_hge)
13534 sql_find_subtype(&t, "hugeint", bits, 0 );
13535#endif
13536 else
13537 err = 1;
13538 }
13539
13540 if (err) {
13541 char *msg = sql_message(SQLSTATE(22003) "integer value too large or not a number (%s)", (yyvsp[0].sval));
13542
13543 yyerror(m, msg);
13544 _DELETE(msg);
13545 (yyval.sym) = NULL;
13546 YYABORT;
13547 } else {
13548 (yyval.sym) = _newAtomNode( atom_int(SA, &t, value));
13549 }
13550 }
13551#line 13552 "sql_parser.tab.c" /* yacc.c:1646 */
13552 break;
13553
13554 case 897:
13555#line 4910 "sql_parser.y" /* yacc.c:1646 */
13556 { char *s = sa_strdup(SA, (yyvsp[0].sval));
13557 char *dot = strchr(s, '.');
13558 int digits = _strlen(s) - 1;
13559 int scale = digits - (int) (dot-s);
13560 sql_subtype t;
13561
13562 if (digits <= 0)
13563 digits = 1;
13564 if (digits <= MAX_DEC_DIGITS) {
13565 double val = strtod((yyvsp[0].sval),NULL);
13566#ifdef HAVE_HGE
13567 hge value = decimal_from_str(s, NULL);
13568#else
13569 lng value = decimal_from_str(s, NULL);
13570#endif
13571
13572 if (*s == '+' || *s == '-')
13573 digits --;
13574 sql_find_subtype(&t, "decimal", digits, scale );
13575 (yyval.sym) = _newAtomNode( atom_dec(SA, &t, value, val));
13576 } else {
13577 char *p = (yyvsp[0].sval);
13578 double val;
13579
13580 errno = 0;
13581 val = strtod((yyvsp[0].sval),&p);
13582 if (p == (yyvsp[0].sval) || is_dbl_nil(val) || (errno == ERANGE && (val < -1 || val > 1))) {
13583 char *msg = sql_message(SQLSTATE(22003) "Double value too large or not a number (%s)", (yyvsp[0].sval));
13584
13585 yyerror(m, msg);
13586 _DELETE(msg);
13587 (yyval.sym) = NULL;
13588 YYABORT;
13589 }
13590 sql_find_subtype(&t, "double", 51, 0 );
13591 (yyval.sym) = _newAtomNode(atom_float(SA, &t, val));
13592 }
13593 }
13594#line 13595 "sql_parser.tab.c" /* yacc.c:1646 */
13595 break;
13596
13597 case 898:
13598#line 4949 "sql_parser.y" /* yacc.c:1646 */
13599 { sql_subtype t;
13600 char *p = (yyvsp[0].sval);
13601 double val;
13602
13603 errno = 0;
13604 val = strtod((yyvsp[0].sval),&p);
13605 if (p == (yyvsp[0].sval) || is_dbl_nil(val) || (errno == ERANGE && (val < -1 || val > 1))) {
13606 char *msg = sql_message(SQLSTATE(22003) "Double value too large or not a number (%s)", (yyvsp[0].sval));
13607
13608 yyerror(m, msg);
13609 _DELETE(msg);
13610 (yyval.sym) = NULL;
13611 YYABORT;
13612 }
13613 sql_find_subtype(&t, "double", 51, 0 );
13614 (yyval.sym) = _newAtomNode(atom_float(SA, &t, val)); }
13615#line 13616 "sql_parser.tab.c" /* yacc.c:1646 */
13616 break;
13617
13618 case 899:
13619#line 4966 "sql_parser.y" /* yacc.c:1646 */
13620 { sql_subtype t;
13621 atom *a;
13622 int r;
13623
13624 r = sql_find_subtype(&t, "date", 0, 0 );
13625 if (!r || (a = atom_general(SA, &t, (yyvsp[0].sval))) == NULL) {
13626 char *msg = sql_message(SQLSTATE(22007) "Incorrect date value (%s)", (yyvsp[0].sval));
13627
13628 yyerror(m, msg);
13629 _DELETE(msg);
13630 (yyval.sym) = NULL;
13631 YYABORT;
13632 } else {
13633 (yyval.sym) = _newAtomNode(a);
13634 } }
13635#line 13636 "sql_parser.tab.c" /* yacc.c:1646 */
13636 break;
13637
13638 case 900:
13639#line 4982 "sql_parser.y" /* yacc.c:1646 */
13640 { sql_subtype t;
13641 atom *a;
13642 int r;
13643
13644 r = sql_find_subtype(&t, ((yyvsp[-1].bval))?"timetz":"time", (yyvsp[-2].i_val), 0);
13645 if (!r || (a = atom_general(SA, &t, (yyvsp[0].sval))) == NULL) {
13646 char *msg = sql_message(SQLSTATE(22007) "Incorrect time value (%s)", (yyvsp[0].sval));
13647
13648 yyerror(m, msg);
13649 _DELETE(msg);
13650 (yyval.sym) = NULL;
13651 YYABORT;
13652 } else {
13653 (yyval.sym) = _newAtomNode(a);
13654 } }
13655#line 13656 "sql_parser.tab.c" /* yacc.c:1646 */
13656 break;
13657
13658 case 901:
13659#line 4998 "sql_parser.y" /* yacc.c:1646 */
13660 { sql_subtype t;
13661 atom *a;
13662 int r;
13663
13664 r = sql_find_subtype(&t, ((yyvsp[-1].bval))?"timestamptz":"timestamp",(yyvsp[-2].i_val),0);
13665 if (!r || (a = atom_general(SA, &t, (yyvsp[0].sval))) == NULL) {
13666 char *msg = sql_message(SQLSTATE(22007) "Incorrect timestamp value (%s)", (yyvsp[0].sval));
13667
13668 yyerror(m, msg);
13669 _DELETE(msg);
13670 (yyval.sym) = NULL;
13671 YYABORT;
13672 } else {
13673 (yyval.sym) = _newAtomNode(a);
13674 } }
13675#line 13676 "sql_parser.tab.c" /* yacc.c:1646 */
13676 break;
13677
13678 case 903:
13679#line 5015 "sql_parser.y" /* yacc.c:1646 */
13680 { sql_subtype t;
13681 atom *a= 0;
13682 int r;
13683
13684 (yyval.sym) = NULL;
13685 r = sql_find_subtype(&t, "blob", 0, 0);
13686 if (r && (a = atom_general(SA, &t, (yyvsp[0].sval))) != NULL)
13687 (yyval.sym) = _newAtomNode(a);
13688 if (!(yyval.sym)) {
13689 char *msg = sql_message(SQLSTATE(22M28) "incorrect blob %s", (yyvsp[0].sval));
13690
13691 yyerror(m, msg);
13692 _DELETE(msg);
13693 YYABORT;
13694 }
13695 }
13696#line 13697 "sql_parser.tab.c" /* yacc.c:1646 */
13697 break;
13698
13699 case 904:
13700#line 5032 "sql_parser.y" /* yacc.c:1646 */
13701 { sql_subtype t;
13702 atom *a= 0;
13703 int r;
13704
13705 (yyval.sym) = NULL;
13706 r = sql_find_subtype(&t, "blob", 0, 0);
13707 if (r && (a = atom_general(SA, &t, (yyvsp[0].sval))) != NULL)
13708 (yyval.sym) = _newAtomNode(a);
13709 if (!(yyval.sym)) {
13710 char *msg = sql_message(SQLSTATE(22M28) "incorrect blob %s", (yyvsp[0].sval));
13711
13712 yyerror(m, msg);
13713 _DELETE(msg);
13714 YYABORT;
13715 }
13716 }
13717#line 13718 "sql_parser.tab.c" /* yacc.c:1646 */
13718 break;
13719
13720 case 905:
13721#line 5049 "sql_parser.y" /* yacc.c:1646 */
13722 { sql_subtype t;
13723 atom *a= 0;
13724 int r;
13725
13726 (yyval.sym) = NULL;
13727 r = sql_find_subtype(&t, (yyvsp[-1].sval), 0, 0);
13728 if (r && (a = atom_general(SA, &t, (yyvsp[0].sval))) != NULL)
13729 (yyval.sym) = _newAtomNode(a);
13730 if (!(yyval.sym)) {
13731 char *msg = sql_message(SQLSTATE(22000) "incorrect %s %s", (yyvsp[-1].sval), (yyvsp[0].sval));
13732
13733 yyerror(m, msg);
13734 _DELETE(msg);
13735 YYABORT;
13736 }
13737 }
13738#line 13739 "sql_parser.tab.c" /* yacc.c:1646 */
13739 break;
13740
13741 case 906:
13742#line 5066 "sql_parser.y" /* yacc.c:1646 */
13743 { sql_subtype t;
13744 atom *a = 0;
13745 int r;
13746
13747 (yyval.sym) = NULL;
13748 r = sql_find_subtype(&t, (yyvsp[-1].sval), 0, 0);
13749 if (r && (a = atom_general(SA, &t, (yyvsp[0].sval))) != NULL)
13750 (yyval.sym) = _newAtomNode(a);
13751 if (!(yyval.sym)) {
13752 char *msg = sql_message(SQLSTATE(22000) "incorrect %s %s", (yyvsp[-1].sval), (yyvsp[0].sval));
13753
13754 yyerror(m, msg);
13755 _DELETE(msg);
13756 YYABORT;
13757 }
13758 }
13759#line 13760 "sql_parser.tab.c" /* yacc.c:1646 */
13760 break;
13761
13762 case 907:
13763#line 5083 "sql_parser.y" /* yacc.c:1646 */
13764 {
13765 sql_type *t = mvc_bind_type(m, (yyvsp[-1].sval));
13766 atom *a;
13767
13768 (yyval.sym) = NULL;
13769 if (t) {
13770 sql_subtype tpe;
13771 sql_init_subtype(&tpe, t, 0, 0);
13772 a = atom_general(SA, &tpe, (yyvsp[0].sval));
13773 if (a)
13774 (yyval.sym) = _newAtomNode(a);
13775 }
13776 if (!t || !(yyval.sym)) {
13777 char *msg = sql_message(SQLSTATE(22000) "type (%s) unknown", (yyvsp[-1].sval));
13778
13779 yyerror(m, msg);
13780 _DELETE(msg);
13781 YYABORT;
13782 }
13783 }
13784#line 13785 "sql_parser.tab.c" /* yacc.c:1646 */
13785 break;
13786
13787 case 908:
13788#line 5104 "sql_parser.y" /* yacc.c:1646 */
13789 { sql_subtype t;
13790 sql_find_subtype(&t, "boolean", 0, 0 );
13791 (yyval.sym) = _newAtomNode( atom_bool(SA, &t, FALSE)); }
13792#line 13793 "sql_parser.tab.c" /* yacc.c:1646 */
13793 break;
13794
13795 case 909:
13796#line 5108 "sql_parser.y" /* yacc.c:1646 */
13797 { sql_subtype t;
13798 sql_find_subtype(&t, "boolean", 0, 0 );
13799 (yyval.sym) = _newAtomNode( atom_bool(SA, &t, TRUE)); }
13800#line 13801 "sql_parser.tab.c" /* yacc.c:1646 */
13801 break;
13802
13803 case 910:
13804#line 5114 "sql_parser.y" /* yacc.c:1646 */
13805 {
13806 sql_subtype t;
13807 int sk, ek, sp, ep, tpe;
13808 lng i = 0;
13809 int r = 0;
13810
13811 (yyval.sym) = NULL;
13812 if ( (tpe = parse_interval_qualifier( m, (yyvsp[0].l), &sk, &ek, &sp, &ep )) < 0){
13813 yyerror(m, "incorrect interval");
13814 YYABORT;
13815 } else {
13816 int d = inttype2digits(sk, ek);
13817 if (tpe == 0){
13818 r=sql_find_subtype(&t, "month_interval", d, 0);
13819 } else {
13820 r=sql_find_subtype(&t, "sec_interval", d, 0);
13821 }
13822 }
13823 if (!r || (tpe = parse_interval( m, (yyvsp[-2].i_val), (yyvsp[-1].sval), sk, ek, sp, ep, &i)) < 0) {
13824 yyerror(m, "incorrect interval");
13825 (yyval.sym) = NULL;
13826 YYABORT;
13827 } else {
13828 /* count the number of digits in the input */
13829/*
13830 lng cpyval = i, inlen = 1;
13831
13832 cpyval /= qualifier2multiplier(ek);
13833 while (cpyval /= 10)
13834 inlen++;
13835 if (inlen > t.digits) {
13836 char *msg = sql_message(SQLSTATE(22006) "incorrect interval (" LLFMT " > %d)", inlen, t.digits);
13837 yyerror(m, msg);
13838 $$ = NULL;
13839 YYABORT;
13840 }
13841*/
13842 (yyval.sym) = _newAtomNode( atom_int(SA, &t, i));
13843 }
13844 }
13845#line 13846 "sql_parser.tab.c" /* yacc.c:1646 */
13846 break;
13847
13848 case 911:
13849#line 5159 "sql_parser.y" /* yacc.c:1646 */
13850 { (yyval.l) = append_string(L(), (yyvsp[0].sval)); }
13851#line 13852 "sql_parser.tab.c" /* yacc.c:1646 */
13852 break;
13853
13854 case 912:
13855#line 5160 "sql_parser.y" /* yacc.c:1646 */
13856 {
13857 m->scanner.schema = (yyvsp[-2].sval);
13858 (yyval.l) = append_string(
13859 append_string(L(), (yyvsp[-2].sval)), (yyvsp[0].sval));}
13860#line 13861 "sql_parser.tab.c" /* yacc.c:1646 */
13861 break;
13862
13863 case 913:
13864#line 5164 "sql_parser.y" /* yacc.c:1646 */
13865 {
13866 m->scanner.schema = (yyvsp[-4].sval);
13867 (yyval.l) = append_string(
13868 append_string(
13869 append_string(L(), (yyvsp[-4].sval)),
13870 (yyvsp[-2].sval)),
13871 (yyvsp[0].sval))
13872 ;}
13873#line 13874 "sql_parser.tab.c" /* yacc.c:1646 */
13874 break;
13875
13876 case 914:
13877#line 5175 "sql_parser.y" /* yacc.c:1646 */
13878 { (yyval.l) = append_string(
13879 L(), (yyvsp[0].sval)); }
13880#line 13881 "sql_parser.tab.c" /* yacc.c:1646 */
13881 break;
13882
13883 case 915:
13884#line 5178 "sql_parser.y" /* yacc.c:1646 */
13885 { (yyval.l) = append_string(
13886 append_string(
13887 L(), (yyvsp[-2].sval)), (yyvsp[0].sval));}
13888#line 13889 "sql_parser.tab.c" /* yacc.c:1646 */
13889 break;
13890
13891 case 916:
13892#line 5183 "sql_parser.y" /* yacc.c:1646 */
13893 { (yyval.l) = append_string(
13894 append_string(
13895 append_string(
13896 L(), (yyvsp[-4].sval)), (yyvsp[-2].sval)), (yyvsp[0].sval));}
13897#line 13898 "sql_parser.tab.c" /* yacc.c:1646 */
13898 break;
13899
13900 case 917:
13901#line 5191 "sql_parser.y" /* yacc.c:1646 */
13902 { dlist *l = L();
13903 append_symbol(l, (yyvsp[-3].sym));
13904 append_type(l, &(yyvsp[-1].type));
13905 (yyval.sym) = _symbol_create_list( SQL_CAST, l ); }
13906#line 13907 "sql_parser.tab.c" /* yacc.c:1646 */
13907 break;
13908
13909 case 918:
13910#line 5197 "sql_parser.y" /* yacc.c:1646 */
13911 { dlist *l = L();
13912 append_symbol(l, (yyvsp[-3].sym));
13913 append_type(l, &(yyvsp[-1].type));
13914 (yyval.sym) = _symbol_create_list( SQL_CAST, l ); }
13915#line 13916 "sql_parser.tab.c" /* yacc.c:1646 */
13916 break;
13917
13918 case 920:
13919#line 5209 "sql_parser.y" /* yacc.c:1646 */
13920 { (yyval.sym) = _symbol_create_list(SQL_NULLIF,
13921 append_symbol(
13922 append_symbol(
13923 L(), (yyvsp[-3].sym)), (yyvsp[-1].sym))); }
13924#line 13925 "sql_parser.tab.c" /* yacc.c:1646 */
13925 break;
13926
13927 case 921:
13928#line 5214 "sql_parser.y" /* yacc.c:1646 */
13929 { (yyval.sym) = _symbol_create_list(SQL_COALESCE, (yyvsp[-1].l)); }
13930#line 13931 "sql_parser.tab.c" /* yacc.c:1646 */
13931 break;
13932
13933 case 922:
13934#line 5216 "sql_parser.y" /* yacc.c:1646 */
13935 { (yyval.sym) = _symbol_create_list(SQL_CASE,
13936 append_symbol(
13937 append_list(
13938 append_symbol(
13939 L(),(yyvsp[-3].sym)),(yyvsp[-2].l)),(yyvsp[-1].sym))); }
13940#line 13941 "sql_parser.tab.c" /* yacc.c:1646 */
13941 break;
13942
13943 case 923:
13944#line 5222 "sql_parser.y" /* yacc.c:1646 */
13945 { (yyval.sym) = _symbol_create_list(SQL_CASE,
13946 append_symbol(
13947 append_list(
13948 L(),(yyvsp[-2].l)),(yyvsp[-1].sym))); }
13949#line 13950 "sql_parser.tab.c" /* yacc.c:1646 */
13950 break;
13951
13952 case 924:
13953#line 5230 "sql_parser.y" /* yacc.c:1646 */
13954 { (yyval.l) = append_symbol( L(), (yyvsp[0].sym)); }
13955#line 13956 "sql_parser.tab.c" /* yacc.c:1646 */
13956 break;
13957
13958 case 925:
13959#line 5232 "sql_parser.y" /* yacc.c:1646 */
13960 { (yyval.l) = append_symbol( (yyvsp[-2].l), (yyvsp[0].sym)); }
13961#line 13962 "sql_parser.tab.c" /* yacc.c:1646 */
13962 break;
13963
13964 case 926:
13965#line 5237 "sql_parser.y" /* yacc.c:1646 */
13966 { (yyval.l) = append_symbol( L(), (yyvsp[-2].sym));
13967 (yyval.l) = append_symbol( (yyval.l), (yyvsp[0].sym));
13968 }
13969#line 13970 "sql_parser.tab.c" /* yacc.c:1646 */
13970 break;
13971
13972 case 927:
13973#line 5241 "sql_parser.y" /* yacc.c:1646 */
13974 { (yyval.l) = append_symbol( (yyvsp[-2].l), (yyvsp[0].sym)); }
13975#line 13976 "sql_parser.tab.c" /* yacc.c:1646 */
13976 break;
13977
13978 case 928:
13979#line 5247 "sql_parser.y" /* yacc.c:1646 */
13980 { (yyval.sym) = _symbol_create_list( SQL_WHEN,
13981 append_symbol(
13982 append_symbol(
13983 L(), (yyvsp[-2].sym)),(yyvsp[0].sym))); }
13984#line 13985 "sql_parser.tab.c" /* yacc.c:1646 */
13985 break;
13986
13987 case 929:
13988#line 5255 "sql_parser.y" /* yacc.c:1646 */
13989 { (yyval.l) = append_symbol( L(), (yyvsp[0].sym));}
13990#line 13991 "sql_parser.tab.c" /* yacc.c:1646 */
13991 break;
13992
13993 case 930:
13994#line 5257 "sql_parser.y" /* yacc.c:1646 */
13995 { (yyval.l) = append_symbol( (yyvsp[-1].l), (yyvsp[0].sym)); }
13996#line 13997 "sql_parser.tab.c" /* yacc.c:1646 */
13997 break;
13998
13999 case 931:
14000#line 5262 "sql_parser.y" /* yacc.c:1646 */
14001 { (yyval.sym) = _symbol_create_list( SQL_WHEN,
14002 append_symbol(
14003 append_symbol(
14004 L(), (yyvsp[-2].sym)),(yyvsp[0].sym))); }
14005#line 14006 "sql_parser.tab.c" /* yacc.c:1646 */
14006 break;
14007
14008 case 932:
14009#line 5270 "sql_parser.y" /* yacc.c:1646 */
14010 { (yyval.l) = append_symbol( L(), (yyvsp[0].sym)); }
14011#line 14012 "sql_parser.tab.c" /* yacc.c:1646 */
14012 break;
14013
14014 case 933:
14015#line 5272 "sql_parser.y" /* yacc.c:1646 */
14016 { (yyval.l) = append_symbol( (yyvsp[-1].l), (yyvsp[0].sym)); }
14017#line 14018 "sql_parser.tab.c" /* yacc.c:1646 */
14018 break;
14019
14020 case 934:
14021#line 5276 "sql_parser.y" /* yacc.c:1646 */
14022 { (yyval.sym) = NULL; }
14023#line 14024 "sql_parser.tab.c" /* yacc.c:1646 */
14024 break;
14025
14026 case 935:
14027#line 5277 "sql_parser.y" /* yacc.c:1646 */
14028 { (yyval.sym) = (yyvsp[0].sym); }
14029#line 14030 "sql_parser.tab.c" /* yacc.c:1646 */
14030 break;
14031
14032 case 937:
14033#line 5287 "sql_parser.y" /* yacc.c:1646 */
14034 { (yyval.i_val) = (yyvsp[0].i_val);
14035 if ((yyval.i_val) <= 0) {
14036 (yyval.i_val) = -1;
14037 yyerror(m, "Positive value greater than 0 expected");
14038 YYABORT;
14039 }
14040 }
14041#line 14042 "sql_parser.tab.c" /* yacc.c:1646 */
14042 break;
14043
14044 case 938:
14045#line 5298 "sql_parser.y" /* yacc.c:1646 */
14046 { (yyval.l_val) = (yyvsp[0].l_val);
14047 if ((yyval.l_val) <= 0) {
14048 (yyval.l_val) = -1;
14049 yyerror(m, "Positive value greater than 0 expected");
14050 YYABORT;
14051 }
14052 }
14053#line 14054 "sql_parser.tab.c" /* yacc.c:1646 */
14054 break;
14055
14056 case 939:
14057#line 5308 "sql_parser.y" /* yacc.c:1646 */
14058 { (yyval.l_val) = (yyvsp[0].l_val);
14059 if ((yyval.l_val) < 0) {
14060 (yyval.l_val) = -1;
14061 yyerror(m, "Positive value expected");
14062 YYABORT;
14063 }
14064 }
14065#line 14066 "sql_parser.tab.c" /* yacc.c:1646 */
14066 break;
14067
14068 case 940:
14069#line 5318 "sql_parser.y" /* yacc.c:1646 */
14070 { (yyval.i_val) = (yyvsp[0].i_val);
14071 if ((yyval.i_val) < 0) {
14072 (yyval.i_val) = -1;
14073 yyerror(m, "Positive value expected");
14074 YYABORT;
14075 }
14076 }
14077#line 14078 "sql_parser.tab.c" /* yacc.c:1646 */
14078 break;
14079
14080 case 941:
14081#line 5329 "sql_parser.y" /* yacc.c:1646 */
14082 { sql_find_subtype(&(yyval.type), "char", 1, 0); }
14083#line 14084 "sql_parser.tab.c" /* yacc.c:1646 */
14084 break;
14085
14086 case 942:
14087#line 5331 "sql_parser.y" /* yacc.c:1646 */
14088 { (yyval.type).type = NULL;
14089 yyerror(m, "CHARACTER VARYING needs a mandatory length specification");
14090 YYABORT;
14091 }
14092#line 14093 "sql_parser.tab.c" /* yacc.c:1646 */
14093 break;
14094
14095 case 943:
14096#line 5335 "sql_parser.y" /* yacc.c:1646 */
14097 { sql_find_subtype(&(yyval.type), "clob", 0, 0); }
14098#line 14099 "sql_parser.tab.c" /* yacc.c:1646 */
14099 break;
14100
14101 case 944:
14102#line 5337 "sql_parser.y" /* yacc.c:1646 */
14103 { sql_find_subtype(&(yyval.type), "char", (yyvsp[-1].i_val), 0); }
14104#line 14105 "sql_parser.tab.c" /* yacc.c:1646 */
14105 break;
14106
14107 case 945:
14108#line 5339 "sql_parser.y" /* yacc.c:1646 */
14109 { sql_find_subtype(&(yyval.type), "varchar", (yyvsp[-1].i_val), 0); }
14110#line 14111 "sql_parser.tab.c" /* yacc.c:1646 */
14111 break;
14112
14113 case 946:
14114#line 5341 "sql_parser.y" /* yacc.c:1646 */
14115 { sql_find_subtype(&(yyval.type), "clob", (yyvsp[-1].i_val), 0);
14116 /* NOTE: CLOB may be called as CLOB(2K) which is equivalent
14117 * to CLOB(2048). Due to 'nonzero' it is not possible
14118 * to enter this as the parser rejects it. However it
14119 * might be a ToDo for the future.
14120 * See p. 125 SQL-99
14121 */
14122 }
14123#line 14124 "sql_parser.tab.c" /* yacc.c:1646 */
14124 break;
14125
14126 case 947:
14127#line 5349 "sql_parser.y" /* yacc.c:1646 */
14128 { sql_find_subtype(&(yyval.type), "blob", 0, 0); }
14129#line 14130 "sql_parser.tab.c" /* yacc.c:1646 */
14130 break;
14131
14132 case 948:
14133#line 5351 "sql_parser.y" /* yacc.c:1646 */
14134 { sql_find_subtype(&(yyval.type), "blob", (yyvsp[-1].i_val), 0);
14135 /* NOTE: BLOB may be called as BLOB(2K) which is equivalent
14136 * to BLOB(2048). Due to 'nonzero' it is not possible
14137 * to enter this as the parser rejects it. However it
14138 * might be a ToDo for the future.
14139 * See p. 85 SQL-99
14140 */
14141 }
14142#line 14143 "sql_parser.tab.c" /* yacc.c:1646 */
14143 break;
14144
14145 case 949:
14146#line 5359 "sql_parser.y" /* yacc.c:1646 */
14147 { sql_find_subtype(&(yyval.type), "tinyint", 0, 0); }
14148#line 14149 "sql_parser.tab.c" /* yacc.c:1646 */
14149 break;
14150
14151 case 950:
14152#line 5360 "sql_parser.y" /* yacc.c:1646 */
14153 { sql_find_subtype(&(yyval.type), "smallint", 0, 0); }
14154#line 14155 "sql_parser.tab.c" /* yacc.c:1646 */
14155 break;
14156
14157 case 951:
14158#line 5361 "sql_parser.y" /* yacc.c:1646 */
14159 { sql_find_subtype(&(yyval.type), "int", 0, 0); }
14160#line 14161 "sql_parser.tab.c" /* yacc.c:1646 */
14161 break;
14162
14163 case 952:
14164#line 5362 "sql_parser.y" /* yacc.c:1646 */
14165 { sql_find_subtype(&(yyval.type), "bigint", 0, 0); }
14166#line 14167 "sql_parser.tab.c" /* yacc.c:1646 */
14167 break;
14168
14169 case 953:
14170#line 5363 "sql_parser.y" /* yacc.c:1646 */
14171 { sql_find_subtype(&(yyval.type), "hugeint", 0, 0); }
14172#line 14173 "sql_parser.tab.c" /* yacc.c:1646 */
14173 break;
14174
14175 case 954:
14176#line 5365 "sql_parser.y" /* yacc.c:1646 */
14177 { sql_find_subtype(&(yyval.type), "decimal", 18, 3); }
14178#line 14179 "sql_parser.tab.c" /* yacc.c:1646 */
14179 break;
14180
14181 case 955:
14182#line 5367 "sql_parser.y" /* yacc.c:1646 */
14183 {
14184 int d = (yyvsp[-1].i_val);
14185 if (d > MAX_DEC_DIGITS) {
14186 char *msg = sql_message(SQLSTATE(22003) "Decimal of %d digits are not supported", d);
14187 yyerror(m, msg);
14188 _DELETE(msg);
14189 (yyval.type).type = NULL;
14190 YYABORT;
14191 } else {
14192 sql_find_subtype(&(yyval.type), "decimal", d, 0);
14193 }
14194 }
14195#line 14196 "sql_parser.tab.c" /* yacc.c:1646 */
14196 break;
14197
14198 case 956:
14199#line 5380 "sql_parser.y" /* yacc.c:1646 */
14200 {
14201 int d = (yyvsp[-3].i_val);
14202 int s = (yyvsp[-1].i_val);
14203 if (s > d || d > MAX_DEC_DIGITS) {
14204 char *msg = NULL;
14205 if (s > d)
14206 msg = sql_message(SQLSTATE(22003) "Scale (%d) should be less or equal to the precision (%d)", s, d);
14207 else
14208 msg = sql_message(SQLSTATE(22003) "Decimal(%d,%d) isn't supported because P=%d > %d", d, s, d, MAX_DEC_DIGITS);
14209 yyerror(m, msg);
14210 _DELETE(msg);
14211 (yyval.type).type = NULL;
14212 YYABORT;
14213 } else {
14214 sql_find_subtype(&(yyval.type), "decimal", d, s);
14215 }
14216 }
14217#line 14218 "sql_parser.tab.c" /* yacc.c:1646 */
14218 break;
14219
14220 case 957:
14221#line 5397 "sql_parser.y" /* yacc.c:1646 */
14222 { sql_find_subtype(&(yyval.type), "double", 0, 0); }
14223#line 14224 "sql_parser.tab.c" /* yacc.c:1646 */
14224 break;
14225
14226 case 958:
14227#line 5399 "sql_parser.y" /* yacc.c:1646 */
14228 { if ((yyvsp[-1].i_val) > 0 && (yyvsp[-1].i_val) <= 24) {
14229 sql_find_subtype(&(yyval.type), "real", (yyvsp[-1].i_val), 0);
14230 } else if ((yyvsp[-1].i_val) > 24 && (yyvsp[-1].i_val) <= 53) {
14231 sql_find_subtype(&(yyval.type), "double", (yyvsp[-1].i_val), 0);
14232 } else {
14233 char *msg = sql_message(SQLSTATE(22003) "Number of digits for FLOAT values should be between 1 and 53");
14234
14235 yyerror(m, msg);
14236 _DELETE(msg);
14237 (yyval.type).type = NULL;
14238 YYABORT;
14239 }
14240 }
14241#line 14242 "sql_parser.tab.c" /* yacc.c:1646 */
14242 break;
14243
14244 case 959:
14245#line 5413 "sql_parser.y" /* yacc.c:1646 */
14246 { if ((yyvsp[-1].i_val) >= (yyvsp[-3].i_val)) {
14247 char *msg = sql_message(SQLSTATE(22003) "Precision(%d) should be less than number of digits(%d)", (yyvsp[-1].i_val), (yyvsp[-3].i_val));
14248
14249 yyerror(m, msg);
14250 _DELETE(msg);
14251 (yyval.type).type = NULL;
14252 YYABORT;
14253 } else if ((yyvsp[-3].i_val) > 0 && (yyvsp[-3].i_val) <= 24) {
14254 sql_find_subtype(&(yyval.type), "real", (yyvsp[-3].i_val), (yyvsp[-1].i_val));
14255 } else if ((yyvsp[-3].i_val) > 24 && (yyvsp[-3].i_val) <= 53) {
14256 sql_find_subtype(&(yyval.type), "double", (yyvsp[-3].i_val), (yyvsp[-1].i_val));
14257 } else {
14258 char *msg = sql_message(SQLSTATE(22003) "Number of digits for FLOAT values should be between 1 and 53");
14259 yyerror(m, msg);
14260 _DELETE(msg);
14261 (yyval.type).type = NULL;
14262 YYABORT;
14263 }
14264 }
14265#line 14266 "sql_parser.tab.c" /* yacc.c:1646 */
14266 break;
14267
14268 case 960:
14269#line 5432 "sql_parser.y" /* yacc.c:1646 */
14270 { sql_find_subtype(&(yyval.type), "double", 0, 0); }
14271#line 14272 "sql_parser.tab.c" /* yacc.c:1646 */
14272 break;
14273
14274 case 961:
14275#line 5433 "sql_parser.y" /* yacc.c:1646 */
14276 { sql_find_subtype(&(yyval.type), "double", 0, 0); }
14277#line 14278 "sql_parser.tab.c" /* yacc.c:1646 */
14278 break;
14279
14280 case 962:
14281#line 5434 "sql_parser.y" /* yacc.c:1646 */
14282 { sql_find_subtype(&(yyval.type), "real", 0, 0); }
14283#line 14284 "sql_parser.tab.c" /* yacc.c:1646 */
14284 break;
14285
14286 case 965:
14287#line 5437 "sql_parser.y" /* yacc.c:1646 */
14288 { sql_find_subtype(&(yyval.type), (yyvsp[0].sval), 0, 0); }
14289#line 14290 "sql_parser.tab.c" /* yacc.c:1646 */
14290 break;
14291
14292 case 966:
14293#line 5439 "sql_parser.y" /* yacc.c:1646 */
14294 { sql_find_subtype(&(yyval.type), (yyvsp[-3].sval), (yyvsp[-1].i_val), 0); }
14295#line 14296 "sql_parser.tab.c" /* yacc.c:1646 */
14296 break;
14297
14298 case 967:
14299#line 5440 "sql_parser.y" /* yacc.c:1646 */
14300 { sql_find_subtype(&(yyval.type), (yyvsp[0].sval), 0, 0); }
14301#line 14302 "sql_parser.tab.c" /* yacc.c:1646 */
14302 break;
14303
14304 case 968:
14305#line 5442 "sql_parser.y" /* yacc.c:1646 */
14306 { sql_find_subtype(&(yyval.type), (yyvsp[-3].sval), (yyvsp[-1].i_val), 0); }
14307#line 14308 "sql_parser.tab.c" /* yacc.c:1646 */
14308 break;
14309
14310 case 969:
14311#line 5444 "sql_parser.y" /* yacc.c:1646 */
14312 { if ((yyvsp[-1].i_val) >= (yyvsp[-3].i_val)) {
14313 char *msg = sql_message(SQLSTATE(22003) "Precision(%d) should be less than number of digits(%d)", (yyvsp[-1].i_val), (yyvsp[-3].i_val));
14314
14315 yyerror(m, msg);
14316 _DELETE(msg);
14317 (yyval.type).type = NULL;
14318 YYABORT;
14319 } else {
14320 sql_find_subtype(&(yyval.type), (yyvsp[-5].sval), (yyvsp[-3].i_val), (yyvsp[-1].i_val));
14321 }
14322 }
14323#line 14324 "sql_parser.tab.c" /* yacc.c:1646 */
14324 break;
14325
14326 case 970:
14327#line 5455 "sql_parser.y" /* yacc.c:1646 */
14328 {
14329 sql_type *t = mvc_bind_type(m, (yyvsp[0].sval));
14330 if (!t) {
14331 char *msg = sql_message(SQLSTATE(22000) "Type (%s) unknown", (yyvsp[0].sval));
14332
14333 yyerror(m, msg);
14334 _DELETE(msg);
14335 (yyval.type).type = NULL;
14336 YYABORT;
14337 } else {
14338 sql_init_subtype(&(yyval.type), t, 0, 0);
14339 }
14340 }
14341#line 14342 "sql_parser.tab.c" /* yacc.c:1646 */
14342 break;
14343
14344 case 971:
14345#line 5470 "sql_parser.y" /* yacc.c:1646 */
14346 {
14347 sql_type *t = mvc_bind_type(m, (yyvsp[-3].sval));
14348 if (!t) {
14349 char *msg = sql_message(SQLSTATE(22000) "Type (%s) unknown", (yyvsp[-3].sval));
14350
14351 yyerror(m, msg);
14352 _DELETE(msg);
14353 (yyval.type).type = NULL;
14354 YYABORT;
14355 } else {
14356 sql_init_subtype(&(yyval.type), t, (yyvsp[-1].i_val), 0);
14357 }
14358 }
14359#line 14360 "sql_parser.tab.c" /* yacc.c:1646 */
14360 break;
14361
14362 case 972:
14363#line 5483 "sql_parser.y" /* yacc.c:1646 */
14364 {
14365 if (!sql_find_subtype(&(yyval.type), "geometry", 0, 0 )) {
14366 yyerror(m, SQLSTATE(22000) "type (geometry) unknown");
14367 (yyval.type).type = NULL;
14368 YYABORT;
14369 }
14370 }
14371#line 14372 "sql_parser.tab.c" /* yacc.c:1646 */
14372 break;
14373
14374 case 973:
14375#line 5490 "sql_parser.y" /* yacc.c:1646 */
14376 {
14377 int geoSubType = (yyvsp[-1].i_val);
14378
14379 if(geoSubType == 0) {
14380 (yyval.type).type = NULL;
14381 YYABORT;
14382 } else if (!sql_find_subtype(&(yyval.type), "geometry", geoSubType, 0 )) {
14383 char *msg = sql_message(SQLSTATE(22000) "Type (%s) unknown", (yyvsp[-3].sval));
14384 yyerror(m, msg);
14385 _DELETE(msg);
14386 (yyval.type).type = NULL;
14387 YYABORT;
14388 }
14389
14390 }
14391#line 14392 "sql_parser.tab.c" /* yacc.c:1646 */
14392 break;
14393
14394 case 974:
14395#line 5505 "sql_parser.y" /* yacc.c:1646 */
14396 {
14397 int geoSubType = (yyvsp[-3].i_val);
14398 int srid = (yyvsp[-1].i_val);
14399
14400 if(geoSubType == 0) {
14401 (yyval.type).type = NULL;
14402 YYABORT;
14403 } else if (!sql_find_subtype(&(yyval.type), "geometry", geoSubType, srid )) {
14404 char *msg = sql_message(SQLSTATE(22000) "Type (%s) unknown", (yyvsp[-5].sval));
14405 yyerror(m, msg);
14406 _DELETE(msg);
14407 (yyval.type).type = NULL;
14408 YYABORT;
14409 }
14410 }
14411#line 14412 "sql_parser.tab.c" /* yacc.c:1646 */
14412 break;
14413
14414 case 975:
14415#line 5520 "sql_parser.y" /* yacc.c:1646 */
14416 {
14417 if (!sql_find_subtype(&(yyval.type), "geometrya", 0, 0 )) {
14418 yyerror(m, SQLSTATE(22000) "type (geometrya) unknown");
14419 (yyval.type).type = NULL;
14420 YYABORT;
14421 }
14422 }
14423#line 14424 "sql_parser.tab.c" /* yacc.c:1646 */
14424 break;
14425
14426 case 976:
14427#line 5527 "sql_parser.y" /* yacc.c:1646 */
14428 {
14429 int geoSubType = find_subgeometry_type((yyvsp[0].sval));
14430
14431 if(geoSubType == 0) {
14432 char *msg = sql_message(SQLSTATE(22000) "Type (%s) unknown", (yyvsp[0].sval));
14433 (yyval.type).type = NULL;
14434 yyerror(m, msg);
14435 _DELETE(msg);
14436 YYABORT;
14437 } else if (geoSubType == -1) {
14438 char *msg = sql_message(SQLSTATE(HY001) "allocation failure");
14439 (yyval.type).type = NULL;
14440 yyerror(m, msg);
14441 _DELETE(msg);
14442 YYABORT;
14443 } else if (!sql_find_subtype(&(yyval.type), "geometry", geoSubType, 0 )) {
14444 char *msg = sql_message(SQLSTATE(22000) "Type (%s) unknown", (yyvsp[0].sval));
14445 yyerror(m, msg);
14446 _DELETE(msg);
14447 (yyval.type).type = NULL;
14448 YYABORT;
14449 }
14450}
14451#line 14452 "sql_parser.tab.c" /* yacc.c:1646 */
14452 break;
14453
14454 case 977:
14455#line 5553 "sql_parser.y" /* yacc.c:1646 */
14456 {
14457 int subtype = find_subgeometry_type((yyvsp[0].sval));
14458 char* geoSubType = (yyvsp[0].sval);
14459
14460 if(subtype == 0) {
14461 char *msg = sql_message(SQLSTATE(22000) "Type (%s) unknown", geoSubType);
14462 yyerror(m, msg);
14463 _DELETE(msg);
14464 YYABORT;
14465 } else if(subtype == -1) {
14466 char *msg = sql_message(SQLSTATE(HY001) "allocation failure");
14467 yyerror(m, msg);
14468 _DELETE(msg);
14469 YYABORT;
14470 }
14471 (yyval.i_val) = subtype;
14472}
14473#line 14474 "sql_parser.tab.c" /* yacc.c:1646 */
14474 break;
14475
14476 case 978:
14477#line 5570 "sql_parser.y" /* yacc.c:1646 */
14478 {
14479 int subtype = find_subgeometry_type((yyvsp[0].sval));
14480 char* geoSubType = (yyvsp[0].sval);
14481
14482 if(subtype == 0) {
14483 char *msg = sql_message(SQLSTATE(22000) "Type (%s) unknown", geoSubType);
14484 yyerror(m, msg);
14485 _DELETE(msg);
14486 YYABORT;
14487 } else if (subtype == -1) {
14488 char *msg = sql_message(SQLSTATE(HY001) "allocation failure");
14489 yyerror(m, msg);
14490 _DELETE(msg);
14491 YYABORT;
14492 }
14493 (yyval.i_val) = subtype;
14494}
14495#line 14496 "sql_parser.tab.c" /* yacc.c:1646 */
14496 break;
14497
14498 case 979:
14499#line 5591 "sql_parser.y" /* yacc.c:1646 */
14500 { char *t = sql_bind_alias((yyvsp[0].sval));
14501 if (!t) {
14502 char *msg = sql_message(SQLSTATE(22000) "Type (%s) unknown", (yyvsp[0].sval));
14503
14504 yyerror(m, msg);
14505 _DELETE(msg);
14506 (yyval.sval) = NULL;
14507 YYABORT;
14508 }
14509 (yyval.sval) = t;
14510 }
14511#line 14512 "sql_parser.tab.c" /* yacc.c:1646 */
14512 break;
14513
14514 case 980:
14515#line 5605 "sql_parser.y" /* yacc.c:1646 */
14516 { (yyval.sval) = (yyvsp[0].sval); }
14517#line 14518 "sql_parser.tab.c" /* yacc.c:1646 */
14518 break;
14519
14520 case 981:
14521#line 5606 "sql_parser.y" /* yacc.c:1646 */
14522 { (yyval.sval) = (yyvsp[-1].sval); }
14523#line 14524 "sql_parser.tab.c" /* yacc.c:1646 */
14524 break;
14525
14526 case 982:
14527#line 5610 "sql_parser.y" /* yacc.c:1646 */
14528 { (yyval.sval) = (yyvsp[0].sval); }
14529#line 14530 "sql_parser.tab.c" /* yacc.c:1646 */
14530 break;
14531
14532 case 983:
14533#line 5611 "sql_parser.y" /* yacc.c:1646 */
14534 { (yyval.sval) = (yyvsp[0].sval); }
14535#line 14536 "sql_parser.tab.c" /* yacc.c:1646 */
14536 break;
14537
14538 case 984:
14539#line 5612 "sql_parser.y" /* yacc.c:1646 */
14540 { (yyval.sval) = (yyvsp[-2].sval); }
14541#line 14542 "sql_parser.tab.c" /* yacc.c:1646 */
14542 break;
14543
14544 case 985:
14545#line 5615 "sql_parser.y" /* yacc.c:1646 */
14546 { (yyval.sval) = (yyvsp[0].sval); }
14547#line 14548 "sql_parser.tab.c" /* yacc.c:1646 */
14548 break;
14549
14550 case 986:
14551#line 5616 "sql_parser.y" /* yacc.c:1646 */
14552 { (yyval.sval) = (yyvsp[-2].sval); }
14553#line 14554 "sql_parser.tab.c" /* yacc.c:1646 */
14554 break;
14555
14556 case 989:
14557#line 5624 "sql_parser.y" /* yacc.c:1646 */
14558 { (yyval.sval) = (yyvsp[0].sval); }
14559#line 14560 "sql_parser.tab.c" /* yacc.c:1646 */
14560 break;
14561
14562 case 990:
14563#line 5626 "sql_parser.y" /* yacc.c:1646 */
14564 { (yyval.sval) = uescape_xform((yyvsp[-1].sval), (yyvsp[0].sval)); }
14565#line 14566 "sql_parser.tab.c" /* yacc.c:1646 */
14566 break;
14567
14568 case 991:
14569#line 5627 "sql_parser.y" /* yacc.c:1646 */
14570 { (yyval.sval) = (yyvsp[0].sval); }
14571#line 14572 "sql_parser.tab.c" /* yacc.c:1646 */
14572 break;
14573
14574 case 992:
14575#line 5628 "sql_parser.y" /* yacc.c:1646 */
14576 { (yyval.sval) = (yyvsp[0].sval); }
14577#line 14578 "sql_parser.tab.c" /* yacc.c:1646 */
14578 break;
14579
14580 case 993:
14581#line 5629 "sql_parser.y" /* yacc.c:1646 */
14582 { (yyval.sval) = (yyvsp[0].sval); }
14583#line 14584 "sql_parser.tab.c" /* yacc.c:1646 */
14584 break;
14585
14586 case 994:
14587#line 5630 "sql_parser.y" /* yacc.c:1646 */
14588 { (yyval.sval) = (yyvsp[0].sval); }
14589#line 14590 "sql_parser.tab.c" /* yacc.c:1646 */
14590 break;
14591
14592 case 995:
14593#line 5631 "sql_parser.y" /* yacc.c:1646 */
14594 { (yyval.sval) = (yyvsp[0].sval); }
14595#line 14596 "sql_parser.tab.c" /* yacc.c:1646 */
14596 break;
14597
14598 case 996:
14599#line 5636 "sql_parser.y" /* yacc.c:1646 */
14600 {
14601 (yyval.sval) = (yyvsp[0].sval);
14602 if (!(yyvsp[0].sval) || _strlen((yyvsp[0].sval)) == 0) {
14603 char *msg = sql_message(SQLSTATE(42000) "An identifier cannot be empty");
14604 yyerror(m, msg);
14605 _DELETE(msg);
14606 YYABORT;
14607 }
14608 }
14609#line 14610 "sql_parser.tab.c" /* yacc.c:1646 */
14610 break;
14611
14612 case 997:
14613#line 5648 "sql_parser.y" /* yacc.c:1646 */
14614 { (yyval.sval) = (yyvsp[0].sval); }
14615#line 14616 "sql_parser.tab.c" /* yacc.c:1646 */
14616 break;
14617
14618 case 998:
14619#line 5650 "sql_parser.y" /* yacc.c:1646 */
14620 { (yyval.sval) = uescape_xform((yyvsp[-1].sval), (yyvsp[0].sval)); }
14621#line 14622 "sql_parser.tab.c" /* yacc.c:1646 */
14622 break;
14623
14624 case 999:
14625#line 5651 "sql_parser.y" /* yacc.c:1646 */
14626 { (yyval.sval) = (yyvsp[0].sval); }
14627#line 14628 "sql_parser.tab.c" /* yacc.c:1646 */
14628 break;
14629
14630 case 1000:
14631#line 5652 "sql_parser.y" /* yacc.c:1646 */
14632 { (yyval.sval) = (yyvsp[0].sval); }
14633#line 14634 "sql_parser.tab.c" /* yacc.c:1646 */
14634 break;
14635
14636 case 1001:
14637#line 5653 "sql_parser.y" /* yacc.c:1646 */
14638 { (yyval.sval) = (yyvsp[0].sval); }
14639#line 14640 "sql_parser.tab.c" /* yacc.c:1646 */
14640 break;
14641
14642 case 1002:
14643#line 5654 "sql_parser.y" /* yacc.c:1646 */
14644 { (yyval.sval) = (yyvsp[0].sval); }
14645#line 14646 "sql_parser.tab.c" /* yacc.c:1646 */
14646 break;
14647
14648 case 1003:
14649#line 5655 "sql_parser.y" /* yacc.c:1646 */
14650 { (yyval.sval) = (yyvsp[0].sval); }
14651#line 14652 "sql_parser.tab.c" /* yacc.c:1646 */
14652 break;
14653
14654 case 1004:
14655#line 5656 "sql_parser.y" /* yacc.c:1646 */
14656 { (yyval.sval) = (yyvsp[0].sval); }
14657#line 14658 "sql_parser.tab.c" /* yacc.c:1646 */
14658 break;
14659
14660 case 1006:
14661#line 5662 "sql_parser.y" /* yacc.c:1646 */
14662 {
14663 (yyval.sval) = (yyvsp[0].sval);
14664 if (!(yyvsp[0].sval) || _strlen((yyvsp[0].sval)) == 0) {
14665 char *msg = sql_message(SQLSTATE(42000) "An identifier cannot be empty");
14666 yyerror(m, msg);
14667 _DELETE(msg);
14668 YYABORT;
14669 }
14670 }
14671#line 14672 "sql_parser.tab.c" /* yacc.c:1646 */
14672 break;
14673
14674 case 1007:
14675#line 5674 "sql_parser.y" /* yacc.c:1646 */
14676 { (yyval.sval) = sa_strdup(SA, "as"); }
14677#line 14678 "sql_parser.tab.c" /* yacc.c:1646 */
14678 break;
14679
14680 case 1008:
14681#line 5675 "sql_parser.y" /* yacc.c:1646 */
14682 { (yyval.sval) = sa_strdup(SA, "authorization"); }
14683#line 14684 "sql_parser.tab.c" /* yacc.c:1646 */
14684 break;
14685
14686 case 1009:
14687#line 5676 "sql_parser.y" /* yacc.c:1646 */
14688 { (yyval.sval) = sa_strdup(SA, "column"); }
14689#line 14690 "sql_parser.tab.c" /* yacc.c:1646 */
14690 break;
14691
14692 case 1010:
14693#line 5677 "sql_parser.y" /* yacc.c:1646 */
14694 { (yyval.sval) = sa_strdup(SA, "cycle"); }
14695#line 14696 "sql_parser.tab.c" /* yacc.c:1646 */
14696 break;
14697
14698 case 1011:
14699#line 5678 "sql_parser.y" /* yacc.c:1646 */
14700 { (yyval.sval) = sa_strdup(SA, "date"); }
14701#line 14702 "sql_parser.tab.c" /* yacc.c:1646 */
14702 break;
14703
14704 case 1012:
14705#line 5679 "sql_parser.y" /* yacc.c:1646 */
14706 { (yyval.sval) = sa_strdup(SA, "distinct"); }
14707#line 14708 "sql_parser.tab.c" /* yacc.c:1646 */
14708 break;
14709
14710 case 1013:
14711#line 5680 "sql_parser.y" /* yacc.c:1646 */
14712 { (yyval.sval) = sa_strdup(SA, "exec"); }
14713#line 14714 "sql_parser.tab.c" /* yacc.c:1646 */
14714 break;
14715
14716 case 1014:
14717#line 5681 "sql_parser.y" /* yacc.c:1646 */
14718 { (yyval.sval) = sa_strdup(SA, "execute"); }
14719#line 14720 "sql_parser.tab.c" /* yacc.c:1646 */
14720 break;
14721
14722 case 1015:
14723#line 5682 "sql_parser.y" /* yacc.c:1646 */
14724 { (yyval.sval) = sa_strdup(SA, "filter"); }
14725#line 14726 "sql_parser.tab.c" /* yacc.c:1646 */
14726 break;
14727
14728 case 1016:
14729#line 5683 "sql_parser.y" /* yacc.c:1646 */
14730 { (yyval.sval) = sa_strdup(SA, "interval"); }
14731#line 14732 "sql_parser.tab.c" /* yacc.c:1646 */
14732 break;
14733
14734 case 1017:
14735#line 5684 "sql_parser.y" /* yacc.c:1646 */
14736 { (yyval.sval) = sa_strdup(SA, "language"); }
14737#line 14738 "sql_parser.tab.c" /* yacc.c:1646 */
14738 break;
14739
14740 case 1018:
14741#line 5685 "sql_parser.y" /* yacc.c:1646 */
14742 { (yyval.sval) = sa_strdup(SA, "large"); }
14743#line 14744 "sql_parser.tab.c" /* yacc.c:1646 */
14744 break;
14745
14746 case 1019:
14747#line 5686 "sql_parser.y" /* yacc.c:1646 */
14748 { (yyval.sval) = sa_strdup(SA, "match"); }
14749#line 14750 "sql_parser.tab.c" /* yacc.c:1646 */
14750 break;
14751
14752 case 1020:
14753#line 5687 "sql_parser.y" /* yacc.c:1646 */
14754 { (yyval.sval) = sa_strdup(SA, "no"); }
14755#line 14756 "sql_parser.tab.c" /* yacc.c:1646 */
14756 break;
14757
14758 case 1021:
14759#line 5688 "sql_parser.y" /* yacc.c:1646 */
14760 { (yyval.sval) = sa_strdup(SA, "precision"); }
14761#line 14762 "sql_parser.tab.c" /* yacc.c:1646 */
14762 break;
14763
14764 case 1022:
14765#line 5689 "sql_parser.y" /* yacc.c:1646 */
14766 { (yyval.sval) = sa_strdup(SA, "prepare"); }
14767#line 14768 "sql_parser.tab.c" /* yacc.c:1646 */
14768 break;
14769
14770 case 1023:
14771#line 5690 "sql_parser.y" /* yacc.c:1646 */
14772 { (yyval.sval) = sa_strdup(SA, "release"); }
14773#line 14774 "sql_parser.tab.c" /* yacc.c:1646 */
14774 break;
14775
14776 case 1024:
14777#line 5691 "sql_parser.y" /* yacc.c:1646 */
14778 { (yyval.sval) = sa_strdup(SA, "row"); }
14779#line 14780 "sql_parser.tab.c" /* yacc.c:1646 */
14780 break;
14781
14782 case 1025:
14783#line 5692 "sql_parser.y" /* yacc.c:1646 */
14784 { (yyval.sval) = sa_strdup(SA, "start"); }
14785#line 14786 "sql_parser.tab.c" /* yacc.c:1646 */
14786 break;
14787
14788 case 1026:
14789#line 5693 "sql_parser.y" /* yacc.c:1646 */
14790 { (yyval.sval) = sa_strdup(SA, "table"); }
14791#line 14792 "sql_parser.tab.c" /* yacc.c:1646 */
14792 break;
14793
14794 case 1027:
14795#line 5694 "sql_parser.y" /* yacc.c:1646 */
14796 { (yyval.sval) = sa_strdup(SA, "time"); }
14797#line 14798 "sql_parser.tab.c" /* yacc.c:1646 */
14798 break;
14799
14800 case 1028:
14801#line 5695 "sql_parser.y" /* yacc.c:1646 */
14802 { (yyval.sval) = sa_strdup(SA, "timestamp"); }
14803#line 14804 "sql_parser.tab.c" /* yacc.c:1646 */
14804 break;
14805
14806 case 1029:
14807#line 5696 "sql_parser.y" /* yacc.c:1646 */
14808 { (yyval.sval) = sa_strdup(SA, "uescape"); }
14809#line 14810 "sql_parser.tab.c" /* yacc.c:1646 */
14810 break;
14811
14812 case 1030:
14813#line 5697 "sql_parser.y" /* yacc.c:1646 */
14814 { (yyval.sval) = sa_strdup(SA, "value"); }
14815#line 14816 "sql_parser.tab.c" /* yacc.c:1646 */
14816 break;
14817
14818 case 1031:
14819#line 5699 "sql_parser.y" /* yacc.c:1646 */
14820 { (yyval.sval) = sa_strdup(SA, "action"); }
14821#line 14822 "sql_parser.tab.c" /* yacc.c:1646 */
14822 break;
14823
14824 case 1032:
14825#line 5700 "sql_parser.y" /* yacc.c:1646 */
14826 { (yyval.sval) = sa_strdup(SA, "analyze"); }
14827#line 14828 "sql_parser.tab.c" /* yacc.c:1646 */
14828 break;
14829
14830 case 1033:
14831#line 5701 "sql_parser.y" /* yacc.c:1646 */
14832 { (yyval.sval) = sa_strdup(SA, "auto_commit"); }
14833#line 14834 "sql_parser.tab.c" /* yacc.c:1646 */
14834 break;
14835
14836 case 1034:
14837#line 5702 "sql_parser.y" /* yacc.c:1646 */
14838 { (yyval.sval) = sa_strdup(SA, "cache"); }
14839#line 14840 "sql_parser.tab.c" /* yacc.c:1646 */
14840 break;
14841
14842 case 1035:
14843#line 5703 "sql_parser.y" /* yacc.c:1646 */
14844 { (yyval.sval) = sa_strdup(SA, "century"); }
14845#line 14846 "sql_parser.tab.c" /* yacc.c:1646 */
14846 break;
14847
14848 case 1036:
14849#line 5704 "sql_parser.y" /* yacc.c:1646 */
14850 { (yyval.sval) = sa_strdup(SA, "client"); }
14851#line 14852 "sql_parser.tab.c" /* yacc.c:1646 */
14852 break;
14853
14854 case 1037:
14855#line 5705 "sql_parser.y" /* yacc.c:1646 */
14856 { (yyval.sval) = sa_strdup(SA, "comment"); }
14857#line 14858 "sql_parser.tab.c" /* yacc.c:1646 */
14858 break;
14859
14860 case 1038:
14861#line 5706 "sql_parser.y" /* yacc.c:1646 */
14862 { (yyval.sval) = sa_strdup(SA, "data"); }
14863#line 14864 "sql_parser.tab.c" /* yacc.c:1646 */
14864 break;
14865
14866 case 1039:
14867#line 5707 "sql_parser.y" /* yacc.c:1646 */
14868 { (yyval.sval) = sa_strdup(SA, "decade"); }
14869#line 14870 "sql_parser.tab.c" /* yacc.c:1646 */
14870 break;
14871
14872 case 1040:
14873#line 5708 "sql_parser.y" /* yacc.c:1646 */
14874 { (yyval.sval) = sa_strdup(SA, "debug"); }
14875#line 14876 "sql_parser.tab.c" /* yacc.c:1646 */
14876 break;
14877
14878 case 1041:
14879#line 5709 "sql_parser.y" /* yacc.c:1646 */
14880 { (yyval.sval) = sa_strdup(SA, "diagnostics"); }
14881#line 14882 "sql_parser.tab.c" /* yacc.c:1646 */
14882 break;
14883
14884 case 1042:
14885#line 5710 "sql_parser.y" /* yacc.c:1646 */
14886 { (yyval.sval) = sa_strdup(SA, "explain"); }
14887#line 14888 "sql_parser.tab.c" /* yacc.c:1646 */
14888 break;
14889
14890 case 1043:
14891#line 5711 "sql_parser.y" /* yacc.c:1646 */
14892 { (yyval.sval) = sa_strdup(SA, "first"); }
14893#line 14894 "sql_parser.tab.c" /* yacc.c:1646 */
14894 break;
14895
14896 case 1044:
14897#line 5712 "sql_parser.y" /* yacc.c:1646 */
14898 { (yyval.sval) = sa_strdup(SA, "geometry"); }
14899#line 14900 "sql_parser.tab.c" /* yacc.c:1646 */
14900 break;
14901
14902 case 1045:
14903#line 5713 "sql_parser.y" /* yacc.c:1646 */
14904 { (yyval.sval) = sa_strdup(SA, "imprints"); }
14905#line 14906 "sql_parser.tab.c" /* yacc.c:1646 */
14906 break;
14907
14908 case 1046:
14909#line 5714 "sql_parser.y" /* yacc.c:1646 */
14910 { (yyval.sval) = sa_strdup(SA, "increment"); }
14911#line 14912 "sql_parser.tab.c" /* yacc.c:1646 */
14912 break;
14913
14914 case 1047:
14915#line 5715 "sql_parser.y" /* yacc.c:1646 */
14916 { (yyval.sval) = sa_strdup(SA, "key"); }
14917#line 14918 "sql_parser.tab.c" /* yacc.c:1646 */
14918 break;
14919
14920 case 1048:
14921#line 5716 "sql_parser.y" /* yacc.c:1646 */
14922 { (yyval.sval) = sa_strdup(SA, "last"); }
14923#line 14924 "sql_parser.tab.c" /* yacc.c:1646 */
14924 break;
14925
14926 case 1049:
14927#line 5717 "sql_parser.y" /* yacc.c:1646 */
14928 { (yyval.sval) = sa_strdup(SA, "level"); }
14929#line 14930 "sql_parser.tab.c" /* yacc.c:1646 */
14930 break;
14931
14932 case 1050:
14933#line 5718 "sql_parser.y" /* yacc.c:1646 */
14934 { (yyval.sval) = sa_strdup(SA, "maxvalue"); }
14935#line 14936 "sql_parser.tab.c" /* yacc.c:1646 */
14936 break;
14937
14938 case 1051:
14939#line 5719 "sql_parser.y" /* yacc.c:1646 */
14940 { (yyval.sval) = sa_strdup(SA, "MinMax"); }
14941#line 14942 "sql_parser.tab.c" /* yacc.c:1646 */
14942 break;
14943
14944 case 1052:
14945#line 5720 "sql_parser.y" /* yacc.c:1646 */
14946 { (yyval.sval) = sa_strdup(SA, "minvalue"); }
14947#line 14948 "sql_parser.tab.c" /* yacc.c:1646 */
14948 break;
14949
14950 case 1053:
14951#line 5721 "sql_parser.y" /* yacc.c:1646 */
14952 { (yyval.sval) = sa_strdup(SA, "name"); }
14953#line 14954 "sql_parser.tab.c" /* yacc.c:1646 */
14954 break;
14955
14956 case 1054:
14957#line 5722 "sql_parser.y" /* yacc.c:1646 */
14958 { (yyval.sval) = sa_strdup(SA, "nulls"); }
14959#line 14960 "sql_parser.tab.c" /* yacc.c:1646 */
14960 break;
14961
14962 case 1055:
14963#line 5723 "sql_parser.y" /* yacc.c:1646 */
14964 { (yyval.sval) = sa_strdup(SA, "object"); }
14965#line 14966 "sql_parser.tab.c" /* yacc.c:1646 */
14966 break;
14967
14968 case 1056:
14969#line 5724 "sql_parser.y" /* yacc.c:1646 */
14970 { (yyval.sval) = sa_strdup(SA, "options"); }
14971#line 14972 "sql_parser.tab.c" /* yacc.c:1646 */
14972 break;
14973
14974 case 1057:
14975#line 5725 "sql_parser.y" /* yacc.c:1646 */
14976 { (yyval.sval) = sa_strdup(SA, "password"); }
14977#line 14978 "sql_parser.tab.c" /* yacc.c:1646 */
14978 break;
14979
14980 case 1058:
14981#line 5726 "sql_parser.y" /* yacc.c:1646 */
14982 { (yyval.sval) = sa_strdup(SA, "path"); }
14983#line 14984 "sql_parser.tab.c" /* yacc.c:1646 */
14984 break;
14985
14986 case 1059:
14987#line 5727 "sql_parser.y" /* yacc.c:1646 */
14988 { (yyval.sval) = sa_strdup(SA, "plan"); }
14989#line 14990 "sql_parser.tab.c" /* yacc.c:1646 */
14990 break;
14991
14992 case 1060:
14993#line 5728 "sql_parser.y" /* yacc.c:1646 */
14994 { (yyval.sval) = sa_strdup(SA, "prep"); }
14995#line 14996 "sql_parser.tab.c" /* yacc.c:1646 */
14996 break;
14997
14998 case 1061:
14999#line 5729 "sql_parser.y" /* yacc.c:1646 */
15000 { (yyval.sval) = sa_strdup(SA, "privileges"); }
15001#line 15002 "sql_parser.tab.c" /* yacc.c:1646 */
15002 break;
15003
15004 case 1062:
15005#line 5730 "sql_parser.y" /* yacc.c:1646 */
15006 { (yyval.sval) = sa_strdup(SA, "quarter"); }
15007#line 15008 "sql_parser.tab.c" /* yacc.c:1646 */
15008 break;
15009
15010 case 1063:
15011#line 5731 "sql_parser.y" /* yacc.c:1646 */
15012 { (yyval.sval) = sa_strdup(SA, "replace"); }
15013#line 15014 "sql_parser.tab.c" /* yacc.c:1646 */
15014 break;
15015
15016 case 1064:
15017#line 5732 "sql_parser.y" /* yacc.c:1646 */
15018 { (yyval.sval) = sa_strdup(SA, "role"); }
15019#line 15020 "sql_parser.tab.c" /* yacc.c:1646 */
15020 break;
15021
15022 case 1065:
15023#line 5733 "sql_parser.y" /* yacc.c:1646 */
15024 { (yyval.sval) = sa_strdup(SA, "schema"); }
15025#line 15026 "sql_parser.tab.c" /* yacc.c:1646 */
15026 break;
15027
15028 case 1066:
15029#line 5734 "sql_parser.y" /* yacc.c:1646 */
15030 { (yyval.sval) = sa_strdup(SA, "server"); }
15031#line 15032 "sql_parser.tab.c" /* yacc.c:1646 */
15032 break;
15033
15034 case 1067:
15035#line 5735 "sql_parser.y" /* yacc.c:1646 */
15036 { (yyval.sval) = sa_strdup(SA, "session"); }
15037#line 15038 "sql_parser.tab.c" /* yacc.c:1646 */
15038 break;
15039
15040 case 1068:
15041#line 5736 "sql_parser.y" /* yacc.c:1646 */
15042 { (yyval.sval) = sa_strdup(SA, "size"); }
15043#line 15044 "sql_parser.tab.c" /* yacc.c:1646 */
15044 break;
15045
15046 case 1069:
15047#line 5737 "sql_parser.y" /* yacc.c:1646 */
15048 { (yyval.sval) = sa_strdup(SA, "statement"); }
15049#line 15050 "sql_parser.tab.c" /* yacc.c:1646 */
15050 break;
15051
15052 case 1070:
15053#line 5738 "sql_parser.y" /* yacc.c:1646 */
15054 { (yyval.sval) = sa_strdup(SA, "storage"); }
15055#line 15056 "sql_parser.tab.c" /* yacc.c:1646 */
15056 break;
15057
15058 case 1071:
15059#line 5739 "sql_parser.y" /* yacc.c:1646 */
15060 { (yyval.sval) = sa_strdup(SA, "temp"); }
15061#line 15062 "sql_parser.tab.c" /* yacc.c:1646 */
15062 break;
15063
15064 case 1072:
15065#line 5740 "sql_parser.y" /* yacc.c:1646 */
15066 { (yyval.sval) = sa_strdup(SA, "temporary"); }
15067#line 15068 "sql_parser.tab.c" /* yacc.c:1646 */
15068 break;
15069
15070 case 1073:
15071#line 5741 "sql_parser.y" /* yacc.c:1646 */
15072 { (yyval.sval) = sa_strdup(SA, "text"); }
15073#line 15074 "sql_parser.tab.c" /* yacc.c:1646 */
15074 break;
15075
15076 case 1074:
15077#line 5742 "sql_parser.y" /* yacc.c:1646 */
15078 { (yyval.sval) = sa_strdup(SA, "trace"); }
15079#line 15080 "sql_parser.tab.c" /* yacc.c:1646 */
15080 break;
15081
15082 case 1075:
15083#line 5743 "sql_parser.y" /* yacc.c:1646 */
15084 { (yyval.sval) = sa_strdup(SA, "type"); }
15085#line 15086 "sql_parser.tab.c" /* yacc.c:1646 */
15086 break;
15087
15088 case 1076:
15089#line 5744 "sql_parser.y" /* yacc.c:1646 */
15090 { (yyval.sval) = sa_strdup(SA, "week"); }
15091#line 15092 "sql_parser.tab.c" /* yacc.c:1646 */
15092 break;
15093
15094 case 1077:
15095#line 5745 "sql_parser.y" /* yacc.c:1646 */
15096 { (yyval.sval) = sa_strdup(SA, "dow"); }
15097#line 15098 "sql_parser.tab.c" /* yacc.c:1646 */
15098 break;
15099
15100 case 1078:
15101#line 5746 "sql_parser.y" /* yacc.c:1646 */
15102 { (yyval.sval) = sa_strdup(SA, "doy"); }
15103#line 15104 "sql_parser.tab.c" /* yacc.c:1646 */
15104 break;
15105
15106 case 1079:
15107#line 5747 "sql_parser.y" /* yacc.c:1646 */
15108 { (yyval.sval) = sa_strdup(SA, "zone"); }
15109#line 15110 "sql_parser.tab.c" /* yacc.c:1646 */
15110 break;
15111
15112 case 1080:
15113#line 5750 "sql_parser.y" /* yacc.c:1646 */
15114 { (yyval.sval) = sa_strdup(SA, "absent"); }
15115#line 15116 "sql_parser.tab.c" /* yacc.c:1646 */
15116 break;
15117
15118 case 1081:
15119#line 5751 "sql_parser.y" /* yacc.c:1646 */
15120 { (yyval.sval) = sa_strdup(SA, "according"); }
15121#line 15122 "sql_parser.tab.c" /* yacc.c:1646 */
15122 break;
15123
15124 case 1082:
15125#line 5752 "sql_parser.y" /* yacc.c:1646 */
15126 { (yyval.sval) = sa_strdup(SA, "content"); }
15127#line 15128 "sql_parser.tab.c" /* yacc.c:1646 */
15128 break;
15129
15130 case 1083:
15131#line 5753 "sql_parser.y" /* yacc.c:1646 */
15132 { (yyval.sval) = sa_strdup(SA, "document"); }
15133#line 15134 "sql_parser.tab.c" /* yacc.c:1646 */
15134 break;
15135
15136 case 1084:
15137#line 5754 "sql_parser.y" /* yacc.c:1646 */
15138 { (yyval.sval) = sa_strdup(SA, "element"); }
15139#line 15140 "sql_parser.tab.c" /* yacc.c:1646 */
15140 break;
15141
15142 case 1085:
15143#line 5755 "sql_parser.y" /* yacc.c:1646 */
15144 { (yyval.sval) = sa_strdup(SA, "empty"); }
15145#line 15146 "sql_parser.tab.c" /* yacc.c:1646 */
15146 break;
15147
15148 case 1086:
15149#line 5756 "sql_parser.y" /* yacc.c:1646 */
15150 { (yyval.sval) = sa_strdup(SA, "id"); }
15151#line 15152 "sql_parser.tab.c" /* yacc.c:1646 */
15152 break;
15153
15154 case 1087:
15155#line 5757 "sql_parser.y" /* yacc.c:1646 */
15156 { (yyval.sval) = sa_strdup(SA, "location"); }
15157#line 15158 "sql_parser.tab.c" /* yacc.c:1646 */
15158 break;
15159
15160 case 1088:
15161#line 5758 "sql_parser.y" /* yacc.c:1646 */
15162 { (yyval.sval) = sa_strdup(SA, "namespace"); }
15163#line 15164 "sql_parser.tab.c" /* yacc.c:1646 */
15164 break;
15165
15166 case 1089:
15167#line 5759 "sql_parser.y" /* yacc.c:1646 */
15168 { (yyval.sval) = sa_strdup(SA, "nil"); }
15169#line 15170 "sql_parser.tab.c" /* yacc.c:1646 */
15170 break;
15171
15172 case 1090:
15173#line 5760 "sql_parser.y" /* yacc.c:1646 */
15174 { (yyval.sval) = sa_strdup(SA, "passing"); }
15175#line 15176 "sql_parser.tab.c" /* yacc.c:1646 */
15176 break;
15177
15178 case 1091:
15179#line 5761 "sql_parser.y" /* yacc.c:1646 */
15180 { (yyval.sval) = sa_strdup(SA, "ref"); }
15181#line 15182 "sql_parser.tab.c" /* yacc.c:1646 */
15182 break;
15183
15184 case 1092:
15185#line 5762 "sql_parser.y" /* yacc.c:1646 */
15186 { (yyval.sval) = sa_strdup(SA, "returning"); }
15187#line 15188 "sql_parser.tab.c" /* yacc.c:1646 */
15188 break;
15189
15190 case 1093:
15191#line 5763 "sql_parser.y" /* yacc.c:1646 */
15192 { (yyval.sval) = sa_strdup(SA, "strip"); }
15193#line 15194 "sql_parser.tab.c" /* yacc.c:1646 */
15194 break;
15195
15196 case 1094:
15197#line 5764 "sql_parser.y" /* yacc.c:1646 */
15198 { (yyval.sval) = sa_strdup(SA, "uri"); }
15199#line 15200 "sql_parser.tab.c" /* yacc.c:1646 */
15200 break;
15201
15202 case 1095:
15203#line 5765 "sql_parser.y" /* yacc.c:1646 */
15204 { (yyval.sval) = sa_strdup(SA, "whitespace"); }
15205#line 15206 "sql_parser.tab.c" /* yacc.c:1646 */
15206 break;
15207
15208 case 1096:
15209#line 5769 "sql_parser.y" /* yacc.c:1646 */
15210 { (yyval.l) = append_string(L(), (yyvsp[0].sval)); }
15211#line 15212 "sql_parser.tab.c" /* yacc.c:1646 */
15212 break;
15213
15214 case 1097:
15215#line 5771 "sql_parser.y" /* yacc.c:1646 */
15216 { (yyval.l) = append_string((yyvsp[-2].l), (yyvsp[0].sval)); }
15217#line 15218 "sql_parser.tab.c" /* yacc.c:1646 */
15218 break;
15219
15220 case 1098:
15221#line 5776 "sql_parser.y" /* yacc.c:1646 */
15222 {
15223 char *end = NULL, *s = (yyvsp[0].sval);
15224 int l = _strlen(s);
15225 // errno might be non-zero due to other people's code
15226 errno = 0;
15227 if (l <= 19) {
15228 (yyval.l_val) = strtoll(s,&end,10);
15229 } else {
15230 (yyval.l_val) = 0;
15231 }
15232 if (s+l != end || errno == ERANGE) {
15233 char *msg = sql_message(SQLSTATE(22003) "Integer value too large or not a number (%s)", (yyvsp[0].sval));
15234
15235 errno = 0;
15236 yyerror(m, msg);
15237 _DELETE(msg);
15238 (yyval.l_val) = 0;
15239 YYABORT;
15240 }
15241 }
15242#line 15243 "sql_parser.tab.c" /* yacc.c:1646 */
15243 break;
15244
15245 case 1099:
15246#line 5798 "sql_parser.y" /* yacc.c:1646 */
15247 { (yyval.sval) = (yyvsp[0].sval); }
15248#line 15249 "sql_parser.tab.c" /* yacc.c:1646 */
15249 break;
15250
15251 case 1100:
15252#line 5799 "sql_parser.y" /* yacc.c:1646 */
15253 { (yyval.sval) = uescape_xform((yyvsp[-1].sval), (yyvsp[0].sval)); }
15254#line 15255 "sql_parser.tab.c" /* yacc.c:1646 */
15255 break;
15256
15257 case 1101:
15258#line 5804 "sql_parser.y" /* yacc.c:1646 */
15259 {
15260 char *end = NULL, *s = (yyvsp[0].sval);
15261 int l = _strlen(s);
15262 // errno might be non-zero due to other people's code
15263 errno = 0;
15264 if (l <= 10) {
15265 (yyval.i_val) = strtol(s,&end,10);
15266 } else {
15267 (yyval.i_val) = 0;
15268 }
15269 if (s+l != end || errno == ERANGE) {
15270 char *msg = sql_message(SQLSTATE(22003) "Integer value too large or not a number (%s)", (yyvsp[0].sval));
15271
15272 errno = 0;
15273 yyerror(m, msg);
15274 _DELETE(msg);
15275 (yyval.i_val) = 0;
15276 YYABORT;
15277 }
15278 }
15279#line 15280 "sql_parser.tab.c" /* yacc.c:1646 */
15280 break;
15281
15282 case 1102:
15283#line 5824 "sql_parser.y" /* yacc.c:1646 */
15284 {
15285 char *name = (yyvsp[0].sval);
15286 sql_subtype *tpe;
15287
15288 if (!stack_find_var(m, name)) {
15289 char *msg = sql_message(SQLSTATE(22000) "Constant (%s) unknown", (yyvsp[0].sval));
15290
15291 yyerror(m, msg);
15292 _DELETE(msg);
15293 (yyval.i_val) = 0;
15294 YYABORT;
15295 }
15296 tpe = stack_find_type(m, name);
15297 if (tpe->type->localtype == TYPE_lng ||
15298 tpe->type->localtype == TYPE_int ||
15299 tpe->type->localtype == TYPE_sht ||
15300 tpe->type->localtype == TYPE_bte ) {
15301#ifdef HAVE_HGE
15302 hge sgn = stack_get_number(m, name);
15303 assert((hge) GDK_int_min <= sgn && sgn <= (hge) GDK_int_max);
15304#else
15305 lng sgn = stack_get_number(m, name);
15306 assert((lng) GDK_int_min <= sgn && sgn <= (lng) GDK_int_max);
15307#endif
15308 (yyval.i_val) = (int) sgn;
15309 } else {
15310 char *msg = sql_message(SQLSTATE(22000) "Constant (%s) has wrong type (number expected)", (yyvsp[0].sval));
15311
15312 yyerror(m, msg);
15313 _DELETE(msg);
15314 (yyval.i_val) = 0;
15315 YYABORT;
15316 }
15317 }
15318#line 15319 "sql_parser.tab.c" /* yacc.c:1646 */
15319 break;
15320
15321 case 1103:
15322#line 5861 "sql_parser.y" /* yacc.c:1646 */
15323 { (yyval.sval) = "\\"; }
15324#line 15325 "sql_parser.tab.c" /* yacc.c:1646 */
15325 break;
15326
15327 case 1104:
15328#line 5863 "sql_parser.y" /* yacc.c:1646 */
15329 { char *s = (yyvsp[0].sval);
15330 if (strlen(s) != 1 || strchr("\"'0123456789abcdefABCDEF+ \t\n\r\f", *s) != NULL) {
15331 yyerror(m, SQLSTATE(22019) "UESCAPE must be one character");
15332 (yyval.sval) = NULL;
15333 YYABORT;
15334 } else {
15335 (yyval.sval) = s;
15336 }
15337 }
15338#line 15339 "sql_parser.tab.c" /* yacc.c:1646 */
15339 break;
15340
15341 case 1105:
15342#line 5875 "sql_parser.y" /* yacc.c:1646 */
15343 { (yyval.sval) = (yyvsp[0].sval); }
15344#line 15345 "sql_parser.tab.c" /* yacc.c:1646 */
15345 break;
15346
15347 case 1106:
15348#line 5877 "sql_parser.y" /* yacc.c:1646 */
15349 { char *s = strconcat((yyvsp[-1].sval),(yyvsp[0].sval));
15350 (yyval.sval) = sa_strdup(SA, s);
15351 _DELETE(s);
15352 }
15353#line 15354 "sql_parser.tab.c" /* yacc.c:1646 */
15354 break;
15355
15356 case 1107:
15357#line 5885 "sql_parser.y" /* yacc.c:1646 */
15358 { (yyval.sval) = (yyvsp[0].sval); }
15359#line 15360 "sql_parser.tab.c" /* yacc.c:1646 */
15360 break;
15361
15362 case 1108:
15363#line 5887 "sql_parser.y" /* yacc.c:1646 */
15364 { char *s = strconcat((yyvsp[-1].sval),(yyvsp[0].sval));
15365 (yyval.sval) = sa_strdup(SA, s);
15366 _DELETE(s);
15367 }
15368#line 15369 "sql_parser.tab.c" /* yacc.c:1646 */
15369 break;
15370
15371 case 1109:
15372#line 5895 "sql_parser.y" /* yacc.c:1646 */
15373 { (yyval.sval) = (yyvsp[0].sval); }
15374#line 15375 "sql_parser.tab.c" /* yacc.c:1646 */
15375 break;
15376
15377 case 1110:
15378#line 5897 "sql_parser.y" /* yacc.c:1646 */
15379 { char *s = strconcat((yyvsp[-1].sval),(yyvsp[0].sval));
15380 (yyval.sval) = sa_strdup(SA, s);
15381 _DELETE(s);
15382 }
15383#line 15384 "sql_parser.tab.c" /* yacc.c:1646 */
15384 break;
15385
15386 case 1111:
15387#line 5904 "sql_parser.y" /* yacc.c:1646 */
15388 { (yyval.sval) = (yyvsp[0].sval); }
15389#line 15390 "sql_parser.tab.c" /* yacc.c:1646 */
15390 break;
15391
15392 case 1112:
15393#line 5906 "sql_parser.y" /* yacc.c:1646 */
15394 { (yyval.sval) = uescape_xform((yyvsp[-1].sval), (yyvsp[0].sval));
15395 if ((yyval.sval) == NULL) {
15396 yyerror(m, SQLSTATE(22019) "Bad Unicode string");
15397 YYABORT;
15398 }
15399 }
15400#line 15401 "sql_parser.tab.c" /* yacc.c:1646 */
15401 break;
15402
15403 case 1113:
15404#line 5916 "sql_parser.y" /* yacc.c:1646 */
15405 {
15406 m->emode = m_execute;
15407 (yyval.sym) = (yyvsp[0].sym); }
15408#line 15409 "sql_parser.tab.c" /* yacc.c:1646 */
15409 break;
15410
15411 case 1114:
15412#line 5923 "sql_parser.y" /* yacc.c:1646 */
15413 { dlist *l = L();
15414 append_int(l, (yyvsp[-2].i_val));
15415 append_list(l, NULL);
15416 (yyval.sym) = _symbol_create_list( SQL_NOP, l ); }
15417#line 15418 "sql_parser.tab.c" /* yacc.c:1646 */
15418 break;
15419
15420 case 1115:
15421#line 5928 "sql_parser.y" /* yacc.c:1646 */
15422 { dlist *l = L();
15423 append_int(l, (yyvsp[-3].i_val));
15424 append_list(l, (yyvsp[-1].l));
15425 (yyval.sym) = _symbol_create_list( SQL_NOP, l ); }
15426#line 15427 "sql_parser.tab.c" /* yacc.c:1646 */
15427 break;
15428
15429 case 1116:
15430#line 5942 "sql_parser.y" /* yacc.c:1646 */
15431 { (yyval.sym) = NULL; }
15432#line 15433 "sql_parser.tab.c" /* yacc.c:1646 */
15433 break;
15434
15435 case 1118:
15436#line 5947 "sql_parser.y" /* yacc.c:1646 */
15437 { (yyval.sym) = _symbol_create_list( SQL_PATH, (yyvsp[0].l)); }
15438#line 15439 "sql_parser.tab.c" /* yacc.c:1646 */
15439 break;
15440
15441 case 1120:
15442#line 5955 "sql_parser.y" /* yacc.c:1646 */
15443 { dlist *l = L();
15444 append_symbol(l, (yyvsp[-2].sym));
15445 append_string(l, (yyvsp[0].sval));
15446 (yyval.sym) = _symbol_create_list( SQL_COMMENT, l );
15447 }
15448#line 15449 "sql_parser.tab.c" /* yacc.c:1646 */
15449 break;
15450
15451 case 1121:
15452#line 5961 "sql_parser.y" /* yacc.c:1646 */
15453 { dlist *l = L();
15454 append_symbol(l, (yyvsp[-2].sym));
15455 append_string(l, NULL);
15456 (yyval.sym) = _symbol_create_list( SQL_COMMENT, l );
15457 }
15458#line 15459 "sql_parser.tab.c" /* yacc.c:1646 */
15459 break;
15460
15461 case 1122:
15462#line 5969 "sql_parser.y" /* yacc.c:1646 */
15463 { (yyval.sym) = _symbol_create( SQL_SCHEMA, (yyvsp[0].sval) ); }
15464#line 15465 "sql_parser.tab.c" /* yacc.c:1646 */
15465 break;
15466
15467 case 1123:
15468#line 5970 "sql_parser.y" /* yacc.c:1646 */
15469 { (yyval.sym) = _symbol_create_list( SQL_TABLE, (yyvsp[0].l) ); }
15470#line 15471 "sql_parser.tab.c" /* yacc.c:1646 */
15471 break;
15472
15473 case 1124:
15474#line 5971 "sql_parser.y" /* yacc.c:1646 */
15475 { (yyval.sym) = _symbol_create_list( SQL_VIEW, (yyvsp[0].l) ); }
15476#line 15477 "sql_parser.tab.c" /* yacc.c:1646 */
15477 break;
15478
15479 case 1125:
15480#line 5973 "sql_parser.y" /* yacc.c:1646 */
15481 { dlist *l = L();
15482 append_string(l, (yyvsp[-2].sval));
15483 append_string(l, (yyvsp[0].sval));
15484 (yyval.sym) = _symbol_create_list( SQL_COLUMN, l );
15485 }
15486#line 15487 "sql_parser.tab.c" /* yacc.c:1646 */
15487 break;
15488
15489 case 1126:
15490#line 5979 "sql_parser.y" /* yacc.c:1646 */
15491 { dlist *l = L();
15492 append_string(l, (yyvsp[-4].sval));
15493 append_string(l, (yyvsp[-2].sval));
15494 append_string(l, (yyvsp[0].sval));
15495 (yyval.sym) = _symbol_create_list( SQL_COLUMN, l );
15496 }
15497#line 15498 "sql_parser.tab.c" /* yacc.c:1646 */
15498 break;
15499
15500 case 1127:
15501#line 5985 "sql_parser.y" /* yacc.c:1646 */
15502 { (yyval.sym) = _symbol_create_list( SQL_INDEX, (yyvsp[0].l) ); }
15503#line 15504 "sql_parser.tab.c" /* yacc.c:1646 */
15504 break;
15505
15506 case 1128:
15507#line 5986 "sql_parser.y" /* yacc.c:1646 */
15508 { (yyval.sym) = _symbol_create_list( SQL_SEQUENCE, (yyvsp[0].l) ); }
15509#line 15510 "sql_parser.tab.c" /* yacc.c:1646 */
15510 break;
15511
15512 case 1129:
15513#line 5987 "sql_parser.y" /* yacc.c:1646 */
15514 { (yyval.sym) = _symbol_create_list( SQL_ROUTINE, (yyvsp[0].l) ); }
15515#line 15516 "sql_parser.tab.c" /* yacc.c:1646 */
15516 break;
15517
15518 case 1131:
15519#line 5996 "sql_parser.y" /* yacc.c:1646 */
15520 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
15521#line 15522 "sql_parser.tab.c" /* yacc.c:1646 */
15522 break;
15523
15524 case 1132:
15525#line 5998 "sql_parser.y" /* yacc.c:1646 */
15526 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym)); }
15527#line 15528 "sql_parser.tab.c" /* yacc.c:1646 */
15528 break;
15529
15530 case 1144:
15531#line 6020 "sql_parser.y" /* yacc.c:1646 */
15532 { dlist *l = L();
15533 append_symbol(l, (yyvsp[-2].sym));
15534 append_int(l, (yyvsp[-1].i_val));
15535 (yyval.sym) = _symbol_create_list( SQL_XMLCOMMENT, l); }
15536#line 15537 "sql_parser.tab.c" /* yacc.c:1646 */
15537 break;
15538
15539 case 1145:
15540#line 6028 "sql_parser.y" /* yacc.c:1646 */
15541 { dlist *l = L();
15542 append_list(l, (yyvsp[-2].l));
15543 append_int(l, (yyvsp[-1].i_val));
15544 (yyval.sym) = _symbol_create_list( SQL_XMLCONCAT, l); }
15545#line 15546 "sql_parser.tab.c" /* yacc.c:1646 */
15546 break;
15547
15548 case 1146:
15549#line 6036 "sql_parser.y" /* yacc.c:1646 */
15550 { dlist *l = L();
15551 append_symbol(l, (yyvsp[-2].sym));
15552 append_int(l, (yyvsp[-1].i_val));
15553 (yyval.sym) = _symbol_create_list( SQL_XMLDOCUMENT, l); }
15554#line 15555 "sql_parser.tab.c" /* yacc.c:1646 */
15555 break;
15556
15557 case 1147:
15558#line 6046 "sql_parser.y" /* yacc.c:1646 */
15559 { dlist *l = L();
15560 append_string(l, (yyvsp[-3].sval));
15561 append_list(l, (yyvsp[-2].l));
15562 append_int(l, (yyvsp[-1].i_val));
15563 (yyval.sym) = _symbol_create_list( SQL_XMLELEMENT, l);
15564 }
15565#line 15566 "sql_parser.tab.c" /* yacc.c:1646 */
15566 break;
15567
15568 case 1148:
15569#line 6056 "sql_parser.y" /* yacc.c:1646 */
15570 { (yyval.l) = NULL; }
15571#line 15572 "sql_parser.tab.c" /* yacc.c:1646 */
15572 break;
15573
15574 case 1149:
15575#line 6058 "sql_parser.y" /* yacc.c:1646 */
15576 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym));
15577 (yyval.l) = append_symbol((yyval.l), NULL);
15578 (yyval.l) = append_list((yyval.l), NULL); }
15579#line 15580 "sql_parser.tab.c" /* yacc.c:1646 */
15580 break;
15581
15582 case 1150:
15583#line 6062 "sql_parser.y" /* yacc.c:1646 */
15584 { (yyval.l) = append_symbol(L(), (yyvsp[-2].sym));
15585 (yyval.l) = append_symbol((yyval.l), (yyvsp[0].sym));
15586 (yyval.l) = append_list((yyval.l), NULL); }
15587#line 15588 "sql_parser.tab.c" /* yacc.c:1646 */
15588 break;
15589
15590 case 1151:
15591#line 6066 "sql_parser.y" /* yacc.c:1646 */
15592 { (yyval.l) = append_symbol(L(), (yyvsp[-4].sym));
15593 (yyval.l) = append_symbol((yyval.l), (yyvsp[-2].sym));
15594 (yyval.l) = append_list((yyval.l), (yyvsp[0].l)); }
15595#line 15596 "sql_parser.tab.c" /* yacc.c:1646 */
15596 break;
15597
15598 case 1152:
15599#line 6070 "sql_parser.y" /* yacc.c:1646 */
15600 { (yyval.l) = append_symbol(L(), (yyvsp[-2].sym));
15601 (yyval.l) = append_symbol((yyval.l), NULL);
15602 (yyval.l) = append_list((yyval.l), (yyvsp[0].l)); }
15603#line 15604 "sql_parser.tab.c" /* yacc.c:1646 */
15604 break;
15605
15606 case 1153:
15607#line 6074 "sql_parser.y" /* yacc.c:1646 */
15608 { (yyval.l) = append_symbol(L(), NULL);
15609 (yyval.l) = append_symbol((yyval.l), (yyvsp[0].sym));
15610 (yyval.l) = append_list((yyval.l), NULL); }
15611#line 15612 "sql_parser.tab.c" /* yacc.c:1646 */
15612 break;
15613
15614 case 1154:
15615#line 6078 "sql_parser.y" /* yacc.c:1646 */
15616 { (yyval.l) = append_symbol(L(), NULL);
15617 (yyval.l) = append_symbol((yyval.l), (yyvsp[-2].sym));
15618 (yyval.l) = append_list((yyval.l), (yyvsp[0].l)); }
15619#line 15620 "sql_parser.tab.c" /* yacc.c:1646 */
15620 break;
15621
15622 case 1155:
15623#line 6082 "sql_parser.y" /* yacc.c:1646 */
15624 { (yyval.l) = append_symbol(L(), NULL);
15625 (yyval.l) = append_symbol((yyval.l), NULL);
15626 (yyval.l) = append_list((yyval.l), (yyvsp[0].l)); }
15627#line 15628 "sql_parser.tab.c" /* yacc.c:1646 */
15628 break;
15629
15630 case 1157:
15631#line 6092 "sql_parser.y" /* yacc.c:1646 */
15632 { (yyval.sym) = (yyvsp[-1].sym); }
15633#line 15634 "sql_parser.tab.c" /* yacc.c:1646 */
15634 break;
15635
15636 case 1158:
15637#line 6096 "sql_parser.y" /* yacc.c:1646 */
15638 { (yyval.sym) = (yyvsp[0].sym); }
15639#line 15640 "sql_parser.tab.c" /* yacc.c:1646 */
15640 break;
15641
15642 case 1159:
15643#line 6098 "sql_parser.y" /* yacc.c:1646 */
15644 { dlist *l = L();
15645 append_list(l,
15646 append_string(L(), sa_strdup(SA, "concat")));
15647 append_symbol(l, (yyvsp[-2].sym));
15648 append_symbol(l, (yyvsp[0].sym));
15649 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
15650#line 15651 "sql_parser.tab.c" /* yacc.c:1646 */
15651 break;
15652
15653 case 1160:
15654#line 6108 "sql_parser.y" /* yacc.c:1646 */
15655 { dlist *l = L();
15656 append_string(l, (yyvsp[0].sval));
15657 append_symbol(l, (yyvsp[-1].sym));
15658 (yyval.sym) = _symbol_create_list( SQL_XMLATTRIBUTE, l ); }
15659#line 15660 "sql_parser.tab.c" /* yacc.c:1646 */
15660 break;
15661
15662 case 1161:
15663#line 6115 "sql_parser.y" /* yacc.c:1646 */
15664 { (yyval.sval) = NULL; }
15665#line 15666 "sql_parser.tab.c" /* yacc.c:1646 */
15666 break;
15667
15668 case 1162:
15669#line 6116 "sql_parser.y" /* yacc.c:1646 */
15670 { (yyval.sval) = (yyvsp[0].sval); }
15671#line 15672 "sql_parser.tab.c" /* yacc.c:1646 */
15672 break;
15673
15674 case 1165:
15675#line 6129 "sql_parser.y" /* yacc.c:1646 */
15676 { (yyval.l) = L();
15677 (yyval.l) = append_list((yyval.l), (yyvsp[-1].l));
15678 (yyval.l) = append_int((yyval.l), (yyvsp[0].i_val)); }
15679#line 15680 "sql_parser.tab.c" /* yacc.c:1646 */
15680 break;
15681
15682 case 1166:
15683#line 6136 "sql_parser.y" /* yacc.c:1646 */
15684 { (yyval.l) = append_symbol(L(), (yyvsp[0].sym)); }
15685#line 15686 "sql_parser.tab.c" /* yacc.c:1646 */
15686 break;
15687
15688 case 1167:
15689#line 6138 "sql_parser.y" /* yacc.c:1646 */
15690 { (yyval.l) = append_symbol((yyvsp[-2].l), (yyvsp[0].sym)); }
15691#line 15692 "sql_parser.tab.c" /* yacc.c:1646 */
15692 break;
15693
15694 case 1169:
15695#line 6146 "sql_parser.y" /* yacc.c:1646 */
15696 { (yyval.i_val) = 0; }
15697#line 15698 "sql_parser.tab.c" /* yacc.c:1646 */
15698 break;
15699
15700 case 1170:
15701#line 6147 "sql_parser.y" /* yacc.c:1646 */
15702 { (yyval.i_val) = (yyvsp[0].i_val); }
15703#line 15704 "sql_parser.tab.c" /* yacc.c:1646 */
15704 break;
15705
15706 case 1171:
15707#line 6151 "sql_parser.y" /* yacc.c:1646 */
15708 { (yyval.i_val) = 0; }
15709#line 15710 "sql_parser.tab.c" /* yacc.c:1646 */
15710 break;
15711
15712 case 1172:
15713#line 6152 "sql_parser.y" /* yacc.c:1646 */
15714 { (yyval.i_val) = 1; }
15715#line 15716 "sql_parser.tab.c" /* yacc.c:1646 */
15716 break;
15717
15718 case 1173:
15719#line 6153 "sql_parser.y" /* yacc.c:1646 */
15720 { (yyval.i_val) = 2; }
15721#line 15722 "sql_parser.tab.c" /* yacc.c:1646 */
15722 break;
15723
15724 case 1174:
15725#line 6154 "sql_parser.y" /* yacc.c:1646 */
15726 { (yyval.i_val) = 3; }
15727#line 15728 "sql_parser.tab.c" /* yacc.c:1646 */
15728 break;
15729
15730 case 1175:
15731#line 6155 "sql_parser.y" /* yacc.c:1646 */
15732 { (yyval.i_val) = 4; }
15733#line 15734 "sql_parser.tab.c" /* yacc.c:1646 */
15734 break;
15735
15736 case 1176:
15737#line 6162 "sql_parser.y" /* yacc.c:1646 */
15738 { dlist *l = L();
15739 append_symbol(l, (yyvsp[-4].sym));
15740 append_list(l, (yyvsp[-3].l));
15741 append_int(l, (yyvsp[-2].i_val));
15742 append_int(l, (yyvsp[-1].i_val));
15743 (yyval.sym) = _symbol_create_list( SQL_XMLFOREST, l);
15744 }
15745#line 15746 "sql_parser.tab.c" /* yacc.c:1646 */
15746 break;
15747
15748 case 1177:
15749#line 6172 "sql_parser.y" /* yacc.c:1646 */
15750 { (yyval.sym) = NULL; }
15751#line 15752 "sql_parser.tab.c" /* yacc.c:1646 */
15752 break;
15753
15754 case 1178:
15755#line 6173 "sql_parser.y" /* yacc.c:1646 */
15756 { (yyval.sym) = (yyvsp[-1].sym); }
15757#line 15758 "sql_parser.tab.c" /* yacc.c:1646 */
15758 break;
15759
15760 case 1179:
15761#line 6178 "sql_parser.y" /* yacc.c:1646 */
15762 { (yyval.l) = append_list(L(), (yyvsp[0].l)); }
15763#line 15764 "sql_parser.tab.c" /* yacc.c:1646 */
15764 break;
15765
15766 case 1180:
15767#line 6180 "sql_parser.y" /* yacc.c:1646 */
15768 { (yyval.l) = append_list((yyvsp[-2].l), (yyvsp[0].l)); }
15769#line 15770 "sql_parser.tab.c" /* yacc.c:1646 */
15770 break;
15771
15772 case 1181:
15773#line 6185 "sql_parser.y" /* yacc.c:1646 */
15774 { (yyval.l) = append_symbol(L(), (yyvsp[-1].sym));
15775 (yyval.l) = append_string((yyval.l), (yyvsp[0].sval)); }
15776#line 15777 "sql_parser.tab.c" /* yacc.c:1646 */
15777 break;
15778
15779 case 1182:
15780#line 6190 "sql_parser.y" /* yacc.c:1646 */
15781 { (yyval.sym) = (yyvsp[0].sym); }
15782#line 15783 "sql_parser.tab.c" /* yacc.c:1646 */
15783 break;
15784
15785 case 1183:
15786#line 6194 "sql_parser.y" /* yacc.c:1646 */
15787 { (yyval.sval) = NULL; }
15788#line 15789 "sql_parser.tab.c" /* yacc.c:1646 */
15789 break;
15790
15791 case 1184:
15792#line 6195 "sql_parser.y" /* yacc.c:1646 */
15793 { (yyval.sval) = (yyvsp[0].sval); }
15794#line 15795 "sql_parser.tab.c" /* yacc.c:1646 */
15795 break;
15796
15797 case 1185:
15798#line 6199 "sql_parser.y" /* yacc.c:1646 */
15799 { (yyval.sval) = (yyvsp[0].sval); }
15800#line 15801 "sql_parser.tab.c" /* yacc.c:1646 */
15801 break;
15802
15803 case 1186:
15804#line 6206 "sql_parser.y" /* yacc.c:1646 */
15805 { dlist *l = L();
15806 append_int(l, (yyvsp[-3].i_val) );
15807 append_symbol(l, (yyvsp[-2].sym));
15808 append_int(l, (yyvsp[-1].i_val));
15809 (yyval.sym) = _symbol_create_list( SQL_XMLPARSE, l); }
15810#line 15811 "sql_parser.tab.c" /* yacc.c:1646 */
15811 break;
15812
15813 case 1187:
15814#line 6213 "sql_parser.y" /* yacc.c:1646 */
15815 { (yyval.i_val) = 0; }
15816#line 15817 "sql_parser.tab.c" /* yacc.c:1646 */
15817 break;
15818
15819 case 1188:
15820#line 6214 "sql_parser.y" /* yacc.c:1646 */
15821 { (yyval.i_val) = 1; }
15822#line 15823 "sql_parser.tab.c" /* yacc.c:1646 */
15823 break;
15824
15825 case 1189:
15826#line 6221 "sql_parser.y" /* yacc.c:1646 */
15827 { dlist *l = L();
15828 append_string(l, (yyvsp[-3].sval));
15829 append_symbol(l, (yyvsp[-2].sym));
15830 append_int(l, (yyvsp[-1].i_val));
15831 (yyval.sym) = _symbol_create_list( SQL_XMLPI, l); }
15832#line 15833 "sql_parser.tab.c" /* yacc.c:1646 */
15833 break;
15834
15835 case 1191:
15836#line 6233 "sql_parser.y" /* yacc.c:1646 */
15837 { (yyval.sym) = NULL; }
15838#line 15839 "sql_parser.tab.c" /* yacc.c:1646 */
15839 break;
15840
15841 case 1192:
15842#line 6235 "sql_parser.y" /* yacc.c:1646 */
15843 { (yyval.sym) = (yyvsp[0].sym); }
15844#line 15845 "sql_parser.tab.c" /* yacc.c:1646 */
15845 break;
15846
15847 case 1193:
15848#line 6246 "sql_parser.y" /* yacc.c:1646 */
15849 { (yyval.sym) = NULL; }
15850#line 15851 "sql_parser.tab.c" /* yacc.c:1646 */
15851 break;
15852
15853 case 1208:
15854#line 6292 "sql_parser.y" /* yacc.c:1646 */
15855 { dlist *l = L();
15856 append_symbol(l, (yyvsp[-2].sym));
15857 append_int(l, (yyvsp[-1].i_val));
15858 (yyval.sym) = _symbol_create_list( SQL_XMLTEXT, l); }
15859#line 15860 "sql_parser.tab.c" /* yacc.c:1646 */
15860 break;
15861
15862 case 1209:
15863#line 6303 "sql_parser.y" /* yacc.c:1646 */
15864 { (yyval.sym) = NULL; }
15865#line 15866 "sql_parser.tab.c" /* yacc.c:1646 */
15866 break;
15867
15868 case 1211:
15869#line 6308 "sql_parser.y" /* yacc.c:1646 */
15870 { (yyval.i_val) = 2; }
15871#line 15872 "sql_parser.tab.c" /* yacc.c:1646 */
15872 break;
15873
15874 case 1212:
15875#line 6312 "sql_parser.y" /* yacc.c:1646 */
15876 { (yyval.i_val) = 0; }
15877#line 15878 "sql_parser.tab.c" /* yacc.c:1646 */
15878 break;
15879
15880 case 1213:
15881#line 6313 "sql_parser.y" /* yacc.c:1646 */
15882 { (yyval.i_val) = 1; }
15883#line 15884 "sql_parser.tab.c" /* yacc.c:1646 */
15884 break;
15885
15886 case 1214:
15887#line 6317 "sql_parser.y" /* yacc.c:1646 */
15888 { (yyval.i_val) = 0; }
15889#line 15890 "sql_parser.tab.c" /* yacc.c:1646 */
15890 break;
15891
15892 case 1215:
15893#line 6318 "sql_parser.y" /* yacc.c:1646 */
15894 { (yyval.i_val) = 0; }
15895#line 15896 "sql_parser.tab.c" /* yacc.c:1646 */
15896 break;
15897
15898 case 1216:
15899#line 6319 "sql_parser.y" /* yacc.c:1646 */
15900 { (yyval.i_val) = 1; }
15901#line 15902 "sql_parser.tab.c" /* yacc.c:1646 */
15902 break;
15903
15904 case 1217:
15905#line 6334 "sql_parser.y" /* yacc.c:1646 */
15906 { (yyval.sym) = (yyvsp[-1].sym); }
15907#line 15908 "sql_parser.tab.c" /* yacc.c:1646 */
15908 break;
15909
15910 case 1218:
15911#line 6338 "sql_parser.y" /* yacc.c:1646 */
15912 { (yyval.sym) = (yyvsp[0].sym); }
15913#line 15914 "sql_parser.tab.c" /* yacc.c:1646 */
15914 break;
15915
15916 case 1219:
15917#line 6340 "sql_parser.y" /* yacc.c:1646 */
15918 { dlist *l = L();
15919 append_list(l,
15920 append_string(L(), sa_strdup(SA, "concat")));
15921 append_symbol(l, (yyvsp[-2].sym));
15922 append_symbol(l, (yyvsp[0].sym));
15923 (yyval.sym) = _symbol_create_list( SQL_BINOP, l ); }
15924#line 15925 "sql_parser.tab.c" /* yacc.c:1646 */
15925 break;
15926
15927 case 1224:
15928#line 6363 "sql_parser.y" /* yacc.c:1646 */
15929 { char *s = strconcat("xmlns:", (yyvsp[0].sval));
15930 dlist *l = L();
15931 append_string(l, sa_strdup(SA, s));
15932 _DELETE(s);
15933 append_symbol(l, (yyvsp[-2].sym));
15934 (yyval.sym) = _symbol_create_list( SQL_XMLATTRIBUTE, l ); }
15935#line 15936 "sql_parser.tab.c" /* yacc.c:1646 */
15936 break;
15937
15938 case 1225:
15939#line 6372 "sql_parser.y" /* yacc.c:1646 */
15940 { dlist *l = L();
15941 append_string(l, sa_strdup(SA, "xmlns" ));
15942 append_symbol(l, (yyvsp[0].sym));
15943 (yyval.sym) = _symbol_create_list( SQL_XMLATTRIBUTE, l ); }
15944#line 15945 "sql_parser.tab.c" /* yacc.c:1646 */
15945 break;
15946
15947 case 1226:
15948#line 6376 "sql_parser.y" /* yacc.c:1646 */
15949 { (yyval.sym) = NULL; }
15950#line 15951 "sql_parser.tab.c" /* yacc.c:1646 */
15951 break;
15952
15953 case 1256:
15954#line 6472 "sql_parser.y" /* yacc.c:1646 */
15955 {
15956 dlist *aggr = L();
15957
15958 if ((yyvsp[-2].sym)) {
15959 if ((yyvsp[-3].sym) != NULL && (yyvsp[-3].sym)->token == SQL_SELECT) {
15960 SelectNode *s = (SelectNode*)(yyvsp[-3].sym);
15961
15962 s->orderby = (yyvsp[-2].sym);
15963 } else {
15964 yyerror(m, "ORDER BY: missing select operator");
15965 YYABORT;
15966 }
15967 }
15968 append_list(aggr, append_string(append_string(L(), "sys"), "xmlagg"));
15969 append_int(aggr, FALSE);
15970 append_symbol(aggr, (yyvsp[-3].sym));
15971 /* int returning not used */
15972 (yyval.sym) = _symbol_create_list( SQL_AGGR, aggr);
15973 }
15974#line 15975 "sql_parser.tab.c" /* yacc.c:1646 */
15975 break;
15976
15977
15978#line 15979 "sql_parser.tab.c" /* yacc.c:1646 */
15979 default: break;
15980 }
15981 /* User semantic actions sometimes alter yychar, and that requires
15982 that yytoken be updated with the new translation. We take the
15983 approach of translating immediately before every use of yytoken.
15984 One alternative is translating here after every semantic action,
15985 but that translation would be missed if the semantic action invokes
15986 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
15987 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
15988 incorrect destructor might then be invoked immediately. In the
15989 case of YYERROR or YYBACKUP, subsequent parser actions might lead
15990 to an incorrect destructor call or verbose syntax error message
15991 before the lookahead is translated. */
15992 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
15993
15994 YYPOPSTACK (yylen);
15995 yylen = 0;
15996 YY_STACK_PRINT (yyss, yyssp);
15997
15998 *++yyvsp = yyval;
15999
16000 /* Now 'shift' the result of the reduction. Determine what state
16001 that goes to, based on the state we popped back to and the rule
16002 number reduced by. */
16003
16004 yyn = yyr1[yyn];
16005
16006 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
16007 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
16008 yystate = yytable[yystate];
16009 else
16010 yystate = yydefgoto[yyn - YYNTOKENS];
16011
16012 goto yynewstate;
16013
16014
16015/*--------------------------------------.
16016| yyerrlab -- here on detecting error. |
16017`--------------------------------------*/
16018yyerrlab:
16019 /* Make sure we have latest lookahead translation. See comments at
16020 user semantic actions for why this is necessary. */
16021 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
16022
16023 /* If not already recovering from an error, report this error. */
16024 if (!yyerrstatus)
16025 {
16026 ++yynerrs;
16027#if ! YYERROR_VERBOSE
16028 yyerror (m, YY_("syntax error"));
16029#else
16030# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
16031 yyssp, yytoken)
16032 {
16033 char const *yymsgp = YY_("syntax error");
16034 int yysyntax_error_status;
16035 yysyntax_error_status = YYSYNTAX_ERROR;
16036 if (yysyntax_error_status == 0)
16037 yymsgp = yymsg;
16038 else if (yysyntax_error_status == 1)
16039 {
16040 if (yymsg != yymsgbuf)
16041 YYSTACK_FREE (yymsg);
16042 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
16043 if (!yymsg)
16044 {
16045 yymsg = yymsgbuf;
16046 yymsg_alloc = sizeof yymsgbuf;
16047 yysyntax_error_status = 2;
16048 }
16049 else
16050 {
16051 yysyntax_error_status = YYSYNTAX_ERROR;
16052 yymsgp = yymsg;
16053 }
16054 }
16055 yyerror (m, yymsgp);
16056 if (yysyntax_error_status == 2)
16057 goto yyexhaustedlab;
16058 }
16059# undef YYSYNTAX_ERROR
16060#endif
16061 }
16062
16063
16064
16065 if (yyerrstatus == 3)
16066 {
16067 /* If just tried and failed to reuse lookahead token after an
16068 error, discard it. */
16069
16070 if (yychar <= YYEOF)
16071 {
16072 /* Return failure if at end of input. */
16073 if (yychar == YYEOF)
16074 YYABORT;
16075 }
16076 else
16077 {
16078 yydestruct ("Error: discarding",
16079 yytoken, &yylval, m);
16080 yychar = YYEMPTY;
16081 }
16082 }
16083
16084 /* Else will try to reuse lookahead token after shifting the error
16085 token. */
16086 goto yyerrlab1;
16087
16088
16089/*---------------------------------------------------.
16090| yyerrorlab -- error raised explicitly by YYERROR. |
16091`---------------------------------------------------*/
16092yyerrorlab:
16093
16094 /* Pacify compilers like GCC when the user code never invokes
16095 YYERROR and the label yyerrorlab therefore never appears in user
16096 code. */
16097 if (/*CONSTCOND*/ 0)
16098 goto yyerrorlab;
16099
16100 /* Do not reclaim the symbols of the rule whose action triggered
16101 this YYERROR. */
16102 YYPOPSTACK (yylen);
16103 yylen = 0;
16104 YY_STACK_PRINT (yyss, yyssp);
16105 yystate = *yyssp;
16106 goto yyerrlab1;
16107
16108
16109/*-------------------------------------------------------------.
16110| yyerrlab1 -- common code for both syntax error and YYERROR. |
16111`-------------------------------------------------------------*/
16112yyerrlab1:
16113 yyerrstatus = 3; /* Each real token shifted decrements this. */
16114
16115 for (;;)
16116 {
16117 yyn = yypact[yystate];
16118 if (!yypact_value_is_default (yyn))
16119 {
16120 yyn += YYTERROR;
16121 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
16122 {
16123 yyn = yytable[yyn];
16124 if (0 < yyn)
16125 break;
16126 }
16127 }
16128
16129 /* Pop the current state because it cannot handle the error token. */
16130 if (yyssp == yyss)
16131 YYABORT;
16132
16133
16134 yydestruct ("Error: popping",
16135 yystos[yystate], yyvsp, m);
16136 YYPOPSTACK (1);
16137 yystate = *yyssp;
16138 YY_STACK_PRINT (yyss, yyssp);
16139 }
16140
16141 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
16142 *++yyvsp = yylval;
16143 YY_IGNORE_MAYBE_UNINITIALIZED_END
16144
16145
16146 /* Shift the error token. */
16147 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
16148
16149 yystate = yyn;
16150 goto yynewstate;
16151
16152
16153/*-------------------------------------.
16154| yyacceptlab -- YYACCEPT comes here. |
16155`-------------------------------------*/
16156yyacceptlab:
16157 yyresult = 0;
16158 goto yyreturn;
16159
16160/*-----------------------------------.
16161| yyabortlab -- YYABORT comes here. |
16162`-----------------------------------*/
16163yyabortlab:
16164 yyresult = 1;
16165 goto yyreturn;
16166
16167#if !defined yyoverflow || YYERROR_VERBOSE
16168/*-------------------------------------------------.
16169| yyexhaustedlab -- memory exhaustion comes here. |
16170`-------------------------------------------------*/
16171yyexhaustedlab:
16172 yyerror (m, YY_("memory exhausted"));
16173 yyresult = 2;
16174 /* Fall through. */
16175#endif
16176
16177yyreturn:
16178 if (yychar != YYEMPTY)
16179 {
16180 /* Make sure we have latest lookahead translation. See comments at
16181 user semantic actions for why this is necessary. */
16182 yytoken = YYTRANSLATE (yychar);
16183 yydestruct ("Cleanup: discarding lookahead",
16184 yytoken, &yylval, m);
16185 }
16186 /* Do not reclaim the symbols of the rule whose action triggered
16187 this YYABORT or YYACCEPT. */
16188 YYPOPSTACK (yylen);
16189 YY_STACK_PRINT (yyss, yyssp);
16190 while (yyssp != yyss)
16191 {
16192 yydestruct ("Cleanup: popping",
16193 yystos[*yyssp], yyvsp, m);
16194 YYPOPSTACK (1);
16195 }
16196#ifndef yyoverflow
16197 if (yyss != yyssa)
16198 YYSTACK_FREE (yyss);
16199#endif
16200#if YYERROR_VERBOSE
16201 if (yymsg != yymsgbuf)
16202 YYSTACK_FREE (yymsg);
16203#endif
16204 return yyresult;
16205}
16206#line 6493 "sql_parser.y" /* yacc.c:1906 */
16207
16208int find_subgeometry_type(char* geoSubType) {
16209 int subType = 0;
16210 if(strcmp(geoSubType, "point") == 0 )
16211 subType = (1 << 2);
16212 else if(strcmp(geoSubType, "linestring") == 0)
16213 subType = (2 << 2);
16214 else if(strcmp(geoSubType, "polygon") == 0)
16215 subType = (4 << 2);
16216 else if(strcmp(geoSubType, "multipoint") == 0)
16217 subType = (5 << 2);
16218 else if(strcmp(geoSubType, "multilinestring") == 0)
16219 subType = (6 << 2);
16220 else if(strcmp(geoSubType, "multipolygon") == 0)
16221 subType = (7 << 2);
16222 else if(strcmp(geoSubType, "geometrycollection") == 0)
16223 subType = (8 << 2);
16224 else {
16225 size_t strLength = strlen(geoSubType);
16226 if(strLength > 0 ) {
16227 char *typeSubStr = GDKmalloc(strLength);
16228 char flag = geoSubType[strLength-1];
16229
16230 if (typeSubStr == NULL) {
16231 return -1;
16232 }
16233 memcpy(typeSubStr, geoSubType, strLength-1);
16234 typeSubStr[strLength-1]='\0';
16235 if(flag == 'z' || flag == 'm' ) {
16236 subType = find_subgeometry_type(typeSubStr);
16237 if (subType == -1) {
16238 GDKfree(typeSubStr);
16239 return -1;
16240 }
16241 if(flag == 'z')
16242 SET_Z(subType);
16243 if(flag == 'm')
16244 SET_M(subType);
16245 }
16246 GDKfree(typeSubStr);
16247 }
16248
16249 }
16250 return subType;
16251}
16252
16253char *token2string(tokens token)
16254{
16255 switch (token) {
16256 // Please keep this list sorted for easy of maintenance
16257#define SQL(TYPE) case SQL_##TYPE : return #TYPE
16258 SQL(AGGR);
16259 SQL(ALTER_SEQ);
16260 SQL(ALTER_TABLE);
16261 SQL(ALTER_USER);
16262 SQL(ANALYZE);
16263 SQL(AND);
16264 SQL(ASSIGN);
16265 SQL(ATOM);
16266 SQL(BETWEEN);
16267 SQL(BINCOPYFROM);
16268 SQL(BINOP);
16269 SQL(CACHE);
16270 SQL(CALL);
16271 SQL(CASE);
16272 SQL(CAST);
16273 SQL(CHARSET);
16274 SQL(CHECK);
16275 SQL(COALESCE);
16276 SQL(COLUMN);
16277 SQL(COLUMN_OPTIONS);
16278 SQL(COMMENT);
16279 SQL(COMPARE);
16280 SQL(CONSTRAINT);
16281 SQL(COPYFROM);
16282 SQL(COPYLOADER);
16283 SQL(COPYTO);
16284 SQL(CREATE_FUNC);
16285 SQL(CREATE_INDEX);
16286 SQL(CREATE_ROLE);
16287 SQL(CREATE_SCHEMA);
16288 SQL(CREATE_SEQ);
16289 SQL(CREATE_TABLE);
16290 SQL(CREATE_TABLE_LOADER);
16291 SQL(CREATE_TRIGGER);
16292 SQL(CREATE_TYPE);
16293 SQL(CREATE_USER);
16294 SQL(CREATE_VIEW);
16295 SQL(CROSS);
16296 SQL(CURRENT_ROW);
16297 SQL(CYCLE);
16298 SQL(DECLARE);
16299 SQL(DECLARE_TABLE);
16300 SQL(DEFAULT);
16301 SQL(DELETE);
16302 SQL(DROP_COLUMN);
16303 SQL(DROP_CONSTRAINT);
16304 SQL(DROP_DEFAULT);
16305 SQL(DROP_FUNC);
16306 SQL(DROP_INDEX);
16307 SQL(DROP_ROLE);
16308 SQL(DROP_SCHEMA);
16309 SQL(DROP_SEQ);
16310 SQL(DROP_TABLE);
16311 SQL(DROP_TRIGGER);
16312 SQL(DROP_TYPE);
16313 SQL(DROP_USER);
16314 SQL(DROP_VIEW);
16315 SQL(ELSE);
16316 SQL(ESCAPE);
16317 SQL(EXCEPT);
16318 SQL(EXECUTE);
16319 SQL(EXISTS);
16320 SQL(FILTER);
16321 SQL(FOLLOWING);
16322 SQL(FOREIGN_KEY);
16323 SQL(FRAME);
16324 SQL(FROM);
16325 SQL(FUNC);
16326 SQL(GRANT);
16327 SQL(GRANT_ROLES);
16328 SQL(GROUPBY);
16329 SQL(IDENT);
16330 SQL(IF);
16331 SQL(IN);
16332 SQL(INC);
16333 SQL(INDEX);
16334 SQL(INSERT);
16335 SQL(INTERSECT);
16336 SQL(IS_NOT_NULL);
16337 SQL(IS_NULL);
16338 SQL(JOIN);
16339 SQL(LIKE);
16340 SQL(MAXVALUE);
16341 SQL(MERGE);
16342 SQL(MERGE_MATCH);
16343 SQL(MERGE_NO_MATCH);
16344 SQL(MERGE_PARTITION);
16345 SQL(MINVALUE);
16346 SQL(MULSTMT);
16347 SQL(NAME);
16348 SQL(NEXT);
16349 SQL(NOP);
16350 SQL(NOT);
16351 SQL(NOT_BETWEEN);
16352 SQL(NOT_EXISTS);
16353 SQL(NOT_IN);
16354 SQL(NOT_LIKE);
16355 SQL(NOT_NULL);
16356 SQL(NULL);
16357 SQL(NULLIF);
16358 SQL(OP);
16359 SQL(OR);
16360 SQL(ORDERBY);
16361 SQL(PARAMETER);
16362 SQL(PARTITION_COLUMN);
16363 SQL(PARTITION_EXPRESSION);
16364 SQL(PARTITION_LIST);
16365 SQL(PARTITION_RANGE);
16366 SQL(PATH);
16367 SQL(PRECEDING);
16368 SQL(PREP);
16369 SQL(PRIMARY_KEY);
16370 SQL(PW_ENCRYPTED);
16371 SQL(PW_UNENCRYPTED);
16372 SQL(RANK);
16373 SQL(RENAME_COLUMN);
16374 SQL(RENAME_SCHEMA);
16375 SQL(RENAME_TABLE);
16376 SQL(RENAME_USER);
16377 SQL(RETURN);
16378 SQL(REVOKE);
16379 SQL(REVOKE_ROLES);
16380 SQL(ROUTINE);
16381 SQL(SAMPLE);
16382 SQL(SCHEMA);
16383 SQL(SELECT);
16384 SQL(SEQUENCE);
16385 SQL(SET);
16386 SQL(SET_TABLE_SCHEMA);
16387 SQL(START);
16388 SQL(STORAGE);
16389 SQL(TABLE);
16390 SQL(TRUNCATE);
16391 SQL(TYPE);
16392 SQL(UNION);
16393 SQL(UNIONJOIN);
16394 SQL(UNIQUE);
16395 SQL(UNOP);
16396 SQL(UPDATE);
16397 SQL(USING);
16398 SQL(VALUES);
16399 SQL(VIEW);
16400 SQL(WHEN);
16401 SQL(WHILE);
16402 SQL(WINDOW);
16403 SQL(WITH);
16404 SQL(XMLATTRIBUTE);
16405 SQL(XMLCOMMENT);
16406 SQL(XMLCONCAT);
16407 SQL(XMLDOCUMENT);
16408 SQL(XMLELEMENT);
16409 SQL(XMLFOREST);
16410 SQL(XMLPARSE);
16411 SQL(XMLPI);
16412 SQL(XMLTEXT);
16413#define TR(TYPE) case TR_##TYPE : return #TYPE
16414 TR(COMMIT);
16415 TR(MODE);
16416 TR(RELEASE);
16417 TR(ROLLBACK);
16418 TR(SAVEPOINT);
16419 TR(START);
16420 // Please keep this list sorted for easy of maintenance
16421 }
16422 return "unknown"; /* just needed for broken compilers ! */
16423}
16424
16425void *sql_error( mvc * sql, int error_code, char *format, ... )
16426{
16427 va_list ap;
16428
16429 va_start (ap,format);
16430 if (sql->errstr[0] == '\0' || error_code == 5)
16431 vsnprintf(sql->errstr, ERRSIZE-1, _(format), ap);
16432 if (!sql->session->status || error_code == 5)
16433 sql->session->status = -error_code;
16434 va_end (ap);
16435 return NULL;
16436}
16437
16438int sqlerror(mvc * c, const char *err)
16439{
16440 const char *sqlstate;
16441
16442 if (err && strlen(err) > 6 && err[5] == '!') {
16443 /* sql state provided */
16444 sqlstate = "";
16445 } else {
16446 /* default: Syntax error or access rule violation */
16447 sqlstate = SQLSTATE(42000);
16448 }
16449 if (c->scanner.errstr) {
16450 if (c->scanner.errstr[0] == '!'){
16451 assert(0);// catch it
16452 (void)sql_error(c, 4,
16453 "%s%s: %s\n",
16454 sqlstate, err, c->scanner.errstr + 1);
16455 } else
16456 (void)sql_error(c, 4,
16457 "%s%s: %s in \"%.80s\"\n",
16458 sqlstate, err, c->scanner.errstr,
16459 QUERY(c->scanner));
16460 } else
16461 (void)sql_error(c, 4,
16462 "%s%s in: \"%.80s\"\n",
16463 sqlstate, err, QUERY(c->scanner));
16464 return 1;
16465}
16466