1/* A Bison parser, made by GNU Bison 2.3. */
2
3/* Skeleton implementation for Bison's Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6 Free Software Foundation, Inc.
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
11 any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
22
23/* As a special exception, you may create a larger work that contains
24 part or all of the Bison parser skeleton and distribute that work
25 under terms of your choice, so long as that work isn't itself a
26 parser generator using the skeleton or a modified version thereof
27 as a parser skeleton. Alternatively, if you modify or redistribute
28 the parser skeleton itself, you may (at your option) remove this
29 special exception, which will cause the skeleton and the resulting
30 Bison output files to be licensed under the GNU General Public
31 License without this special exception.
32
33 This special exception was added by the Free Software Foundation in
34 version 2.2 of Bison. */
35
36/* C LALR(1) parser skeleton written by Richard Stallman, by
37 simplifying the original so-called "semantic" parser. */
38
39/* All symbols defined below should begin with yy or YY, to avoid
40 infringing on user name space. This should be done even for local
41 variables, as they might otherwise be expanded by user macros.
42 There are some unavoidable exceptions within include files to
43 define necessary library symbols; they are noted "INFRINGES ON
44 USER NAME SPACE" below. */
45
46/* Identify Bison output. */
47#define YYBISON 1
48
49/* Bison version. */
50#define YYBISON_VERSION "2.3"
51
52/* Skeleton name. */
53#define YYSKELETON_NAME "yacc.c"
54
55/* Pure parsers. */
56#define YYPURE 1
57
58/* Using locations. */
59#define YYLSP_NEEDED 1
60
61/* Substitute the variable and function names. */
62#define yyparse base_yyparse
63#define yylex base_yylex
64#define yyerror base_yyerror
65#define yylval base_yylval
66#define yychar base_yychar
67#define yydebug base_yydebug
68#define yynerrs base_yynerrs
69#define yylloc base_yylloc
70
71/* Tokens. */
72#ifndef YYTOKENTYPE
73# define YYTOKENTYPE
74 /* Put the tokens into the symbol table, so that GDB and other debuggers
75 know about them. */
76 enum yytokentype {
77 IDENT = 258,
78 FCONST = 259,
79 SCONST = 260,
80 BCONST = 261,
81 XCONST = 262,
82 Op = 263,
83 ICONST = 264,
84 PARAM = 265,
85 TYPECAST = 266,
86 DOT_DOT = 267,
87 COLON_EQUALS = 268,
88 EQUALS_GREATER = 269,
89 INTEGER_DIVISION = 270,
90 POWER_OF = 271,
91 LAMBDA_ARROW = 272,
92 DOUBLE_ARROW = 273,
93 LESS_EQUALS = 274,
94 GREATER_EQUALS = 275,
95 NOT_EQUALS = 276,
96 ABORT_P = 277,
97 ABSOLUTE_P = 278,
98 ACCESS = 279,
99 ACTION = 280,
100 ADD_P = 281,
101 ADMIN = 282,
102 AFTER = 283,
103 AGGREGATE = 284,
104 ALL = 285,
105 ALSO = 286,
106 ALTER = 287,
107 ALWAYS = 288,
108 ANALYSE = 289,
109 ANALYZE = 290,
110 AND = 291,
111 ANTI = 292,
112 ANY = 293,
113 ARRAY = 294,
114 AS = 295,
115 ASC_P = 296,
116 ASOF = 297,
117 ASSERTION = 298,
118 ASSIGNMENT = 299,
119 ASYMMETRIC = 300,
120 AT = 301,
121 ATTACH = 302,
122 ATTRIBUTE = 303,
123 AUTHORIZATION = 304,
124 BACKWARD = 305,
125 BEFORE = 306,
126 BEGIN_P = 307,
127 BETWEEN = 308,
128 BIGINT = 309,
129 BINARY = 310,
130 BIT = 311,
131 BOOLEAN_P = 312,
132 BOTH = 313,
133 BY = 314,
134 CACHE = 315,
135 CALL_P = 316,
136 CALLED = 317,
137 CASCADE = 318,
138 CASCADED = 319,
139 CASE = 320,
140 CAST = 321,
141 CATALOG_P = 322,
142 CHAIN = 323,
143 CHAR_P = 324,
144 CHARACTER = 325,
145 CHARACTERISTICS = 326,
146 CHECK_P = 327,
147 CHECKPOINT = 328,
148 CLASS = 329,
149 CLOSE = 330,
150 CLUSTER = 331,
151 COALESCE = 332,
152 COLLATE = 333,
153 COLLATION = 334,
154 COLUMN = 335,
155 COLUMNS = 336,
156 COMMENT = 337,
157 COMMENTS = 338,
158 COMMIT = 339,
159 COMMITTED = 340,
160 COMPRESSION = 341,
161 CONCURRENTLY = 342,
162 CONFIGURATION = 343,
163 CONFLICT = 344,
164 CONNECTION = 345,
165 CONSTRAINT = 346,
166 CONSTRAINTS = 347,
167 CONTENT_P = 348,
168 CONTINUE_P = 349,
169 CONVERSION_P = 350,
170 COPY = 351,
171 COST = 352,
172 CREATE_P = 353,
173 CROSS = 354,
174 CSV = 355,
175 CUBE = 356,
176 CURRENT_P = 357,
177 CURSOR = 358,
178 CYCLE = 359,
179 DATA_P = 360,
180 DATABASE = 361,
181 DAY_P = 362,
182 DAYS_P = 363,
183 DEALLOCATE = 364,
184 DEC = 365,
185 DECIMAL_P = 366,
186 DECLARE = 367,
187 DEFAULT = 368,
188 DEFAULTS = 369,
189 DEFERRABLE = 370,
190 DEFERRED = 371,
191 DEFINER = 372,
192 DELETE_P = 373,
193 DELIMITER = 374,
194 DELIMITERS = 375,
195 DEPENDS = 376,
196 DESC_P = 377,
197 DESCRIBE = 378,
198 DETACH = 379,
199 DICTIONARY = 380,
200 DISABLE_P = 381,
201 DISCARD = 382,
202 DISTINCT = 383,
203 DO = 384,
204 DOCUMENT_P = 385,
205 DOMAIN_P = 386,
206 DOUBLE_P = 387,
207 DROP = 388,
208 EACH = 389,
209 ELSE = 390,
210 ENABLE_P = 391,
211 ENCODING = 392,
212 ENCRYPTED = 393,
213 END_P = 394,
214 ENUM_P = 395,
215 ESCAPE = 396,
216 EVENT = 397,
217 EXCEPT = 398,
218 EXCLUDE = 399,
219 EXCLUDING = 400,
220 EXCLUSIVE = 401,
221 EXECUTE = 402,
222 EXISTS = 403,
223 EXPLAIN = 404,
224 EXPORT_P = 405,
225 EXPORT_STATE = 406,
226 EXTENSION = 407,
227 EXTERNAL = 408,
228 EXTRACT = 409,
229 FALSE_P = 410,
230 FAMILY = 411,
231 FETCH = 412,
232 FILTER = 413,
233 FIRST_P = 414,
234 FLOAT_P = 415,
235 FOLLOWING = 416,
236 FOR = 417,
237 FORCE = 418,
238 FOREIGN = 419,
239 FORWARD = 420,
240 FREEZE = 421,
241 FROM = 422,
242 FULL = 423,
243 FUNCTION = 424,
244 FUNCTIONS = 425,
245 GENERATED = 426,
246 GLOB = 427,
247 GLOBAL = 428,
248 GRANT = 429,
249 GRANTED = 430,
250 GROUP_P = 431,
251 GROUPING = 432,
252 GROUPING_ID = 433,
253 HANDLER = 434,
254 HAVING = 435,
255 HEADER_P = 436,
256 HOLD = 437,
257 HOUR_P = 438,
258 HOURS_P = 439,
259 IDENTITY_P = 440,
260 IF_P = 441,
261 IGNORE_P = 442,
262 ILIKE = 443,
263 IMMEDIATE = 444,
264 IMMUTABLE = 445,
265 IMPLICIT_P = 446,
266 IMPORT_P = 447,
267 IN_P = 448,
268 INCLUDE_P = 449,
269 INCLUDING = 450,
270 INCREMENT = 451,
271 INDEX = 452,
272 INDEXES = 453,
273 INHERIT = 454,
274 INHERITS = 455,
275 INITIALLY = 456,
276 INLINE_P = 457,
277 INNER_P = 458,
278 INOUT = 459,
279 INPUT_P = 460,
280 INSENSITIVE = 461,
281 INSERT = 462,
282 INSTALL = 463,
283 INSTEAD = 464,
284 INT_P = 465,
285 INTEGER = 466,
286 INTERSECT = 467,
287 INTERVAL = 468,
288 INTO = 469,
289 INVOKER = 470,
290 IS = 471,
291 ISNULL = 472,
292 ISOLATION = 473,
293 JOIN = 474,
294 JSON = 475,
295 KEY = 476,
296 LABEL = 477,
297 LANGUAGE = 478,
298 LARGE_P = 479,
299 LAST_P = 480,
300 LATERAL_P = 481,
301 LEADING = 482,
302 LEAKPROOF = 483,
303 LEFT = 484,
304 LEVEL = 485,
305 LIKE = 486,
306 LIMIT = 487,
307 LISTEN = 488,
308 LOAD = 489,
309 LOCAL = 490,
310 LOCATION = 491,
311 LOCK_P = 492,
312 LOCKED = 493,
313 LOGGED = 494,
314 MACRO = 495,
315 MAP = 496,
316 MAPPING = 497,
317 MATCH = 498,
318 MATERIALIZED = 499,
319 MAXVALUE = 500,
320 METHOD = 501,
321 MICROSECOND_P = 502,
322 MICROSECONDS_P = 503,
323 MILLISECOND_P = 504,
324 MILLISECONDS_P = 505,
325 MINUTE_P = 506,
326 MINUTES_P = 507,
327 MINVALUE = 508,
328 MODE = 509,
329 MONTH_P = 510,
330 MONTHS_P = 511,
331 MOVE = 512,
332 NAME_P = 513,
333 NAMES = 514,
334 NATIONAL = 515,
335 NATURAL = 516,
336 NCHAR = 517,
337 NEW = 518,
338 NEXT = 519,
339 NO = 520,
340 NONE = 521,
341 NOT = 522,
342 NOTHING = 523,
343 NOTIFY = 524,
344 NOTNULL = 525,
345 NOWAIT = 526,
346 NULL_P = 527,
347 NULLIF = 528,
348 NULLS_P = 529,
349 NUMERIC = 530,
350 OBJECT_P = 531,
351 OF = 532,
352 OFF = 533,
353 OFFSET = 534,
354 OIDS = 535,
355 OLD = 536,
356 ON = 537,
357 ONLY = 538,
358 OPERATOR = 539,
359 OPTION = 540,
360 OPTIONS = 541,
361 OR = 542,
362 ORDER = 543,
363 ORDINALITY = 544,
364 OUT_P = 545,
365 OUTER_P = 546,
366 OVER = 547,
367 OVERLAPS = 548,
368 OVERLAY = 549,
369 OVERRIDING = 550,
370 OWNED = 551,
371 OWNER = 552,
372 PARALLEL = 553,
373 PARSER = 554,
374 PARTIAL = 555,
375 PARTITION = 556,
376 PASSING = 557,
377 PASSWORD = 558,
378 PERCENT = 559,
379 PIVOT = 560,
380 PIVOT_LONGER = 561,
381 PIVOT_WIDER = 562,
382 PLACING = 563,
383 PLANS = 564,
384 POLICY = 565,
385 POSITION = 566,
386 POSITIONAL = 567,
387 PRAGMA_P = 568,
388 PRECEDING = 569,
389 PRECISION = 570,
390 PREPARE = 571,
391 PREPARED = 572,
392 PRESERVE = 573,
393 PRIMARY = 574,
394 PRIOR = 575,
395 PRIVILEGES = 576,
396 PROCEDURAL = 577,
397 PROCEDURE = 578,
398 PROGRAM = 579,
399 PUBLICATION = 580,
400 QUALIFY = 581,
401 QUOTE = 582,
402 RANGE = 583,
403 READ_P = 584,
404 REAL = 585,
405 REASSIGN = 586,
406 RECHECK = 587,
407 RECURSIVE = 588,
408 REF = 589,
409 REFERENCES = 590,
410 REFERENCING = 591,
411 REFRESH = 592,
412 REINDEX = 593,
413 RELATIVE_P = 594,
414 RELEASE = 595,
415 RENAME = 596,
416 REPEATABLE = 597,
417 REPLACE = 598,
418 REPLICA = 599,
419 RESET = 600,
420 RESPECT_P = 601,
421 RESTART = 602,
422 RESTRICT = 603,
423 RETURNING = 604,
424 RETURNS = 605,
425 REVOKE = 606,
426 RIGHT = 607,
427 ROLE = 608,
428 ROLLBACK = 609,
429 ROLLUP = 610,
430 ROW = 611,
431 ROWS = 612,
432 RULE = 613,
433 SAMPLE = 614,
434 SAVEPOINT = 615,
435 SCHEMA = 616,
436 SCHEMAS = 617,
437 SCROLL = 618,
438 SEARCH = 619,
439 SECOND_P = 620,
440 SECONDS_P = 621,
441 SECURITY = 622,
442 SELECT = 623,
443 SEMI = 624,
444 SEQUENCE = 625,
445 SEQUENCES = 626,
446 SERIALIZABLE = 627,
447 SERVER = 628,
448 SESSION = 629,
449 SET = 630,
450 SETOF = 631,
451 SETS = 632,
452 SHARE = 633,
453 SHOW = 634,
454 SIMILAR = 635,
455 SIMPLE = 636,
456 SKIP = 637,
457 SMALLINT = 638,
458 SNAPSHOT = 639,
459 SOME = 640,
460 SQL_P = 641,
461 STABLE = 642,
462 STANDALONE_P = 643,
463 START = 644,
464 STATEMENT = 645,
465 STATISTICS = 646,
466 STDIN = 647,
467 STDOUT = 648,
468 STORAGE = 649,
469 STORED = 650,
470 STRICT_P = 651,
471 STRIP_P = 652,
472 STRUCT = 653,
473 SUBSCRIPTION = 654,
474 SUBSTRING = 655,
475 SUMMARIZE = 656,
476 SYMMETRIC = 657,
477 SYSID = 658,
478 SYSTEM_P = 659,
479 TABLE = 660,
480 TABLES = 661,
481 TABLESAMPLE = 662,
482 TABLESPACE = 663,
483 TEMP = 664,
484 TEMPLATE = 665,
485 TEMPORARY = 666,
486 TEXT_P = 667,
487 THEN = 668,
488 TIME = 669,
489 TIMESTAMP = 670,
490 TO = 671,
491 TRAILING = 672,
492 TRANSACTION = 673,
493 TRANSFORM = 674,
494 TREAT = 675,
495 TRIGGER = 676,
496 TRIM = 677,
497 TRUE_P = 678,
498 TRUNCATE = 679,
499 TRUSTED = 680,
500 TRY_CAST = 681,
501 TYPE_P = 682,
502 TYPES_P = 683,
503 UNBOUNDED = 684,
504 UNCOMMITTED = 685,
505 UNENCRYPTED = 686,
506 UNION = 687,
507 UNIQUE = 688,
508 UNKNOWN = 689,
509 UNLISTEN = 690,
510 UNLOGGED = 691,
511 UNPIVOT = 692,
512 UNTIL = 693,
513 UPDATE = 694,
514 USE_P = 695,
515 USER = 696,
516 USING = 697,
517 VACUUM = 698,
518 VALID = 699,
519 VALIDATE = 700,
520 VALIDATOR = 701,
521 VALUE_P = 702,
522 VALUES = 703,
523 VARCHAR = 704,
524 VARIADIC = 705,
525 VARYING = 706,
526 VERBOSE = 707,
527 VERSION_P = 708,
528 VIEW = 709,
529 VIEWS = 710,
530 VIRTUAL = 711,
531 VOLATILE = 712,
532 WHEN = 713,
533 WHERE = 714,
534 WHITESPACE_P = 715,
535 WINDOW = 716,
536 WITH = 717,
537 WITHIN = 718,
538 WITHOUT = 719,
539 WORK = 720,
540 WRAPPER = 721,
541 WRITE_P = 722,
542 XML_P = 723,
543 XMLATTRIBUTES = 724,
544 XMLCONCAT = 725,
545 XMLELEMENT = 726,
546 XMLEXISTS = 727,
547 XMLFOREST = 728,
548 XMLNAMESPACES = 729,
549 XMLPARSE = 730,
550 XMLPI = 731,
551 XMLROOT = 732,
552 XMLSERIALIZE = 733,
553 XMLTABLE = 734,
554 YEAR_P = 735,
555 YEARS_P = 736,
556 YES_P = 737,
557 ZONE = 738,
558 NOT_LA = 739,
559 NULLS_LA = 740,
560 WITH_LA = 741,
561 POSTFIXOP = 742,
562 UMINUS = 743
563 };
564#endif
565/* Tokens. */
566#define IDENT 258
567#define FCONST 259
568#define SCONST 260
569#define BCONST 261
570#define XCONST 262
571#define Op 263
572#define ICONST 264
573#define PARAM 265
574#define TYPECAST 266
575#define DOT_DOT 267
576#define COLON_EQUALS 268
577#define EQUALS_GREATER 269
578#define INTEGER_DIVISION 270
579#define POWER_OF 271
580#define LAMBDA_ARROW 272
581#define DOUBLE_ARROW 273
582#define LESS_EQUALS 274
583#define GREATER_EQUALS 275
584#define NOT_EQUALS 276
585#define ABORT_P 277
586#define ABSOLUTE_P 278
587#define ACCESS 279
588#define ACTION 280
589#define ADD_P 281
590#define ADMIN 282
591#define AFTER 283
592#define AGGREGATE 284
593#define ALL 285
594#define ALSO 286
595#define ALTER 287
596#define ALWAYS 288
597#define ANALYSE 289
598#define ANALYZE 290
599#define AND 291
600#define ANTI 292
601#define ANY 293
602#define ARRAY 294
603#define AS 295
604#define ASC_P 296
605#define ASOF 297
606#define ASSERTION 298
607#define ASSIGNMENT 299
608#define ASYMMETRIC 300
609#define AT 301
610#define ATTACH 302
611#define ATTRIBUTE 303
612#define AUTHORIZATION 304
613#define BACKWARD 305
614#define BEFORE 306
615#define BEGIN_P 307
616#define BETWEEN 308
617#define BIGINT 309
618#define BINARY 310
619#define BIT 311
620#define BOOLEAN_P 312
621#define BOTH 313
622#define BY 314
623#define CACHE 315
624#define CALL_P 316
625#define CALLED 317
626#define CASCADE 318
627#define CASCADED 319
628#define CASE 320
629#define CAST 321
630#define CATALOG_P 322
631#define CHAIN 323
632#define CHAR_P 324
633#define CHARACTER 325
634#define CHARACTERISTICS 326
635#define CHECK_P 327
636#define CHECKPOINT 328
637#define CLASS 329
638#define CLOSE 330
639#define CLUSTER 331
640#define COALESCE 332
641#define COLLATE 333
642#define COLLATION 334
643#define COLUMN 335
644#define COLUMNS 336
645#define COMMENT 337
646#define COMMENTS 338
647#define COMMIT 339
648#define COMMITTED 340
649#define COMPRESSION 341
650#define CONCURRENTLY 342
651#define CONFIGURATION 343
652#define CONFLICT 344
653#define CONNECTION 345
654#define CONSTRAINT 346
655#define CONSTRAINTS 347
656#define CONTENT_P 348
657#define CONTINUE_P 349
658#define CONVERSION_P 350
659#define COPY 351
660#define COST 352
661#define CREATE_P 353
662#define CROSS 354
663#define CSV 355
664#define CUBE 356
665#define CURRENT_P 357
666#define CURSOR 358
667#define CYCLE 359
668#define DATA_P 360
669#define DATABASE 361
670#define DAY_P 362
671#define DAYS_P 363
672#define DEALLOCATE 364
673#define DEC 365
674#define DECIMAL_P 366
675#define DECLARE 367
676#define DEFAULT 368
677#define DEFAULTS 369
678#define DEFERRABLE 370
679#define DEFERRED 371
680#define DEFINER 372
681#define DELETE_P 373
682#define DELIMITER 374
683#define DELIMITERS 375
684#define DEPENDS 376
685#define DESC_P 377
686#define DESCRIBE 378
687#define DETACH 379
688#define DICTIONARY 380
689#define DISABLE_P 381
690#define DISCARD 382
691#define DISTINCT 383
692#define DO 384
693#define DOCUMENT_P 385
694#define DOMAIN_P 386
695#define DOUBLE_P 387
696#define DROP 388
697#define EACH 389
698#define ELSE 390
699#define ENABLE_P 391
700#define ENCODING 392
701#define ENCRYPTED 393
702#define END_P 394
703#define ENUM_P 395
704#define ESCAPE 396
705#define EVENT 397
706#define EXCEPT 398
707#define EXCLUDE 399
708#define EXCLUDING 400
709#define EXCLUSIVE 401
710#define EXECUTE 402
711#define EXISTS 403
712#define EXPLAIN 404
713#define EXPORT_P 405
714#define EXPORT_STATE 406
715#define EXTENSION 407
716#define EXTERNAL 408
717#define EXTRACT 409
718#define FALSE_P 410
719#define FAMILY 411
720#define FETCH 412
721#define FILTER 413
722#define FIRST_P 414
723#define FLOAT_P 415
724#define FOLLOWING 416
725#define FOR 417
726#define FORCE 418
727#define FOREIGN 419
728#define FORWARD 420
729#define FREEZE 421
730#define FROM 422
731#define FULL 423
732#define FUNCTION 424
733#define FUNCTIONS 425
734#define GENERATED 426
735#define GLOB 427
736#define GLOBAL 428
737#define GRANT 429
738#define GRANTED 430
739#define GROUP_P 431
740#define GROUPING 432
741#define GROUPING_ID 433
742#define HANDLER 434
743#define HAVING 435
744#define HEADER_P 436
745#define HOLD 437
746#define HOUR_P 438
747#define HOURS_P 439
748#define IDENTITY_P 440
749#define IF_P 441
750#define IGNORE_P 442
751#define ILIKE 443
752#define IMMEDIATE 444
753#define IMMUTABLE 445
754#define IMPLICIT_P 446
755#define IMPORT_P 447
756#define IN_P 448
757#define INCLUDE_P 449
758#define INCLUDING 450
759#define INCREMENT 451
760#define INDEX 452
761#define INDEXES 453
762#define INHERIT 454
763#define INHERITS 455
764#define INITIALLY 456
765#define INLINE_P 457
766#define INNER_P 458
767#define INOUT 459
768#define INPUT_P 460
769#define INSENSITIVE 461
770#define INSERT 462
771#define INSTALL 463
772#define INSTEAD 464
773#define INT_P 465
774#define INTEGER 466
775#define INTERSECT 467
776#define INTERVAL 468
777#define INTO 469
778#define INVOKER 470
779#define IS 471
780#define ISNULL 472
781#define ISOLATION 473
782#define JOIN 474
783#define JSON 475
784#define KEY 476
785#define LABEL 477
786#define LANGUAGE 478
787#define LARGE_P 479
788#define LAST_P 480
789#define LATERAL_P 481
790#define LEADING 482
791#define LEAKPROOF 483
792#define LEFT 484
793#define LEVEL 485
794#define LIKE 486
795#define LIMIT 487
796#define LISTEN 488
797#define LOAD 489
798#define LOCAL 490
799#define LOCATION 491
800#define LOCK_P 492
801#define LOCKED 493
802#define LOGGED 494
803#define MACRO 495
804#define MAP 496
805#define MAPPING 497
806#define MATCH 498
807#define MATERIALIZED 499
808#define MAXVALUE 500
809#define METHOD 501
810#define MICROSECOND_P 502
811#define MICROSECONDS_P 503
812#define MILLISECOND_P 504
813#define MILLISECONDS_P 505
814#define MINUTE_P 506
815#define MINUTES_P 507
816#define MINVALUE 508
817#define MODE 509
818#define MONTH_P 510
819#define MONTHS_P 511
820#define MOVE 512
821#define NAME_P 513
822#define NAMES 514
823#define NATIONAL 515
824#define NATURAL 516
825#define NCHAR 517
826#define NEW 518
827#define NEXT 519
828#define NO 520
829#define NONE 521
830#define NOT 522
831#define NOTHING 523
832#define NOTIFY 524
833#define NOTNULL 525
834#define NOWAIT 526
835#define NULL_P 527
836#define NULLIF 528
837#define NULLS_P 529
838#define NUMERIC 530
839#define OBJECT_P 531
840#define OF 532
841#define OFF 533
842#define OFFSET 534
843#define OIDS 535
844#define OLD 536
845#define ON 537
846#define ONLY 538
847#define OPERATOR 539
848#define OPTION 540
849#define OPTIONS 541
850#define OR 542
851#define ORDER 543
852#define ORDINALITY 544
853#define OUT_P 545
854#define OUTER_P 546
855#define OVER 547
856#define OVERLAPS 548
857#define OVERLAY 549
858#define OVERRIDING 550
859#define OWNED 551
860#define OWNER 552
861#define PARALLEL 553
862#define PARSER 554
863#define PARTIAL 555
864#define PARTITION 556
865#define PASSING 557
866#define PASSWORD 558
867#define PERCENT 559
868#define PIVOT 560
869#define PIVOT_LONGER 561
870#define PIVOT_WIDER 562
871#define PLACING 563
872#define PLANS 564
873#define POLICY 565
874#define POSITION 566
875#define POSITIONAL 567
876#define PRAGMA_P 568
877#define PRECEDING 569
878#define PRECISION 570
879#define PREPARE 571
880#define PREPARED 572
881#define PRESERVE 573
882#define PRIMARY 574
883#define PRIOR 575
884#define PRIVILEGES 576
885#define PROCEDURAL 577
886#define PROCEDURE 578
887#define PROGRAM 579
888#define PUBLICATION 580
889#define QUALIFY 581
890#define QUOTE 582
891#define RANGE 583
892#define READ_P 584
893#define REAL 585
894#define REASSIGN 586
895#define RECHECK 587
896#define RECURSIVE 588
897#define REF 589
898#define REFERENCES 590
899#define REFERENCING 591
900#define REFRESH 592
901#define REINDEX 593
902#define RELATIVE_P 594
903#define RELEASE 595
904#define RENAME 596
905#define REPEATABLE 597
906#define REPLACE 598
907#define REPLICA 599
908#define RESET 600
909#define RESPECT_P 601
910#define RESTART 602
911#define RESTRICT 603
912#define RETURNING 604
913#define RETURNS 605
914#define REVOKE 606
915#define RIGHT 607
916#define ROLE 608
917#define ROLLBACK 609
918#define ROLLUP 610
919#define ROW 611
920#define ROWS 612
921#define RULE 613
922#define SAMPLE 614
923#define SAVEPOINT 615
924#define SCHEMA 616
925#define SCHEMAS 617
926#define SCROLL 618
927#define SEARCH 619
928#define SECOND_P 620
929#define SECONDS_P 621
930#define SECURITY 622
931#define SELECT 623
932#define SEMI 624
933#define SEQUENCE 625
934#define SEQUENCES 626
935#define SERIALIZABLE 627
936#define SERVER 628
937#define SESSION 629
938#define SET 630
939#define SETOF 631
940#define SETS 632
941#define SHARE 633
942#define SHOW 634
943#define SIMILAR 635
944#define SIMPLE 636
945#define SKIP 637
946#define SMALLINT 638
947#define SNAPSHOT 639
948#define SOME 640
949#define SQL_P 641
950#define STABLE 642
951#define STANDALONE_P 643
952#define START 644
953#define STATEMENT 645
954#define STATISTICS 646
955#define STDIN 647
956#define STDOUT 648
957#define STORAGE 649
958#define STORED 650
959#define STRICT_P 651
960#define STRIP_P 652
961#define STRUCT 653
962#define SUBSCRIPTION 654
963#define SUBSTRING 655
964#define SUMMARIZE 656
965#define SYMMETRIC 657
966#define SYSID 658
967#define SYSTEM_P 659
968#define TABLE 660
969#define TABLES 661
970#define TABLESAMPLE 662
971#define TABLESPACE 663
972#define TEMP 664
973#define TEMPLATE 665
974#define TEMPORARY 666
975#define TEXT_P 667
976#define THEN 668
977#define TIME 669
978#define TIMESTAMP 670
979#define TO 671
980#define TRAILING 672
981#define TRANSACTION 673
982#define TRANSFORM 674
983#define TREAT 675
984#define TRIGGER 676
985#define TRIM 677
986#define TRUE_P 678
987#define TRUNCATE 679
988#define TRUSTED 680
989#define TRY_CAST 681
990#define TYPE_P 682
991#define TYPES_P 683
992#define UNBOUNDED 684
993#define UNCOMMITTED 685
994#define UNENCRYPTED 686
995#define UNION 687
996#define UNIQUE 688
997#define UNKNOWN 689
998#define UNLISTEN 690
999#define UNLOGGED 691
1000#define UNPIVOT 692
1001#define UNTIL 693
1002#define UPDATE 694
1003#define USE_P 695
1004#define USER 696
1005#define USING 697
1006#define VACUUM 698
1007#define VALID 699
1008#define VALIDATE 700
1009#define VALIDATOR 701
1010#define VALUE_P 702
1011#define VALUES 703
1012#define VARCHAR 704
1013#define VARIADIC 705
1014#define VARYING 706
1015#define VERBOSE 707
1016#define VERSION_P 708
1017#define VIEW 709
1018#define VIEWS 710
1019#define VIRTUAL 711
1020#define VOLATILE 712
1021#define WHEN 713
1022#define WHERE 714
1023#define WHITESPACE_P 715
1024#define WINDOW 716
1025#define WITH 717
1026#define WITHIN 718
1027#define WITHOUT 719
1028#define WORK 720
1029#define WRAPPER 721
1030#define WRITE_P 722
1031#define XML_P 723
1032#define XMLATTRIBUTES 724
1033#define XMLCONCAT 725
1034#define XMLELEMENT 726
1035#define XMLEXISTS 727
1036#define XMLFOREST 728
1037#define XMLNAMESPACES 729
1038#define XMLPARSE 730
1039#define XMLPI 731
1040#define XMLROOT 732
1041#define XMLSERIALIZE 733
1042#define XMLTABLE 734
1043#define YEAR_P 735
1044#define YEARS_P 736
1045#define YES_P 737
1046#define ZONE 738
1047#define NOT_LA 739
1048#define NULLS_LA 740
1049#define WITH_LA 741
1050#define POSTFIXOP 742
1051#define UMINUS 743
1052
1053
1054
1055
1056/* Copy the first part of user declarations. */
1057#line 1 "third_party/libpg_query/grammar/grammar.y.tmp"
1058
1059#line 1 "third_party/libpg_query/grammar/grammar.hpp"
1060/*#define YYDEBUG 1*/
1061/*-------------------------------------------------------------------------
1062 *
1063 * gram.y
1064 * POSTGRESQL BISON rules/actions
1065 *
1066 * Portions Copyright (c) 1996-2017, PostgreSQL Global Development PGGroup
1067 * Portions Copyright (c) 1994, Regents of the University of California
1068 *
1069 *
1070 * IDENTIFICATION
1071 * src/backend/parser/gram.y
1072 *
1073 * HISTORY
1074 * AUTHOR DATE MAJOR EVENT
1075 * Andrew Yu Sept, 1994 POSTQUEL to SQL conversion
1076 * Andrew Yu Oct, 1994 lispy code conversion
1077 *
1078 * NOTES
1079 * CAPITALS are used to represent terminal symbols.
1080 * non-capitals are used to represent non-terminals.
1081 *
1082 * In general, nothing in this file should initiate database accesses
1083 * nor depend on changeable state (such as SET variables). If you do
1084 * database accesses, your code will fail when we have aborted the
1085 * current transaction and are just parsing commands to find the next
1086 * ROLLBACK or COMMIT. If you make use of SET variables, then you
1087 * will do the wrong thing in multi-query strings like this:
1088 * SET constraint_exclusion TO off; SELECT * FROM foo;
1089 * because the entire string is parsed by gram.y before the SET gets
1090 * executed. Anything that depends on the database or changeable state
1091 * should be handled during parse analysis so that it happens at the
1092 * right time not the wrong time.
1093 *
1094 * WARNINGS
1095 * If you use a list, make sure the datum is a node so that the printing
1096 * routines work.
1097 *
1098 * Sometimes we assign constants to makeStrings. Make sure we don't free
1099 * those.
1100 *
1101 *-------------------------------------------------------------------------
1102 */
1103#include "pg_functions.hpp"
1104#include <string.h>
1105
1106#include <ctype.h>
1107#include <limits.h>
1108
1109#include "nodes/makefuncs.hpp"
1110#include "nodes/nodeFuncs.hpp"
1111#include "parser/gramparse.hpp"
1112#include "parser/parser.hpp"
1113#include "utils/datetime.hpp"
1114
1115namespace duckdb_libpgquery {
1116#define DEFAULT_SCHEMA "main"
1117
1118/*
1119 * Location tracking support --- simpler than bison's default, since we only
1120 * want to track the start position not the end position of each nonterminal.
1121 */
1122#define YYLLOC_DEFAULT(Current, Rhs, N) \
1123 do { \
1124 if ((N) > 0) \
1125 (Current) = (Rhs)[1]; \
1126 else \
1127 (Current) = (-1); \
1128 } while (0)
1129
1130/*
1131 * The above macro assigns -1 (unknown) as the parse location of any
1132 * nonterminal that was reduced from an empty rule, or whose leftmost
1133 * component was reduced from an empty rule. This is problematic
1134 * for nonterminals defined like
1135 * OptFooList: / * EMPTY * / { ... } | OptFooList Foo { ... } ;
1136 * because we'll set -1 as the location during the first reduction and then
1137 * copy it during each subsequent reduction, leaving us with -1 for the
1138 * location even when the list is not empty. To fix that, do this in the
1139 * action for the nonempty rule(s):
1140 * if (@$ < 0) @$ = @2;
1141 * (Although we have many nonterminals that follow this pattern, we only
1142 * bother with fixing @$ like this when the nonterminal's parse location
1143 * is actually referenced in some rule.)
1144 *
1145 * A cleaner answer would be to make YYLLOC_DEFAULT scan all the Rhs
1146 * locations until it's found one that's not -1. Then we'd get a correct
1147 * location for any nonterminal that isn't entirely empty. But this way
1148 * would add overhead to every rule reduction, and so far there's not been
1149 * a compelling reason to pay that overhead.
1150 */
1151
1152/*
1153 * Bison doesn't allocate anything that needs to live across parser calls,
1154 * so we can easily have it use palloc instead of malloc. This prevents
1155 * memory leaks if we error out during parsing. Note this only works with
1156 * bison >= 2.0. However, in bison 1.875 the default is to use alloca()
1157 * if possible, so there's not really much problem anyhow, at least if
1158 * you're building with gcc.
1159 */
1160#define YYMALLOC palloc
1161#define YYFREE pfree
1162#define YYINITDEPTH 1000
1163
1164/* yields an integer bitmask of these flags: */
1165#define CAS_NOT_DEFERRABLE 0x01
1166#define CAS_DEFERRABLE 0x02
1167#define CAS_INITIALLY_IMMEDIATE 0x04
1168#define CAS_INITIALLY_DEFERRED 0x08
1169#define CAS_NOT_VALID 0x10
1170#define CAS_NO_INHERIT 0x20
1171
1172
1173#define parser_yyerror(msg) scanner_yyerror(msg, yyscanner)
1174#define parser_errposition(pos) scanner_errposition(pos, yyscanner)
1175
1176static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner,
1177 const char *msg);
1178static PGRawStmt *makeRawStmt(PGNode *stmt, int stmt_location);
1179static void updateRawStmtEnd(PGRawStmt *rs, int end_location);
1180static PGNode *makeColumnRef(char *colname, PGList *indirection,
1181 int location, core_yyscan_t yyscanner);
1182static PGNode *makeTypeCast(PGNode *arg, PGTypeName *tpname, int trycast, int location);
1183static PGNode *makeStringConst(char *str, int location);
1184static PGNode *makeStringConstCast(char *str, int location, PGTypeName *tpname);
1185static PGNode *makeIntervalNode(char *str, int location, PGList *typmods);
1186static PGNode *makeIntervalNode(int val, int location, PGList *typmods);
1187static PGNode *makeIntervalNode(PGNode *arg, int location, PGList *typmods);
1188static PGNode *makeSampleSize(PGValue *sample_size, bool is_percentage);
1189static PGNode *makeSampleOptions(PGNode *sample_size, char *method, int *seed, int location);
1190static PGNode *makeIntConst(int val, int location);
1191static PGNode *makeFloatConst(char *str, int location);
1192static PGNode *makeBitStringConst(char *str, int location);
1193static PGNode *makeNullAConst(int location);
1194static PGNode *makeAConst(PGValue *v, int location);
1195static PGNode *makeBoolAConst(bool state, int location);
1196static PGNode *makeParamRef(int number, int location);
1197static PGNode *makeNamedParamRef(char* name, int location);
1198static void check_qualified_name(PGList *names, core_yyscan_t yyscanner);
1199static PGList *check_func_name(PGList *names, core_yyscan_t yyscanner);
1200static PGList *check_indirection(PGList *indirection, core_yyscan_t yyscanner);
1201static void insertSelectOptions(PGSelectStmt *stmt,
1202 PGList *sortClause, PGList *lockingClause,
1203 PGNode *limitOffset, PGNode *limitCount,
1204 PGWithClause *withClause,
1205 core_yyscan_t yyscanner);
1206static PGNode *makeSetOp(PGSetOperation op, bool all, PGNode *larg, PGNode *rarg);
1207static PGNode *doNegate(PGNode *n, int location);
1208static void doNegateFloat(PGValue *v);
1209static PGNode *makeAndExpr(PGNode *lexpr, PGNode *rexpr, int location);
1210static PGNode *makeOrExpr(PGNode *lexpr, PGNode *rexpr, int location);
1211static PGNode *makeNotExpr(PGNode *expr, int location);
1212static void SplitColQualList(PGList *qualList,
1213 PGList **constraintList, PGCollateClause **collClause,
1214 core_yyscan_t yyscanner);
1215static void processCASbits(int cas_bits, int location, const char *constrType,
1216 bool *deferrable, bool *initdeferred, bool *not_valid,
1217 bool *no_inherit, core_yyscan_t yyscanner);
1218static PGNode *makeRecursiveViewSelect(char *relname, PGList *aliases, PGNode *query);
1219static PGNode *makeLimitPercent(PGNode *limit_percent);
1220
1221
1222
1223/* Enabling traces. */
1224#ifndef YYDEBUG
1225# define YYDEBUG 0
1226#endif
1227
1228/* Enabling verbose error messages. */
1229#ifdef YYERROR_VERBOSE
1230# undef YYERROR_VERBOSE
1231# define YYERROR_VERBOSE 1
1232#else
1233# define YYERROR_VERBOSE 0
1234#endif
1235
1236/* Enabling the token table. */
1237#ifndef YYTOKEN_TABLE
1238# define YYTOKEN_TABLE 0
1239#endif
1240
1241#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
1242typedef union YYSTYPE
1243#line 14 "third_party/libpg_query/grammar/grammar.y"
1244{
1245 core_YYSTYPE core_yystype;
1246 /* these fields must match core_YYSTYPE: */
1247 int ival;
1248 char *str;
1249 const char *keyword;
1250 const char *conststr;
1251
1252 char chr;
1253 bool boolean;
1254 PGJoinType jtype;
1255 PGDropBehavior dbehavior;
1256 PGOnCommitAction oncommit;
1257 PGOnCreateConflict oncreateconflict;
1258 PGList *list;
1259 PGNode *node;
1260 PGValue *value;
1261 PGObjectType objtype;
1262 PGTypeName *typnam;
1263 PGObjectWithArgs *objwithargs;
1264 PGDefElem *defelt;
1265 PGSortBy *sortby;
1266 PGWindowDef *windef;
1267 PGJoinExpr *jexpr;
1268 PGIndexElem *ielem;
1269 PGAlias *alias;
1270 PGRangeVar *range;
1271 PGIntoClause *into;
1272 PGWithClause *with;
1273 PGInferClause *infer;
1274 PGOnConflictClause *onconflict;
1275 PGOnConflictActionAlias onconflictshorthand;
1276 PGAIndices *aind;
1277 PGResTarget *target;
1278 PGInsertStmt *istmt;
1279 PGVariableSetStmt *vsetstmt;
1280 PGOverridingKind override;
1281 PGSortByDir sortorder;
1282 PGSortByNulls nullorder;
1283 PGConstrType constr;
1284 PGLockClauseStrength lockstrength;
1285 PGLockWaitPolicy lockwaitpolicy;
1286 PGSubLinkType subquerytype;
1287 PGViewCheckOption viewcheckoption;
1288 PGInsertColumnOrder bynameorposition;
1289}
1290/* Line 193 of yacc.c. */
1291#line 1292 "third_party/libpg_query/grammar/grammar_out.cpp"
1292 YYSTYPE;
1293# define yystype YYSTYPE /* obsolescent; will be withdrawn */
1294# define YYSTYPE_IS_DECLARED 1
1295# define YYSTYPE_IS_TRIVIAL 1
1296#endif
1297
1298#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
1299typedef struct YYLTYPE
1300{
1301 int first_line;
1302 int first_column;
1303 int last_line;
1304 int last_column;
1305} YYLTYPE;
1306# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
1307# define YYLTYPE_IS_DECLARED 1
1308# define YYLTYPE_IS_TRIVIAL 1
1309#endif
1310
1311
1312/* Copy the second part of user declarations. */
1313
1314
1315/* Line 216 of yacc.c. */
1316#line 1317 "third_party/libpg_query/grammar/grammar_out.cpp"
1317
1318#ifdef short
1319# undef short
1320#endif
1321
1322#ifdef YYTYPE_UINT8
1323typedef YYTYPE_UINT8 yytype_uint8;
1324#else
1325typedef unsigned char yytype_uint8;
1326#endif
1327
1328#ifdef YYTYPE_INT8
1329typedef YYTYPE_INT8 yytype_int8;
1330#elif (defined __STDC__ || defined __C99__FUNC__ \
1331 || defined __cplusplus || defined _MSC_VER)
1332typedef signed char yytype_int8;
1333#else
1334typedef short int yytype_int8;
1335#endif
1336
1337#ifdef YYTYPE_UINT16
1338typedef YYTYPE_UINT16 yytype_uint16;
1339#else
1340typedef unsigned short int yytype_uint16;
1341#endif
1342
1343#ifdef YYTYPE_INT16
1344typedef YYTYPE_INT16 yytype_int16;
1345#else
1346typedef short int yytype_int16;
1347#endif
1348
1349#ifndef YYSIZE_T
1350# ifdef __SIZE_TYPE__
1351# define YYSIZE_T __SIZE_TYPE__
1352# elif defined size_t
1353# define YYSIZE_T size_t
1354# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
1355 || defined __cplusplus || defined _MSC_VER)
1356# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1357# define YYSIZE_T size_t
1358# else
1359# define YYSIZE_T unsigned int
1360# endif
1361#endif
1362
1363#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1364
1365#ifndef YY_
1366# if defined YYENABLE_NLS && YYENABLE_NLS
1367# if ENABLE_NLS
1368# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1369# define YY_(msgid) dgettext ("bison-runtime", msgid)
1370# endif
1371# endif
1372# ifndef YY_
1373# define YY_(msgid) msgid
1374# endif
1375#endif
1376
1377/* Suppress unused-variable warnings by "using" E. */
1378#if ! defined lint || defined __GNUC__
1379# define YYUSE(e) ((void) (e))
1380#else
1381# define YYUSE(e) /* empty */
1382#endif
1383
1384/* Identity function, used to suppress warnings about constant conditions. */
1385#ifndef lint
1386# define YYID(n) (n)
1387#else
1388#if (defined __STDC__ || defined __C99__FUNC__ \
1389 || defined __cplusplus || defined _MSC_VER)
1390static int
1391YYID (int i)
1392#else
1393static int
1394YYID (i)
1395 int i;
1396#endif
1397{
1398 return i;
1399}
1400#endif
1401
1402#if ! defined yyoverflow || YYERROR_VERBOSE
1403
1404/* The parser invokes alloca or malloc; define the necessary symbols. */
1405
1406# ifdef YYSTACK_USE_ALLOCA
1407# if YYSTACK_USE_ALLOCA
1408# ifdef __GNUC__
1409# define YYSTACK_ALLOC __builtin_alloca
1410# elif defined __BUILTIN_VA_ARG_INCR
1411# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1412# elif defined _AIX
1413# define YYSTACK_ALLOC __alloca
1414# elif defined _MSC_VER
1415# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1416# define alloca _alloca
1417# else
1418# define YYSTACK_ALLOC alloca
1419# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1420 || defined __cplusplus || defined _MSC_VER)
1421# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1422# ifndef _STDLIB_H
1423# define _STDLIB_H 1
1424# endif
1425# endif
1426# endif
1427# endif
1428# endif
1429
1430# ifdef YYSTACK_ALLOC
1431 /* Pacify GCC's `empty if-body' warning. */
1432# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
1433# ifndef YYSTACK_ALLOC_MAXIMUM
1434 /* The OS might guarantee only one guard page at the bottom of the stack,
1435 and a page size can be as small as 4096 bytes. So we cannot safely
1436 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
1437 to allow for a few compiler-allocated temporary stack slots. */
1438# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1439# endif
1440# else
1441# define YYSTACK_ALLOC YYMALLOC
1442# define YYSTACK_FREE YYFREE
1443# ifndef YYSTACK_ALLOC_MAXIMUM
1444# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1445# endif
1446# if (defined __cplusplus && ! defined _STDLIB_H \
1447 && ! ((defined YYMALLOC || defined malloc) \
1448 && (defined YYFREE || defined free)))
1449# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1450# ifndef _STDLIB_H
1451# define _STDLIB_H 1
1452# endif
1453# endif
1454# ifndef YYMALLOC
1455# define YYMALLOC malloc
1456# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1457 || defined __cplusplus || defined _MSC_VER)
1458void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1459# endif
1460# endif
1461# ifndef YYFREE
1462# define YYFREE free
1463# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1464 || defined __cplusplus || defined _MSC_VER)
1465void free (void *); /* INFRINGES ON USER NAME SPACE */
1466# endif
1467# endif
1468# endif
1469#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
1470
1471
1472#if (! defined yyoverflow \
1473 && (! defined __cplusplus \
1474 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
1475 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1476
1477/* A type that is properly aligned for any stack member. */
1478union yyalloc
1479{
1480 yytype_int16 yyss;
1481 YYSTYPE yyvs;
1482 YYLTYPE yyls;
1483};
1484
1485/* The size of the maximum gap between one aligned stack and the next. */
1486# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1487
1488/* The size of an array large to enough to hold all stacks, each with
1489 N elements. */
1490# define YYSTACK_BYTES(N) \
1491 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
1492 + 2 * YYSTACK_GAP_MAXIMUM)
1493
1494/* Copy COUNT objects from FROM to TO. The source and destination do
1495 not overlap. */
1496# ifndef YYCOPY
1497# if defined __GNUC__ && 1 < __GNUC__
1498# define YYCOPY(To, From, Count) \
1499 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1500# else
1501# define YYCOPY(To, From, Count) \
1502 do \
1503 { \
1504 YYSIZE_T yyi; \
1505 for (yyi = 0; yyi < (Count); yyi++) \
1506 (To)[yyi] = (From)[yyi]; \
1507 } \
1508 while (YYID (0))
1509# endif
1510# endif
1511
1512/* Relocate STACK from its old location to the new one. The
1513 local variables YYSIZE and YYSTACKSIZE give the old and new number of
1514 elements in the stack, and YYPTR gives the new location of the
1515 stack. Advance YYPTR to a properly aligned location for the next
1516 stack. */
1517# define YYSTACK_RELOCATE(Stack) \
1518 do \
1519 { \
1520 YYSIZE_T yynewbytes; \
1521 YYCOPY (&yyptr->Stack, Stack, yysize); \
1522 Stack = &yyptr->Stack; \
1523 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1524 yyptr += yynewbytes / sizeof (*yyptr); \
1525 } \
1526 while (YYID (0))
1527
1528#endif
1529
1530/* YYFINAL -- State number of the termination state. */
1531#define YYFINAL 677
1532/* YYLAST -- Last index in YYTABLE. */
1533#define YYLAST 66573
1534
1535/* YYNTOKENS -- Number of terminals. */
1536#define YYNTOKENS 511
1537/* YYNNTS -- Number of nonterminals. */
1538#define YYNNTS 437
1539/* YYNRULES -- Number of rules. */
1540#define YYNRULES 2019
1541/* YYNRULES -- Number of states. */
1542#define YYNSTATES 3360
1543
1544/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
1545#define YYUNDEFTOK 2
1546#define YYMAXUTOK 743
1547
1548#define YYTRANSLATE(YYX) \
1549 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1550
1551/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
1552static const yytype_uint16 yytranslate[] =
1553{
1554 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1555 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1556 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1557 2, 2, 2, 2, 2, 505, 506, 495, 2, 2,
1558 500, 501, 493, 491, 504, 492, 502, 494, 2, 2,
1559 2, 2, 2, 2, 2, 2, 2, 2, 510, 503,
1560 487, 489, 488, 507, 2, 2, 2, 2, 2, 2,
1561 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1562 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1563 2, 498, 2, 499, 496, 2, 2, 2, 2, 2,
1564 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1565 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1566 2, 2, 2, 508, 2, 509, 2, 2, 2, 2,
1567 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1568 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1569 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1570 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1571 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1572 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1573 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1574 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1575 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1576 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1577 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1578 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1579 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1580 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1581 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1582 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1583 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1584 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1585 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1586 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1587 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1588 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1589 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1590 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1591 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1592 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1593 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1594 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1595 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1596 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1597 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1598 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1599 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1600 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1601 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1602 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1603 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1604 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1605 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1606 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1607 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1608 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1609 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1610 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1611 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1612 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1613 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1614 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1615 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1616 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1617 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1618 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1619 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1620 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1621 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1622 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1623 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1624 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1625 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1626 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1627 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1628 485, 486, 490, 497
1629};
1630
1631#if YYDEBUG
1632/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1633 YYRHS. */
1634static const yytype_uint16 yyprhs[] =
1635{
1636 0, 0, 3, 5, 9, 11, 13, 15, 17, 19,
1637 21, 23, 25, 27, 29, 31, 33, 35, 37, 39,
1638 41, 43, 45, 47, 49, 51, 53, 55, 57, 59,
1639 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
1640 81, 83, 85, 86, 91, 98, 103, 110, 115, 122,
1641 127, 134, 136, 139, 143, 146, 148, 152, 155, 159,
1642 161, 165, 168, 174, 178, 185, 190, 197, 204, 211,
1643 217, 223, 230, 240, 245, 251, 259, 266, 271, 280,
1644 285, 288, 293, 297, 304, 309, 312, 315, 318, 321,
1645 323, 326, 327, 329, 332, 335, 338, 340, 344, 349,
1646 352, 354, 355, 358, 362, 365, 369, 371, 374, 376,
1647 378, 380, 382, 384, 386, 388, 391, 394, 396, 398,
1648 400, 402, 404, 411, 418, 427, 434, 443, 450, 459,
1649 466, 475, 484, 495, 504, 515, 517, 518, 528, 530,
1650 535, 540, 548, 551, 553, 557, 560, 563, 564, 569,
1651 573, 574, 576, 577, 580, 584, 590, 593, 596, 597,
1652 606, 612, 613, 619, 625, 633, 636, 637, 639, 641,
1653 643, 647, 650, 651, 653, 654, 656, 660, 662, 666,
1654 668, 671, 673, 677, 680, 687, 696, 702, 704, 705,
1655 707, 711, 714, 719, 725, 731, 740, 748, 750, 751,
1656 755, 765, 778, 782, 783, 788, 795, 797, 800, 802,
1657 804, 805, 807, 810, 813, 815, 818, 821, 823, 826,
1658 830, 833, 836, 839, 842, 846, 850, 854, 856, 860,
1659 862, 863, 865, 868, 871, 874, 877, 880, 883, 886,
1660 889, 891, 893, 894, 897, 907, 920, 932, 933, 936,
1661 938, 940, 942, 944, 946, 948, 952, 953, 955, 958,
1662 960, 962, 965, 968, 972, 974, 976, 979, 982, 984,
1663 987, 991, 997, 1001, 1004, 1010, 1012, 1014, 1016, 1017,
1664 1023, 1031, 1037, 1040, 1044, 1046, 1048, 1051, 1054, 1055,
1665 1059, 1064, 1069, 1070, 1074, 1077, 1078, 1082, 1084, 1086,
1666 1088, 1090, 1092, 1094, 1096, 1098, 1100, 1102, 1106, 1110,
1667 1112, 1115, 1118, 1121, 1124, 1127, 1130, 1131, 1135, 1139,
1668 1143, 1144, 1146, 1149, 1151, 1154, 1157, 1160, 1163, 1167,
1669 1172, 1174, 1178, 1180, 1182, 1184, 1186, 1190, 1192, 1195,
1670 1196, 1198, 1201, 1202, 1204, 1208, 1209, 1212, 1213, 1217,
1671 1221, 1223, 1229, 1233, 1235, 1239, 1241, 1244, 1246, 1251,
1672 1257, 1263, 1270, 1274, 1282, 1287, 1299, 1301, 1305, 1308,
1673 1311, 1314, 1315, 1319, 1321, 1323, 1326, 1329, 1332, 1335,
1674 1337, 1338, 1340, 1343, 1350, 1355, 1362, 1367, 1374, 1383,
1675 1388, 1395, 1397, 1399, 1401, 1403, 1406, 1408, 1411, 1413,
1676 1416, 1418, 1420, 1422, 1424, 1428, 1432, 1436, 1440, 1443,
1677 1446, 1448, 1452, 1454, 1456, 1458, 1462, 1464, 1466, 1467,
1678 1469, 1471, 1473, 1475, 1479, 1488, 1500, 1511, 1519, 1530,
1679 1540, 1542, 1544, 1547, 1551, 1560, 1572, 1582, 1584, 1586,
1680 1590, 1591, 1593, 1597, 1599, 1600, 1602, 1603, 1605, 1606,
1681 1608, 1612, 1614, 1616, 1618, 1622, 1623, 1626, 1629, 1630,
1682 1633, 1634, 1636, 1637, 1639, 1641, 1643, 1647, 1651, 1653,
1683 1655, 1659, 1663, 1667, 1671, 1675, 1679, 1684, 1688, 1691,
1684 1693, 1695, 1697, 1699, 1701, 1705, 1707, 1709, 1713, 1717,
1685 1719, 1722, 1727, 1732, 1735, 1739, 1745, 1751, 1753, 1755,
1686 1759, 1760, 1772, 1784, 1795, 1808, 1810, 1813, 1819, 1824,
1687 1829, 1834, 1839, 1847, 1853, 1858, 1866, 1873, 1883, 1893,
1688 1898, 1900, 1902, 1904, 1906, 1908, 1910, 1912, 1918, 1920,
1689 1922, 1926, 1928, 1931, 1934, 1937, 1941, 1943, 1947, 1954,
1690 1957, 1958, 1962, 1966, 1971, 1976, 1981, 1986, 1990, 1993,
1691 1995, 1997, 1998, 2000, 2002, 2003, 2006, 2008, 2014, 2016,
1692 2017, 2020, 2023, 2024, 2026, 2027, 2031, 2037, 2039, 2043,
1693 2048, 2052, 2054, 2056, 2057, 2060, 2063, 2064, 2067, 2070,
1694 2072, 2074, 2076, 2077, 2080, 2085, 2091, 2096, 2099, 2103,
1695 2106, 2109, 2112, 2115, 2117, 2120, 2124, 2125, 2127, 2128,
1696 2134, 2136, 2141, 2148, 2151, 2153, 2154, 2159, 2160, 2162,
1697 2164, 2167, 2170, 2173, 2175, 2177, 2180, 2183, 2185, 2187,
1698 2189, 2191, 2193, 2195, 2199, 2203, 2204, 2206, 2210, 2212,
1699 2215, 2217, 2219, 2221, 2223, 2225, 2228, 2233, 2238, 2244,
1700 2246, 2248, 2251, 2252, 2255, 2256, 2258, 2262, 2264, 2265,
1701 2267, 2270, 2274, 2277, 2282, 2285, 2289, 2292, 2293, 2295,
1702 2298, 2299, 2304, 2310, 2312, 2315, 2318, 2319, 2321, 2325,
1703 2327, 2330, 2334, 2338, 2342, 2346, 2350, 2354, 2356, 2361,
1704 2371, 2381, 2385, 2386, 2389, 2392, 2393, 2399, 2403, 2405,
1705 2409, 2415, 2419, 2421, 2424, 2426, 2430, 2436, 2438, 2441,
1706 2445, 2450, 2456, 2461, 2467, 2472, 2479, 2485, 2490, 2496,
1707 2502, 2508, 2511, 2516, 2518, 2520, 2521, 2523, 2528, 2534,
1708 2539, 2540, 2543, 2546, 2549, 2551, 2553, 2555, 2557, 2558,
1709 2563, 2566, 2568, 2571, 2574, 2579, 2582, 2589, 2592, 2594,
1710 2598, 2603, 2604, 2607, 2608, 2611, 2612, 2614, 2618, 2622,
1711 2625, 2626, 2629, 2634, 2636, 2638, 2640, 2641, 2644, 2648,
1712 2654, 2661, 2664, 2668, 2674, 2680, 2686, 2690, 2695, 2696,
1713 2698, 2700, 2702, 2704, 2706, 2709, 2714, 2716, 2718, 2720,
1714 2722, 2725, 2729, 2730, 2732, 2734, 2736, 2738, 2740, 2743,
1715 2746, 2749, 2752, 2755, 2757, 2761, 2762, 2764, 2766, 2768,
1716 2770, 2776, 2779, 2781, 2783, 2785, 2787, 2792, 2794, 2797,
1717 2800, 2802, 2806, 2810, 2813, 2815, 2816, 2822, 2825, 2831,
1718 2834, 2836, 2840, 2844, 2845, 2847, 2849, 2851, 2853, 2855,
1719 2857, 2859, 2861, 2863, 2865, 2867, 2869, 2871, 2873, 2875,
1720 2877, 2879, 2881, 2883, 2885, 2887, 2889, 2891, 2893, 2897,
1721 2901, 2905, 2909, 2913, 2917, 2921, 2922, 2924, 2928, 2932,
1722 2938, 2941, 2944, 2948, 2952, 2956, 2960, 2964, 2968, 2972,
1723 2976, 2980, 2984, 2988, 2992, 2996, 3000, 3004, 3007, 3010,
1724 3014, 3018, 3021, 3024, 3028, 3032, 3038, 3043, 3050, 3054,
1725 3060, 3065, 3072, 3077, 3084, 3090, 3098, 3102, 3105, 3110,
1726 3114, 3117, 3121, 3125, 3129, 3133, 3138, 3142, 3147, 3151,
1727 3156, 3162, 3169, 3176, 3184, 3191, 3199, 3206, 3214, 3218,
1728 3223, 3228, 3235, 3237, 3242, 3246, 3252, 3254, 3258, 3261,
1729 3264, 3268, 3272, 3276, 3280, 3284, 3288, 3292, 3296, 3300,
1730 3304, 3308, 3312, 3316, 3320, 3324, 3327, 3330, 3336, 3343,
1731 3350, 3358, 3360, 3362, 3365, 3367, 3369, 3372, 3375, 3379,
1732 3381, 3384, 3389, 3391, 3393, 3396, 3399, 3404, 3406, 3408,
1733 3412, 3416, 3421, 3423, 3427, 3434, 3442, 3452, 3460, 3468,
1734 3474, 3476, 3478, 3480, 3486, 3493, 3500, 3505, 3510, 3515,
1735 3520, 3527, 3533, 3539, 3545, 3550, 3557, 3562, 3570, 3580,
1736 3586, 3587, 3593, 3598, 3599, 3601, 3602, 3605, 3606, 3608,
1737 3612, 3616, 3619, 3622, 3623, 3630, 3632, 3633, 3637, 3638,
1738 3641, 3644, 3645, 3647, 3652, 3655, 3658, 3661, 3664, 3667,
1739 3672, 3676, 3678, 3684, 3688, 3690, 3694, 3696, 3699, 3703,
1740 3705, 3709, 3711, 3714, 3716, 3717, 3719, 3721, 3723, 3725,
1741 3727, 3729, 3731, 3733, 3735, 3737, 3739, 3741, 3743, 3745,
1742 3747, 3749, 3751, 3753, 3755, 3757, 3762, 3764, 3769, 3771,
1743 3776, 3778, 3781, 3783, 3786, 3788, 3791, 3793, 3797, 3799,
1744 3803, 3805, 3808, 3810, 3814, 3816, 3819, 3821, 3822, 3824,
1745 3828, 3830, 3834, 3838, 3840, 3844, 3848, 3849, 3851, 3853,
1746 3855, 3857, 3859, 3861, 3863, 3865, 3867, 3869, 3874, 3878,
1747 3881, 3885, 3886, 3890, 3894, 3897, 3900, 3902, 3903, 3906,
1748 3909, 3913, 3916, 3918, 3920, 3924, 3930, 3932, 3935, 3940,
1749 3943, 3944, 3946, 3947, 3949, 3952, 3956, 3962, 3964, 3965,
1750 3966, 3969, 3970, 3973, 3977, 3981, 3985, 3991, 3992, 3995,
1751 3997, 3998, 4000, 4001, 4003, 4007, 4009, 4012, 4016, 4019,
1752 4021, 4026, 4029, 4031, 4032, 4036, 4038, 4042, 4044, 4047,
1753 4052, 4055, 4056, 4058, 4062, 4064, 4068, 4070, 4073, 4075,
1754 4079, 4081, 4083, 4086, 4088, 4090, 4093, 4095, 4097, 4100,
1755 4108, 4111, 4117, 4121, 4125, 4127, 4129, 4131, 4133, 4135,
1756 4137, 4139, 4141, 4143, 4145, 4147, 4149, 4151, 4153, 4156,
1757 4159, 4163, 4167, 4168, 4170, 4172, 4174, 4180, 4184, 4185,
1758 4187, 4189, 4191, 4193, 4195, 4200, 4208, 4215, 4218, 4219,
1759 4221, 4223, 4225, 4227, 4241, 4258, 4260, 4263, 4264, 4266,
1760 4267, 4269, 4270, 4273, 4274, 4276, 4277, 4284, 4293, 4300,
1761 4309, 4316, 4325, 4329, 4332, 4334, 4335, 4340, 4347, 4351,
1762 4354, 4359, 4363, 4369, 4371, 4372, 4374, 4376, 4377, 4379,
1763 4381, 4383, 4385, 4387, 4389, 4391, 4393, 4395, 4397, 4399,
1764 4401, 4403, 4405, 4407, 4409, 4411, 4413, 4415, 4417, 4419,
1765 4421, 4423, 4425, 4427, 4429, 4431, 4433, 4435, 4437, 4439,
1766 4441, 4443, 4445, 4447, 4449, 4453, 4455, 4457, 4459, 4461,
1767 4463, 4465, 4468, 4470, 4472, 4475, 4479, 4483, 4487, 4489,
1768 4493, 4497, 4500, 4504, 4508, 4512, 4516, 4518, 4520, 4522,
1769 4524, 4528, 4534, 4536, 4538, 4540, 4542, 4546, 4549, 4552,
1770 4556, 4558, 4560, 4565, 4572, 4578, 4583, 4590, 4592, 4594,
1771 4596, 4598, 4600, 4602, 4603, 4605, 4609, 4611, 4612, 4620,
1772 4624, 4626, 4629, 4633, 4636, 4637, 4640, 4641, 4644, 4649,
1773 4655, 4659, 4665, 4667, 4668, 4671, 4672, 4675, 4677, 4679,
1774 4681, 4684, 4688, 4691, 4694, 4697, 4700, 4704, 4709, 4713,
1775 4715, 4717, 4719, 4721, 4722, 4724, 4728, 4730, 4734, 4737,
1776 4747, 4760, 4772, 4785, 4800, 4804, 4809, 4814, 4815, 4823,
1777 4834, 4844, 4847, 4851, 4852, 4857, 4859, 4861, 4863, 4865,
1778 4867, 4869, 4871, 4873, 4875, 4877, 4879, 4881, 4883, 4885,
1779 4887, 4889, 4891, 4893, 4895, 4897, 4899, 4901, 4903, 4905,
1780 4907, 4909, 4911, 4913, 4915, 4917, 4919, 4921, 4923, 4925,
1781 4927, 4929, 4931, 4933, 4935, 4937, 4939, 4941, 4943, 4945,
1782 4947, 4949, 4951, 4953, 4955, 4957, 4959, 4961, 4963, 4965,
1783 4967, 4969, 4971, 4973, 4975, 4977, 4979, 4981, 4983, 4985,
1784 4987, 4989, 4991, 4993, 4995, 4997, 4999, 5001, 5003, 5005,
1785 5007, 5009, 5011, 5013, 5015, 5017, 5019, 5021, 5023, 5025,
1786 5027, 5029, 5031, 5033, 5035, 5037, 5039, 5041, 5043, 5045,
1787 5047, 5049, 5051, 5053, 5055, 5057, 5059, 5061, 5063, 5065,
1788 5067, 5069, 5071, 5073, 5075, 5077, 5079, 5081, 5083, 5085,
1789 5087, 5089, 5091, 5093, 5095, 5097, 5099, 5101, 5103, 5105,
1790 5107, 5109, 5111, 5113, 5115, 5117, 5119, 5121, 5123, 5125,
1791 5127, 5129, 5131, 5133, 5135, 5137, 5139, 5141, 5143, 5145,
1792 5147, 5149, 5151, 5153, 5155, 5157, 5159, 5161, 5163, 5165,
1793 5167, 5169, 5171, 5173, 5175, 5177, 5179, 5181, 5183, 5185,
1794 5187, 5189, 5191, 5193, 5195, 5197, 5199, 5201, 5203, 5205,
1795 5207, 5209, 5211, 5213, 5215, 5217, 5219, 5221, 5223, 5225,
1796 5227, 5229, 5231, 5233, 5235, 5237, 5239, 5241, 5243, 5245,
1797 5247, 5249, 5251, 5253, 5255, 5257, 5259, 5261, 5263, 5265,
1798 5267, 5269, 5271, 5273, 5275, 5277, 5279, 5281, 5283, 5285,
1799 5287, 5289, 5291, 5293, 5295, 5297, 5299, 5301, 5303, 5305,
1800 5307, 5309, 5311, 5313, 5315, 5317, 5319, 5321, 5323, 5325,
1801 5327, 5329, 5331, 5333, 5335, 5337, 5339, 5341, 5343, 5345,
1802 5347, 5349, 5351, 5353, 5355, 5357, 5359, 5361, 5363, 5365,
1803 5367, 5369, 5371, 5373, 5375, 5377, 5379, 5381, 5383, 5385,
1804 5387, 5389, 5391, 5393, 5395, 5397, 5399, 5401, 5403, 5405,
1805 5407, 5409, 5411, 5413, 5415, 5417, 5419, 5421, 5423, 5425,
1806 5427, 5429, 5431, 5433, 5435, 5437, 5439, 5441, 5443, 5445,
1807 5447, 5449, 5451, 5453, 5455, 5457, 5459, 5461, 5463, 5465,
1808 5467, 5469, 5471, 5473, 5475, 5477, 5479, 5481, 5483, 5485,
1809 5487, 5489, 5491, 5493, 5495, 5497, 5499, 5501, 5503, 5505,
1810 5507, 5509, 5511, 5513, 5515, 5517, 5519, 5521, 5523, 5525,
1811 5527, 5529, 5531, 5533, 5535, 5537, 5539, 5541, 5543, 5545,
1812 5547, 5549, 5551, 5553, 5555, 5557, 5559, 5561, 5563, 5565,
1813 5567, 5569, 5571, 5573, 5575, 5577, 5579, 5581, 5583, 5585,
1814 5587, 5589, 5591, 5593, 5595, 5597, 5599, 5601, 5603, 5605,
1815 5607, 5609, 5611, 5613, 5615, 5617, 5619, 5621, 5623, 5625,
1816 5627, 5629, 5631, 5633, 5635, 5637, 5639, 5641, 5643, 5645,
1817 5647, 5649, 5651, 5653, 5655, 5657, 5659, 5661, 5663, 5665,
1818 5667, 5669, 5671, 5673, 5675, 5677, 5679, 5681, 5683, 5685,
1819 5687, 5689, 5691, 5693, 5695, 5697, 5699, 5701, 5703, 5705,
1820 5707, 5709, 5711, 5713, 5715, 5717, 5719, 5721, 5723, 5725,
1821 5727, 5729, 5731, 5733, 5735, 5737, 5739, 5741, 5743, 5745,
1822 5747, 5749, 5751, 5753, 5755, 5757, 5759, 5761, 5763, 5765,
1823 5767, 5769, 5771, 5773, 5775, 5777, 5779, 5781, 5783, 5785,
1824 5787, 5789, 5791, 5793, 5795, 5797, 5799, 5801, 5803, 5805,
1825 5807, 5809, 5811, 5813, 5815, 5817, 5819, 5821, 5823, 5825,
1826 5827, 5829, 5831, 5833, 5835, 5837, 5839, 5841, 5843, 5845,
1827 5847, 5849, 5851, 5853, 5855, 5857, 5859, 5861, 5863, 5865,
1828 5867, 5869, 5871, 5873, 5875, 5877, 5879, 5881, 5883, 5885,
1829 5887, 5889, 5891, 5893, 5895, 5897, 5899, 5901, 5903, 5905,
1830 5907, 5909, 5911, 5913, 5915, 5917, 5919, 5921, 5923, 5925,
1831 5927, 5929, 5931, 5933, 5935, 5937, 5939, 5941, 5943, 5945,
1832 5947, 5949, 5951, 5953, 5955, 5957, 5959, 5961, 5963, 5965,
1833 5967, 5969, 5971, 5973, 5975, 5977, 5979, 5981, 5983, 5985,
1834 5987, 5989, 5991, 5993, 5995, 5997, 5999, 6001, 6003, 6005,
1835 6007, 6009, 6011, 6013, 6015, 6017, 6019, 6021, 6023, 6025,
1836 6027, 6029, 6031, 6033, 6035, 6037, 6039, 6041, 6043, 6045,
1837 6047, 6049, 6051, 6053, 6055, 6057, 6059, 6061, 6063, 6065
1838};
1839
1840/* YYRHS -- A `-1'-separated list of the rules' RHS. */
1841static const yytype_int16 yyrhs[] =
1842{
1843 512, 0, -1, 513, -1, 513, 503, 514, -1, 514,
1844 -1, 889, -1, 566, -1, 515, -1, 922, -1, 923,
1845 -1, 935, -1, 890, -1, 635, -1, 938, -1, 631,
1846 -1, 879, -1, 562, -1, 576, -1, 558, -1, 526,
1847 -1, 918, -1, 924, -1, 624, -1, 564, -1, 894,
1848 -1, 892, -1, 893, -1, 882, -1, 537, -1, 911,
1849 -1, 561, -1, 876, -1, 535, -1, 652, -1, 573,
1850 -1, 634, -1, 575, -1, 913, -1, 927, -1, 905,
1851 -1, 930, -1, 936, -1, -1, 32, 405, 738, 523,
1852 -1, 32, 405, 186, 148, 738, 523, -1, 32, 197,
1853 527, 523, -1, 32, 197, 186, 148, 527, 523, -1,
1854 32, 370, 527, 523, -1, 32, 370, 186, 148, 527,
1855 523, -1, 32, 454, 527, 523, -1, 32, 454, 186,
1856 148, 527, 523, -1, 518, -1, 516, 518, -1, 375,
1857 113, 781, -1, 133, 113, -1, 347, -1, 347, 568,
1858 569, -1, 375, 570, -1, 375, 171, 623, -1, 522,
1859 -1, 519, 504, 522, -1, 26, 603, -1, 26, 186,
1860 267, 148, 603, -1, 26, 80, 603, -1, 26, 80,
1861 186, 267, 148, 603, -1, 32, 536, 528, 517, -1,
1862 32, 536, 528, 133, 267, 272, -1, 32, 536, 528,
1863 375, 267, 272, -1, 32, 536, 528, 375, 391, 572,
1864 -1, 32, 536, 528, 375, 591, -1, 32, 536, 528,
1865 345, 591, -1, 32, 536, 528, 375, 394, 528, -1,
1866 32, 536, 528, 26, 171, 623, 40, 185, 579, -1,
1867 32, 536, 528, 516, -1, 32, 536, 528, 133, 185,
1868 -1, 32, 536, 528, 133, 185, 186, 148, -1, 133,
1869 536, 186, 148, 528, 628, -1, 133, 536, 528, 628,
1870 -1, 32, 536, 528, 525, 427, 751, 747, 521, -1,
1871 32, 536, 528, 524, -1, 26, 593, -1, 32, 91,
1872 864, 577, -1, 445, 91, 864, -1, 133, 91, 186,
1873 148, 864, 628, -1, 133, 91, 864, 628, -1, 375,
1874 239, -1, 375, 436, -1, 375, 591, -1, 345, 591,
1875 -1, 524, -1, 442, 781, -1, -1, 587, -1, 375,
1876 587, -1, 26, 587, -1, 133, 601, -1, 520, -1,
1877 523, 504, 520, -1, 286, 500, 519, 501, -1, 375,
1878 105, -1, 375, -1, -1, 109, 864, -1, 109, 316,
1879 864, -1, 109, 30, -1, 109, 316, 30, -1, 529,
1880 -1, 528, 531, -1, 3, -1, 941, -1, 942, -1,
1881 528, -1, 5, -1, 5, -1, 532, -1, 531, 532,
1882 -1, 502, 533, -1, 534, -1, 3, -1, 945, -1,
1883 941, -1, 947, -1, 32, 361, 864, 341, 416, 864,
1884 -1, 32, 405, 738, 341, 416, 864, -1, 32, 405,
1885 186, 148, 738, 341, 416, 864, -1, 32, 370, 527,
1886 341, 416, 864, -1, 32, 370, 186, 148, 527, 341,
1887 416, 864, -1, 32, 454, 527, 341, 416, 864, -1,
1888 32, 454, 186, 148, 527, 341, 416, 864, -1, 32,
1889 197, 527, 341, 416, 864, -1, 32, 197, 186, 148,
1890 527, 341, 416, 864, -1, 32, 405, 738, 341, 536,
1891 864, 416, 864, -1, 32, 405, 186, 148, 738, 341,
1892 536, 864, 416, 864, -1, 32, 405, 738, 341, 91,
1893 864, 416, 864, -1, 32, 405, 186, 148, 738, 341,
1894 91, 864, 416, 864, -1, 80, -1, -1, 542, 207,
1895 545, 214, 539, 540, 538, 546, 548, -1, 652, -1,
1896 295, 549, 447, 652, -1, 500, 553, 501, 652, -1,
1897 500, 553, 501, 295, 549, 447, 652, -1, 113, 448,
1898 -1, 527, -1, 527, 40, 528, -1, 59, 258, -1,
1899 59, 311, -1, -1, 500, 556, 501, 744, -1, 282,
1900 91, 864, -1, -1, 664, -1, -1, 528, 845, -1,
1901 557, 489, 781, -1, 500, 550, 501, 489, 781, -1,
1902 287, 343, -1, 287, 187, -1, -1, 282, 89, 541,
1903 129, 439, 375, 555, 744, -1, 282, 89, 541, 129,
1904 268, -1, -1, 528, 551, 552, 679, 680, -1, 788,
1905 551, 552, 679, 680, -1, 500, 781, 501, 551, 552,
1906 679, 680, -1, 349, 851, -1, -1, 441, -1, 404,
1907 -1, 557, -1, 550, 504, 557, -1, 78, 871, -1,
1908 -1, 871, -1, -1, 543, -1, 553, 504, 543, -1,
1909 544, -1, 554, 504, 544, -1, 554, -1, 554, 504,
1910 -1, 547, -1, 556, 504, 547, -1, 528, 845, -1,
1911 98, 427, 527, 40, 140, 653, -1, 98, 427, 527,
1912 40, 140, 500, 559, 501, -1, 98, 427, 527, 40,
1913 751, -1, 560, -1, -1, 530, -1, 560, 504, 530,
1914 -1, 313, 528, -1, 313, 528, 489, 910, -1, 313,
1915 528, 500, 825, 501, -1, 98, 622, 370, 527, 563,
1916 -1, 98, 622, 370, 186, 267, 148, 527, 563, -1,
1917 98, 287, 343, 622, 370, 527, 563, -1, 567, -1,
1918 -1, 147, 864, 565, -1, 98, 622, 405, 940, 40,
1919 147, 864, 565, 939, -1, 98, 622, 405, 186, 267,
1920 148, 940, 40, 147, 864, 565, 939, -1, 500, 823,
1921 501, -1, -1, 32, 370, 527, 567, -1, 32, 370,
1922 186, 148, 527, 567, -1, 570, -1, 567, 570, -1,
1923 462, -1, 486, -1, -1, 4, -1, 491, 4, -1,
1924 492, 4, -1, 572, -1, 40, 753, -1, 60, 569,
1925 -1, 104, -1, 265, 104, -1, 196, 571, 569, -1,
1926 245, 569, -1, 253, 569, -1, 265, 245, -1, 265,
1927 253, -1, 296, 59, 871, -1, 370, 258, 871, -1,
1928 389, 568, 569, -1, 347, -1, 347, 568, 569, -1,
1929 59, -1, -1, 867, -1, 491, 867, -1, 492, 867,
1930 -1, 22, 574, -1, 52, 574, -1, 389, 574, -1,
1931 84, 574, -1, 139, 574, -1, 354, 574, -1, 465,
1932 -1, 418, -1, -1, 440, 527, -1, 98, 622, 405,
1933 527, 500, 609, 501, 598, 590, -1, 98, 622, 405,
1934 186, 267, 148, 527, 500, 609, 501, 598, 590, -1,
1935 98, 287, 343, 622, 405, 527, 500, 609, 501, 598,
1936 590, -1, -1, 577, 602, -1, 617, -1, 947, -1,
1937 817, -1, 569, -1, 530, -1, 266, -1, 500, 567,
1938 501, -1, -1, 530, -1, 265, 25, -1, 348, -1,
1939 63, -1, 375, 272, -1, 375, 113, -1, 91, 864,
1940 583, -1, 583, -1, 597, -1, 78, 871, -1, 267,
1941 272, -1, 272, -1, 433, 608, -1, 319, 221, 608,
1942 -1, 72, 500, 781, 501, 592, -1, 442, 86, 864,
1943 -1, 113, 782, -1, 335, 527, 611, 620, 589, -1,
1944 456, -1, 395, -1, 584, -1, -1, 171, 623, 40,
1945 185, 579, -1, 171, 623, 40, 500, 781, 501, 585,
1946 -1, 40, 500, 781, 501, 585, -1, 601, 580, -1,
1947 282, 439, 581, -1, 588, -1, 613, -1, 588, 613,
1948 -1, 613, 588, -1, -1, 282, 84, 133, -1, 282,
1949 84, 118, 357, -1, 282, 84, 318, 357, -1, -1,
1950 500, 595, 501, -1, 265, 199, -1, -1, 91, 864,
1951 618, -1, 618, -1, 83, -1, 92, -1, 114, -1,
1952 185, -1, 198, -1, 391, -1, 394, -1, 30, -1,
1953 614, -1, 595, 504, 614, -1, 442, 197, 605, -1,
1954 115, -1, 267, 115, -1, 201, 116, -1, 201, 189,
1955 -1, 462, 591, -1, 462, 280, -1, 464, 280, -1,
1956 -1, 500, 604, 501, -1, 600, 195, 594, -1, 600,
1957 145, 594, -1, -1, 534, -1, 267, 115, -1, 115,
1958 -1, 201, 189, -1, 201, 116, -1, 267, 444, -1,
1959 265, 199, -1, 528, 751, 612, -1, 528, 750, 586,
1960 612, -1, 607, -1, 604, 504, 607, -1, 528, -1,
1961 603, -1, 621, -1, 593, -1, 534, 489, 578, -1,
1962 534, -1, 462, 599, -1, -1, 619, -1, 619, 504,
1963 -1, -1, 528, -1, 500, 615, 501, -1, -1, 612,
1964 582, -1, -1, 282, 118, 581, -1, 534, 489, 578,
1965 -1, 534, -1, 534, 502, 534, 489, 578, -1, 534,
1966 502, 534, -1, 610, -1, 615, 504, 610, -1, 615,
1967 -1, 615, 504, -1, 751, -1, 868, 872, 495, 427,
1968 -1, 376, 868, 872, 495, 427, -1, 72, 500, 781,
1969 501, 577, -1, 433, 500, 616, 501, 608, 577, -1,
1970 433, 596, 577, -1, 319, 221, 500, 616, 501, 608,
1971 577, -1, 319, 221, 596, 577, -1, 164, 221, 500,
1972 616, 501, 335, 527, 611, 620, 589, 577, -1, 606,
1973 -1, 619, 504, 606, -1, 243, 168, -1, 243, 300,
1974 -1, 243, 381, -1, -1, 231, 527, 600, -1, 411,
1975 -1, 409, -1, 235, 411, -1, 235, 409, -1, 173,
1976 411, -1, 173, 409, -1, 436, -1, -1, 33, -1,
1977 59, 113, -1, 133, 625, 186, 148, 627, 628, -1,
1978 133, 625, 627, 628, -1, 133, 626, 186, 148, 861,
1979 628, -1, 133, 626, 861, 628, -1, 133, 629, 864,
1980 282, 871, 628, -1, 133, 629, 186, 148, 864, 282,
1981 871, 628, -1, 133, 427, 630, 628, -1, 133, 427,
1982 186, 148, 630, 628, -1, 405, -1, 370, -1, 169,
1983 -1, 240, -1, 240, 405, -1, 454, -1, 244, 454,
1984 -1, 197, -1, 164, 405, -1, 79, -1, 95, -1,
1985 361, -1, 391, -1, 412, 364, 299, -1, 412, 364,
1986 125, -1, 412, 364, 410, -1, 412, 364, 88, -1,
1987 24, 246, -1, 142, 421, -1, 152, -1, 164, 105,
1988 466, -1, 325, -1, 373, -1, 871, -1, 627, 504,
1989 871, -1, 63, -1, 348, -1, -1, 310, -1, 358,
1990 -1, 421, -1, 751, -1, 630, 504, 751, -1, 98,
1991 622, 632, 527, 633, 40, 405, 652, -1, 98, 622,
1992 632, 186, 267, 148, 527, 633, 40, 405, 652, -1,
1993 98, 287, 343, 622, 632, 527, 633, 40, 405, 652,
1994 -1, 98, 622, 632, 527, 633, 40, 781, -1, 98,
1995 622, 632, 186, 267, 148, 527, 633, 40, 781, -1,
1996 98, 287, 343, 622, 632, 527, 633, 40, 781, -1,
1997 169, -1, 240, -1, 500, 501, -1, 500, 825, 501,
1998 -1, 542, 439, 919, 375, 555, 718, 920, 548, -1,
1999 96, 647, 527, 611, 645, 636, 641, 650, 637, 568,
2000 642, -1, 96, 500, 652, 501, 416, 641, 650, 568,
2001 642, -1, 167, -1, 416, -1, 639, 120, 530, -1,
2002 -1, 649, -1, 638, 504, 649, -1, 442, -1, -1,
2003 40, -1, -1, 324, -1, -1, 646, -1, 500, 651,
2004 501, -1, 902, -1, 569, -1, 493, -1, 500, 638,
2005 501, -1, -1, 534, 643, -1, 462, 280, -1, -1,
2006 646, 648, -1, -1, 55, -1, -1, 55, -1, 280,
2007 -1, 166, -1, 119, 640, 530, -1, 272, 640, 530,
2008 -1, 100, -1, 181, -1, 327, 640, 530, -1, 141,
2009 640, 530, -1, 163, 327, 615, -1, 163, 327, 493,
2010 -1, 301, 59, 615, -1, 301, 59, 493, -1, 163,
2011 267, 272, 615, -1, 163, 272, 615, -1, 137, 530,
2012 -1, 902, -1, 530, -1, 392, -1, 393, -1, 644,
2013 -1, 651, 504, 644, -1, 654, -1, 653, -1, 500,
2014 654, 501, -1, 500, 653, 501, -1, 657, -1, 655,
2015 676, -1, 655, 675, 709, 682, -1, 655, 675, 681,
2016 710, -1, 664, 655, -1, 664, 655, 676, -1, 664,
2017 655, 675, 709, 682, -1, 664, 655, 675, 681, 710,
2018 -1, 657, -1, 653, -1, 368, 673, 850, -1, -1,
2019 368, 673, 850, 667, 718, 744, 698, 707, 794, 708,
2020 686, -1, 368, 672, 852, 667, 718, 744, 698, 707,
2021 794, 708, 686, -1, 167, 719, 656, 667, 744, 698,
2022 707, 794, 708, 686, -1, 167, 719, 368, 672, 852,
2023 667, 744, 698, 707, 794, 708, 686, -1, 717, -1,
2024 405, 738, -1, 655, 432, 670, 671, 655, -1, 655,
2025 432, 670, 655, -1, 655, 212, 670, 655, -1, 655,
2026 143, 670, 655, -1, 659, 721, 442, 852, -1, 659,
2027 721, 442, 852, 176, 59, 863, -1, 659, 721, 176,
2028 59, 863, -1, 659, 721, 282, 663, -1, 659, 721,
2029 282, 663, 176, 59, 863, -1, 659, 721, 282, 663,
2030 442, 852, -1, 659, 721, 282, 663, 442, 852, 176,
2031 59, 863, -1, 660, 721, 282, 852, 214, 258, 864,
2032 658, 863, -1, 660, 721, 282, 852, -1, 447, -1,
2033 448, -1, 305, -1, 307, -1, 437, -1, 306, -1,
2034 782, -1, 782, 193, 500, 654, 501, -1, 724, -1,
2035 661, -1, 662, 504, 661, -1, 662, -1, 662, 504,
2036 -1, 462, 665, -1, 486, 665, -1, 462, 333, 665,
2037 -1, 666, -1, 665, 504, 666, -1, 864, 873, 40,
2038 500, 878, 501, -1, 214, 668, -1, -1, 411, 669,
2039 527, -1, 409, 669, 527, -1, 235, 411, 669, 527,
2040 -1, 235, 409, 669, 527, -1, 173, 411, 669, 527,
2041 -1, 173, 409, 669, 527, -1, 436, 669, 527, -1,
2042 405, 527, -1, 527, -1, 405, -1, -1, 30, -1,
2043 128, -1, -1, 59, 258, -1, 128, -1, 128, 282,
2044 500, 823, 501, -1, 30, -1, -1, 187, 274, -1,
2045 346, 274, -1, -1, 676, -1, -1, 288, 59, 677,
2046 -1, 288, 59, 30, 679, 680, -1, 678, -1, 677,
2047 504, 678, -1, 781, 442, 817, 680, -1, 781, 679,
2048 680, -1, 41, -1, 122, -1, -1, 485, 159, -1,
2049 485, 225, -1, -1, 683, 684, -1, 684, 683, -1,
2050 683, -1, 684, -1, 681, -1, -1, 232, 692, -1,
2051 232, 692, 504, 693, -1, 157, 697, 694, 696, 283,
2052 -1, 157, 697, 696, 283, -1, 279, 693, -1, 279,
2053 694, 696, -1, 4, 495, -1, 9, 495, -1, 4,
2054 304, -1, 9, 304, -1, 9, -1, 9, 357, -1,
2055 442, 359, 688, -1, -1, 528, -1, -1, 687, 500,
2056 685, 501, 691, -1, 685, -1, 685, 500, 528, 501,
2057 -1, 685, 500, 528, 504, 9, 501, -1, 407, 688,
2058 -1, 689, -1, -1, 342, 500, 9, 501, -1, -1,
2059 781, -1, 30, -1, 781, 495, -1, 4, 304, -1,
2060 9, 304, -1, 781, -1, 783, -1, 491, 695, -1,
2061 492, 695, -1, 867, -1, 4, -1, 356, -1, 357,
2062 -1, 159, -1, 264, -1, 176, 59, 700, -1, 176,
2063 59, 30, -1, -1, 701, -1, 699, 504, 701, -1,
2064 699, -1, 699, 504, -1, 781, -1, 702, -1, 704,
2065 -1, 703, -1, 705, -1, 500, 501, -1, 355, 500,
2066 823, 501, -1, 101, 500, 823, 501, -1, 177, 377,
2067 500, 700, 501, -1, 177, -1, 178, -1, 180, 781,
2068 -1, -1, 326, 781, -1, -1, 711, -1, 162, 329,
2069 283, -1, 709, -1, -1, 712, -1, 711, 712, -1,
2070 713, 714, 715, -1, 162, 439, -1, 162, 265, 221,
2071 439, -1, 162, 378, -1, 162, 221, 378, -1, 277,
2072 860, -1, -1, 271, -1, 382, 238, -1, -1, 448,
2073 500, 823, 501, -1, 716, 504, 500, 823, 501, -1,
2074 716, -1, 716, 504, -1, 167, 720, -1, -1, 721,
2075 -1, 719, 504, 721, -1, 719, -1, 719, 504, -1,
2076 738, 733, 690, -1, 739, 734, 690, -1, 717, 732,
2077 690, -1, 226, 739, 734, -1, 653, 733, 690, -1,
2078 226, 653, 733, -1, 731, -1, 500, 731, 501, 732,
2079 -1, 721, 305, 500, 852, 162, 727, 722, 501, 733,
2080 -1, 721, 437, 723, 500, 728, 162, 730, 501, 733,
2081 -1, 176, 59, 862, -1, -1, 194, 274, -1, 144,
2082 274, -1, -1, 782, 193, 500, 852, 501, -1, 782,
2083 193, 529, -1, 784, -1, 500, 821, 501, -1, 725,
2084 193, 500, 852, 501, -1, 725, 193, 529, -1, 726,
2085 -1, 727, 726, -1, 529, -1, 500, 862, 501, -1,
2086 728, 193, 500, 852, 501, -1, 729, -1, 730, 729,
2087 -1, 500, 731, 501, -1, 721, 99, 219, 721, -1,
2088 721, 735, 219, 721, 737, -1, 721, 219, 721, 737,
2089 -1, 721, 261, 735, 219, 721, -1, 721, 261, 219,
2090 721, -1, 721, 42, 735, 219, 721, 737, -1, 721,
2091 42, 219, 721, 737, -1, 721, 312, 219, 721, -1,
2092 721, 37, 219, 721, 737, -1, 721, 369, 219, 721,
2093 737, -1, 40, 529, 500, 862, 501, -1, 40, 529,
2094 -1, 528, 500, 862, 501, -1, 528, -1, 732, -1,
2095 -1, 732, -1, 40, 500, 745, 501, -1, 40, 529,
2096 500, 745, 501, -1, 528, 500, 745, 501, -1, -1,
2097 168, 736, -1, 229, 736, -1, 352, 736, -1, 369,
2098 -1, 37, -1, 203, -1, 291, -1, -1, 442, 500,
2099 862, 501, -1, 282, 781, -1, 527, -1, 527, 493,
2100 -1, 283, 527, -1, 283, 500, 527, 501, -1, 788,
2101 743, -1, 357, 167, 500, 741, 501, 743, -1, 788,
2102 742, -1, 740, -1, 741, 504, 740, -1, 40, 500,
2103 745, 501, -1, -1, 486, 289, -1, -1, 459, 781,
2104 -1, -1, 746, -1, 745, 504, 746, -1, 529, 751,
2105 747, -1, 78, 871, -1, -1, 528, 751, -1, 748,
2106 504, 528, 751, -1, 356, -1, 398, -1, 751, -1,
2107 -1, 753, 752, -1, 376, 753, 752, -1, 753, 39,
2108 498, 867, 499, -1, 376, 753, 39, 498, 867, 499,
2109 -1, 753, 39, -1, 376, 753, 39, -1, 749, 500,
2110 748, 501, 752, -1, 241, 500, 827, 501, 752, -1,
2111 432, 500, 748, 501, 752, -1, 752, 498, 499, -1,
2112 752, 498, 867, 499, -1, -1, 755, -1, 757, -1,
2113 759, -1, 763, -1, 769, -1, 770, 780, -1, 770,
2114 500, 867, 501, -1, 757, -1, 760, -1, 764, -1,
2115 769, -1, 870, 756, -1, 500, 824, 501, -1, -1,
2116 210, -1, 211, -1, 383, -1, 54, -1, 330, -1,
2117 160, 758, -1, 132, 315, -1, 111, 756, -1, 110,
2118 756, -1, 275, 756, -1, 57, -1, 500, 867, 501,
2119 -1, -1, 761, -1, 762, -1, 761, -1, 762, -1,
2120 56, 768, 500, 823, 501, -1, 56, 768, -1, 765,
2121 -1, 766, -1, 765, -1, 766, -1, 767, 500, 867,
2122 501, -1, 767, -1, 70, 768, -1, 69, 768, -1,
2123 449, -1, 260, 70, 768, -1, 260, 69, 768, -1,
2124 262, 768, -1, 451, -1, -1, 415, 500, 867, 501,
2125 771, -1, 415, 771, -1, 414, 500, 867, 501, 771,
2126 -1, 414, 771, -1, 213, -1, 486, 414, 483, -1,
2127 464, 414, 483, -1, -1, 480, -1, 481, -1, 255,
2128 -1, 256, -1, 107, -1, 108, -1, 183, -1, 184,
2129 -1, 251, -1, 252, -1, 365, -1, 366, -1, 249,
2130 -1, 250, -1, 247, -1, 248, -1, 772, -1, 773,
2131 -1, 774, -1, 775, -1, 776, -1, 777, -1, 778,
2132 -1, 779, -1, 772, 416, 773, -1, 774, 416, 775,
2133 -1, 774, 416, 776, -1, 774, 416, 777, -1, 775,
2134 416, 776, -1, 775, 416, 777, -1, 776, 416, 777,
2135 -1, -1, 783, -1, 781, 11, 751, -1, 781, 78,
2136 871, -1, 781, 46, 414, 483, 781, -1, 491, 781,
2137 -1, 492, 781, -1, 781, 491, 781, -1, 781, 492,
2138 781, -1, 781, 493, 781, -1, 781, 494, 781, -1,
2139 781, 15, 781, -1, 781, 495, 781, -1, 781, 496,
2140 781, -1, 781, 16, 781, -1, 781, 487, 781, -1,
2141 781, 488, 781, -1, 781, 489, 781, -1, 781, 19,
2142 781, -1, 781, 20, 781, -1, 781, 21, 781, -1,
2143 781, 816, 781, -1, 816, 781, -1, 781, 816, -1,
2144 781, 36, 781, -1, 781, 287, 781, -1, 267, 781,
2145 -1, 484, 781, -1, 781, 172, 781, -1, 781, 231,
2146 781, -1, 781, 231, 781, 141, 781, -1, 781, 484,
2147 231, 781, -1, 781, 484, 231, 781, 141, 781, -1,
2148 781, 188, 781, -1, 781, 188, 781, 141, 781, -1,
2149 781, 484, 188, 781, -1, 781, 484, 188, 781, 141,
2150 781, -1, 781, 380, 416, 781, -1, 781, 380, 416,
2151 781, 141, 781, -1, 781, 484, 380, 416, 781, -1,
2152 781, 484, 380, 416, 781, 141, 781, -1, 781, 216,
2153 272, -1, 781, 217, -1, 781, 216, 267, 272, -1,
2154 781, 267, 272, -1, 781, 270, -1, 781, 17, 781,
2155 -1, 781, 18, 781, -1, 805, 293, 805, -1, 781,
2156 216, 423, -1, 781, 216, 267, 423, -1, 781, 216,
2157 155, -1, 781, 216, 267, 155, -1, 781, 216, 434,
2158 -1, 781, 216, 267, 434, -1, 781, 216, 128, 167,
2159 781, -1, 781, 216, 267, 128, 167, 781, -1, 781,
2160 216, 277, 500, 827, 501, -1, 781, 216, 267, 277,
2161 500, 827, 501, -1, 781, 53, 849, 782, 36, 781,
2162 -1, 781, 484, 53, 849, 782, 36, 781, -1, 781,
2163 53, 402, 782, 36, 781, -1, 781, 484, 53, 402,
2164 782, 36, 781, -1, 781, 193, 837, -1, 781, 484,
2165 193, 837, -1, 781, 818, 813, 653, -1, 781, 818,
2166 813, 500, 781, 501, -1, 113, -1, 81, 500, 781,
2167 501, -1, 493, 855, 859, -1, 528, 502, 493, 855,
2168 859, -1, 783, -1, 782, 11, 751, -1, 491, 782,
2169 -1, 492, 782, -1, 782, 491, 782, -1, 782, 492,
2170 782, -1, 782, 493, 782, -1, 782, 494, 782, -1,
2171 782, 15, 782, -1, 782, 495, 782, -1, 782, 496,
2172 782, -1, 782, 16, 782, -1, 782, 487, 782, -1,
2173 782, 488, 782, -1, 782, 489, 782, -1, 782, 19,
2174 782, -1, 782, 20, 782, -1, 782, 21, 782, -1,
2175 782, 816, 782, -1, 816, 782, -1, 782, 816, -1,
2176 782, 216, 128, 167, 782, -1, 782, 216, 267, 128,
2177 167, 782, -1, 782, 216, 277, 500, 827, 501, -1,
2178 782, 216, 267, 277, 500, 827, 501, -1, 784, -1,
2179 805, -1, 785, 848, -1, 843, -1, 866, -1, 505,
2180 9, -1, 506, 534, -1, 498, 824, 499, -1, 790,
2181 -1, 39, 653, -1, 39, 498, 824, 499, -1, 838,
2182 -1, 653, -1, 653, 531, -1, 148, 653, -1, 706,
2183 500, 823, 501, -1, 507, -1, 10, -1, 500, 781,
2184 501, -1, 508, 808, 509, -1, 241, 508, 812, 509,
2185 -1, 787, -1, 865, 500, 501, -1, 865, 500, 825,
2186 675, 674, 501, -1, 865, 500, 450, 826, 675, 674,
2187 501, -1, 865, 500, 825, 504, 450, 826, 675, 674,
2188 501, -1, 865, 500, 30, 825, 675, 674, 501, -1,
2189 865, 500, 128, 825, 675, 674, 501, -1, 786, 791,
2190 792, 793, 797, -1, 789, -1, 786, -1, 789, -1,
2191 79, 162, 500, 781, 501, -1, 66, 500, 781, 40,
2192 751, 501, -1, 426, 500, 781, 40, 751, 501, -1,
2193 154, 500, 828, 501, -1, 294, 500, 830, 501, -1,
2194 311, 500, 832, 501, -1, 400, 500, 833, 501, -1,
2195 420, 500, 781, 40, 751, 501, -1, 422, 500, 58,
2196 836, 501, -1, 422, 500, 227, 836, 501, -1, 422,
2197 500, 417, 836, 501, -1, 422, 500, 836, 501, -1,
2198 273, 500, 781, 504, 781, 501, -1, 77, 500, 823,
2199 501, -1, 498, 781, 162, 528, 193, 781, 499, -1,
2200 498, 781, 162, 528, 193, 783, 186, 781, 499, -1,
2201 463, 176, 500, 676, 501, -1, -1, 158, 500, 459,
2202 781, 501, -1, 158, 500, 781, 501, -1, -1, 151,
2203 -1, -1, 461, 795, -1, -1, 796, -1, 795, 504,
2204 796, -1, 528, 40, 798, -1, 292, 798, -1, 292,
2205 528, -1, -1, 500, 799, 800, 675, 801, 501, -1,
2206 528, -1, -1, 301, 59, 822, -1, -1, 328, 802,
2207 -1, 357, 802, -1, -1, 803, -1, 53, 803, 36,
2208 803, -1, 429, 314, -1, 429, 161, -1, 102, 356,
2209 -1, 781, 314, -1, 781, 161, -1, 356, 500, 823,
2210 501, -1, 356, 500, 501, -1, 804, -1, 500, 822,
2211 504, 781, 501, -1, 529, 510, 781, -1, 806, -1,
2212 807, 504, 806, -1, 807, -1, 807, 504, -1, 781,
2213 510, 781, -1, 809, -1, 810, 504, 809, -1, 810,
2214 -1, 810, 504, -1, 811, -1, -1, 38, -1, 385,
2215 -1, 30, -1, 8, -1, 815, -1, 491, -1, 492,
2216 -1, 493, -1, 494, -1, 15, -1, 495, -1, 496,
2217 -1, 16, -1, 487, -1, 488, -1, 489, -1, 19,
2218 -1, 20, -1, 21, -1, 8, -1, 284, 500, 819,
2219 501, -1, 814, -1, 284, 500, 819, 501, -1, 814,
2220 -1, 284, 500, 819, 501, -1, 231, -1, 484, 231,
2221 -1, 172, -1, 484, 172, -1, 188, -1, 484, 188,
2222 -1, 814, -1, 528, 502, 819, -1, 783, -1, 820,
2223 504, 783, -1, 820, -1, 820, 504, -1, 781, -1,
2224 822, 504, 781, -1, 822, -1, 822, 504, -1, 823,
2225 -1, -1, 826, -1, 825, 504, 826, -1, 781, -1,
2226 874, 13, 781, -1, 874, 14, 781, -1, 751, -1,
2227 827, 504, 751, -1, 829, 167, 781, -1, -1, 3,
2228 -1, 772, -1, 773, -1, 774, -1, 775, -1, 776,
2229 -1, 777, -1, 778, -1, 779, -1, 530, -1, 781,
2230 831, 834, 835, -1, 781, 831, 834, -1, 308, 781,
2231 -1, 782, 193, 782, -1, -1, 781, 834, 835, -1,
2232 781, 835, 834, -1, 781, 834, -1, 781, 835, -1,
2233 822, -1, -1, 167, 781, -1, 162, 781, -1, 781,
2234 167, 823, -1, 167, 823, -1, 823, -1, 653, -1,
2235 500, 823, 501, -1, 65, 842, 839, 841, 139, -1,
2236 840, -1, 839, 840, -1, 458, 781, 413, 781, -1,
2237 135, 781, -1, -1, 781, -1, -1, 528, -1, 528,
2238 531, -1, 498, 781, 499, -1, 498, 844, 510, 844,
2239 499, -1, 781, -1, -1, -1, 845, 532, -1, -1,
2240 500, 501, -1, 500, 825, 501, -1, 502, 533, 846,
2241 -1, 498, 781, 499, -1, 498, 844, 510, 844, 499,
2242 -1, -1, 848, 847, -1, 45, -1, -1, 852, -1,
2243 -1, 853, -1, 851, 504, 853, -1, 851, -1, 851,
2244 504, -1, 781, 40, 875, -1, 781, 3, -1, 781,
2245 -1, 144, 500, 862, 501, -1, 144, 528, -1, 854,
2246 -1, -1, 781, 40, 528, -1, 856, -1, 857, 504,
2247 856, -1, 857, -1, 857, 504, -1, 343, 500, 858,
2248 501, -1, 343, 856, -1, -1, 527, -1, 860, 504,
2249 527, -1, 864, -1, 861, 504, 864, -1, 861, -1,
2250 861, 504, -1, 862, -1, 500, 862, 501, -1, 529,
2251 -1, 869, -1, 528, 531, -1, 867, -1, 4, -1,
2252 530, 845, -1, 6, -1, 7, -1, 865, 530, -1,
2253 865, 500, 825, 675, 674, 501, 530, -1, 754, 530,
2254 -1, 770, 500, 781, 501, 780, -1, 770, 867, 780,
2255 -1, 770, 530, 780, -1, 423, -1, 155, -1, 272,
2256 -1, 9, -1, 3, -1, 941, -1, 946, -1, 3,
2257 -1, 941, -1, 943, -1, 3, -1, 941, -1, 944,
2258 -1, 528, -1, 528, 872, -1, 502, 533, -1, 872,
2259 502, 533, -1, 500, 862, 501, -1, -1, 868, -1,
2260 534, -1, 5, -1, 316, 864, 877, 40, 878, -1,
2261 500, 827, 501, -1, -1, 652, -1, 537, -1, 634,
2262 -1, 635, -1, 918, -1, 98, 361, 527, 880, -1,
2263 98, 361, 186, 267, 148, 527, 880, -1, 98, 287,
2264 343, 361, 527, 880, -1, 880, 881, -1, -1, 576,
2265 -1, 882, -1, 562, -1, 936, -1, 98, 888, 197,
2266 885, 886, 282, 527, 884, 500, 556, 501, 887, 744,
2267 -1, 98, 888, 197, 885, 186, 267, 148, 605, 282,
2268 527, 884, 500, 556, 501, 887, 744, -1, 528, -1,
2269 442, 883, -1, -1, 87, -1, -1, 605, -1, -1,
2270 462, 591, -1, -1, 433, -1, -1, 32, 405, 738,
2271 375, 361, 864, -1, 32, 405, 186, 148, 738, 375,
2272 361, 864, -1, 32, 370, 527, 375, 361, 864, -1,
2273 32, 370, 186, 148, 527, 375, 361, 864, -1, 32,
2274 454, 527, 375, 361, 864, -1, 32, 454, 186, 148,
2275 527, 375, 361, 864, -1, 163, 73, 891, -1, 73,
2276 891, -1, 528, -1, -1, 150, 106, 530, 642, -1,
2277 150, 106, 528, 416, 530, 642, -1, 192, 106, 530,
2278 -1, 149, 897, -1, 149, 901, 895, 897, -1, 149,
2279 452, 897, -1, 149, 500, 900, 501, 897, -1, 452,
2280 -1, -1, 902, -1, 569, -1, -1, 889, -1, 566,
2281 -1, 515, -1, 935, -1, 890, -1, 635, -1, 938,
2282 -1, 631, -1, 879, -1, 562, -1, 576, -1, 558,
2283 -1, 526, -1, 918, -1, 624, -1, 564, -1, 882,
2284 -1, 537, -1, 911, -1, 561, -1, 876, -1, 535,
2285 -1, 652, -1, 573, -1, 634, -1, 913, -1, 927,
2286 -1, 905, -1, 930, -1, 936, -1, 3, -1, 941,
2287 -1, 945, -1, 898, -1, 530, -1, 903, -1, 900,
2288 504, 903, -1, 35, -1, 34, -1, 423, -1, 155,
2289 -1, 282, -1, 899, -1, 904, 896, -1, 898, -1,
2290 901, -1, 375, 906, -1, 375, 235, 906, -1, 375,
2291 374, 906, -1, 375, 173, 906, -1, 907, -1, 933,
2292 167, 102, -1, 414, 483, 909, -1, 361, 530, -1,
2293 933, 416, 910, -1, 933, 489, 910, -1, 933, 416,
2294 113, -1, 933, 489, 113, -1, 902, -1, 569, -1,
2295 530, -1, 3, -1, 770, 530, 780, -1, 770, 500,
2296 867, 501, 530, -1, 569, -1, 113, -1, 235, -1,
2297 908, -1, 910, 504, 908, -1, 234, 912, -1, 208,
2298 912, -1, 163, 208, 912, -1, 530, -1, 528, -1,
2299 443, 915, 917, 895, -1, 443, 915, 917, 895, 527,
2300 873, -1, 443, 915, 917, 895, 922, -1, 443, 500,
2301 916, 501, -1, 443, 500, 916, 501, 527, 873, -1,
2302 901, -1, 452, -1, 166, -1, 168, -1, 3, -1,
2303 168, -1, -1, 914, -1, 916, 504, 914, -1, 166,
2304 -1, -1, 542, 118, 167, 919, 921, 920, 548, -1,
2305 424, 669, 919, -1, 738, -1, 738, 528, -1, 738,
2306 40, 528, -1, 459, 781, -1, -1, 442, 720, -1,
2307 -1, 901, 895, -1, 901, 895, 527, 873, -1, 47,
2308 925, 530, 926, 642, -1, 124, 925, 3, -1, 124,
2309 106, 186, 148, 3, -1, 106, -1, -1, 40, 528,
2310 -1, -1, 345, 929, -1, 933, -1, 30, -1, 928,
2311 -1, 414, 483, -1, 418, 218, 230, -1, 931, 652,
2312 -1, 401, 652, -1, 401, 934, -1, 931, 934, -1,
2313 931, 414, 483, -1, 931, 418, 218, 230, -1, 931,
2314 30, 932, -1, 931, -1, 379, -1, 123, -1, 406,
2315 -1, -1, 528, -1, 933, 502, 528, -1, 528, -1,
2316 934, 502, 528, -1, 61, 786, -1, 98, 622, 454,
2317 527, 611, 887, 40, 652, 937, -1, 98, 622, 454,
2318 186, 267, 148, 527, 611, 887, 40, 652, 937, -1,
2319 98, 287, 343, 622, 454, 527, 611, 887, 40, 652,
2320 937, -1, 98, 622, 333, 454, 527, 500, 615, 501,
2321 887, 40, 652, 937, -1, 98, 287, 343, 622, 333,
2322 454, 527, 500, 615, 501, 887, 40, 652, 937, -1,
2323 462, 72, 285, -1, 462, 64, 72, 285, -1, 462,
2324 235, 72, 285, -1, -1, 98, 622, 405, 940, 40,
2325 652, 939, -1, 98, 622, 405, 186, 267, 148, 940,
2326 40, 652, 939, -1, 98, 287, 343, 622, 405, 940,
2327 40, 652, 939, -1, 462, 105, -1, 462, 265, 105,
2328 -1, -1, 527, 611, 598, 590, -1, 22, -1, 23,
2329 -1, 24, -1, 25, -1, 26, -1, 27, -1, 28,
2330 -1, 29, -1, 31, -1, 32, -1, 33, -1, 43,
2331 -1, 44, -1, 46, -1, 47, -1, 48, -1, 50,
2332 -1, 51, -1, 52, -1, 59, -1, 60, -1, 61,
2333 -1, 62, -1, 63, -1, 64, -1, 67, -1, 68,
2334 -1, 71, -1, 73, -1, 74, -1, 75, -1, 76,
2335 -1, 82, -1, 83, -1, 84, -1, 85, -1, 86,
2336 -1, 88, -1, 89, -1, 90, -1, 92, -1, 93,
2337 -1, 94, -1, 95, -1, 96, -1, 97, -1, 100,
2338 -1, 101, -1, 102, -1, 103, -1, 104, -1, 105,
2339 -1, 106, -1, 107, -1, 108, -1, 109, -1, 112,
2340 -1, 114, -1, 116, -1, 117, -1, 118, -1, 119,
2341 -1, 120, -1, 121, -1, 123, -1, 124, -1, 125,
2342 -1, 126, -1, 127, -1, 130, -1, 131, -1, 132,
2343 -1, 133, -1, 134, -1, 136, -1, 137, -1, 138,
2344 -1, 140, -1, 141, -1, 142, -1, 144, -1, 145,
2345 -1, 146, -1, 147, -1, 149, -1, 150, -1, 151,
2346 -1, 152, -1, 153, -1, 156, -1, 158, -1, 159,
2347 -1, 161, -1, 163, -1, 165, -1, 169, -1, 170,
2348 -1, 173, -1, 175, -1, 179, -1, 181, -1, 182,
2349 -1, 183, -1, 184, -1, 185, -1, 186, -1, 187,
2350 -1, 189, -1, 190, -1, 191, -1, 192, -1, 194,
2351 -1, 195, -1, 196, -1, 197, -1, 198, -1, 199,
2352 -1, 200, -1, 202, -1, 205, -1, 206, -1, 207,
2353 -1, 208, -1, 209, -1, 215, -1, 218, -1, 220,
2354 -1, 221, -1, 222, -1, 223, -1, 224, -1, 225,
2355 -1, 228, -1, 230, -1, 233, -1, 234, -1, 235,
2356 -1, 236, -1, 237, -1, 238, -1, 239, -1, 240,
2357 -1, 242, -1, 243, -1, 244, -1, 245, -1, 246,
2358 -1, 247, -1, 248, -1, 249, -1, 250, -1, 251,
2359 -1, 252, -1, 253, -1, 254, -1, 255, -1, 256,
2360 -1, 257, -1, 258, -1, 259, -1, 263, -1, 264,
2361 -1, 265, -1, 268, -1, 269, -1, 271, -1, 274,
2362 -1, 276, -1, 277, -1, 278, -1, 280, -1, 281,
2363 -1, 284, -1, 285, -1, 286, -1, 289, -1, 292,
2364 -1, 295, -1, 296, -1, 297, -1, 298, -1, 299,
2365 -1, 300, -1, 301, -1, 302, -1, 303, -1, 304,
2366 -1, 309, -1, 310, -1, 313, -1, 314, -1, 316,
2367 -1, 317, -1, 318, -1, 320, -1, 321, -1, 322,
2368 -1, 323, -1, 324, -1, 325, -1, 327, -1, 328,
2369 -1, 329, -1, 331, -1, 332, -1, 333, -1, 334,
2370 -1, 336, -1, 337, -1, 338, -1, 339, -1, 340,
2371 -1, 341, -1, 342, -1, 343, -1, 344, -1, 345,
2372 -1, 346, -1, 347, -1, 348, -1, 350, -1, 351,
2373 -1, 353, -1, 354, -1, 355, -1, 357, -1, 358,
2374 -1, 359, -1, 360, -1, 361, -1, 362, -1, 363,
2375 -1, 364, -1, 365, -1, 366, -1, 367, -1, 370,
2376 -1, 371, -1, 372, -1, 373, -1, 374, -1, 375,
2377 -1, 377, -1, 378, -1, 379, -1, 381, -1, 382,
2378 -1, 384, -1, 386, -1, 387, -1, 388, -1, 389,
2379 -1, 390, -1, 391, -1, 392, -1, 393, -1, 394,
2380 -1, 395, -1, 396, -1, 397, -1, 399, -1, 401,
2381 -1, 403, -1, 404, -1, 406, -1, 408, -1, 409,
2382 -1, 410, -1, 411, -1, 412, -1, 418, -1, 419,
2383 -1, 421, -1, 424, -1, 425, -1, 427, -1, 428,
2384 -1, 429, -1, 430, -1, 431, -1, 434, -1, 435,
2385 -1, 436, -1, 438, -1, 439, -1, 440, -1, 441,
2386 -1, 443, -1, 444, -1, 445, -1, 446, -1, 447,
2387 -1, 451, -1, 453, -1, 454, -1, 455, -1, 456,
2388 -1, 457, -1, 460, -1, 463, -1, 464, -1, 465,
2389 -1, 466, -1, 467, -1, 468, -1, 480, -1, 481,
2390 -1, 482, -1, 483, -1, 53, -1, 54, -1, 56,
2391 -1, 57, -1, 69, -1, 70, -1, 77, -1, 81,
2392 -1, 110, -1, 111, -1, 148, -1, 154, -1, 160,
2393 -1, 171, -1, 177, -1, 178, -1, 204, -1, 210,
2394 -1, 211, -1, 213, -1, 241, -1, 260, -1, 262,
2395 -1, 266, -1, 273, -1, 275, -1, 290, -1, 294,
2396 -1, 311, -1, 315, -1, 330, -1, 356, -1, 376,
2397 -1, 383, -1, 398, -1, 400, -1, 414, -1, 415,
2398 -1, 420, -1, 422, -1, 426, -1, 448, -1, 449,
2399 -1, 469, -1, 470, -1, 471, -1, 472, -1, 473,
2400 -1, 474, -1, 475, -1, 476, -1, 477, -1, 478,
2401 -1, 479, -1, 42, -1, 49, -1, 55, -1, 79,
2402 -1, 87, -1, 99, -1, 166, -1, 168, -1, 171,
2403 -1, 172, -1, 188, -1, 203, -1, 216, -1, 217,
2404 -1, 219, -1, 229, -1, 231, -1, 241, -1, 261,
2405 -1, 270, -1, 291, -1, 293, -1, 312, -1, 352,
2406 -1, 380, -1, 398, -1, 407, -1, 452, -1, 37,
2407 -1, 42, -1, 49, -1, 55, -1, 79, -1, 81,
2408 -1, 87, -1, 99, -1, 166, -1, 168, -1, 172,
2409 -1, 188, -1, 203, -1, 216, -1, 217, -1, 219,
2410 -1, 229, -1, 231, -1, 261, -1, 270, -1, 291,
2411 -1, 293, -1, 312, -1, 352, -1, 369, -1, 380,
2412 -1, 407, -1, 426, -1, 452, -1, 37, -1, 42,
2413 -1, 49, -1, 53, -1, 54, -1, 55, -1, 56,
2414 -1, 57, -1, 70, -1, 69, -1, 77, -1, 79,
2415 -1, 81, -1, 87, -1, 99, -1, 110, -1, 111,
2416 -1, 148, -1, 154, -1, 160, -1, 166, -1, 168,
2417 -1, 171, -1, 172, -1, 177, -1, 178, -1, 188,
2418 -1, 203, -1, 204, -1, 211, -1, 213, -1, 210,
2419 -1, 216, -1, 217, -1, 219, -1, 229, -1, 231,
2420 -1, 241, -1, 260, -1, 261, -1, 262, -1, 266,
2421 -1, 270, -1, 273, -1, 275, -1, 291, -1, 290,
2422 -1, 293, -1, 294, -1, 311, -1, 312, -1, 315,
2423 -1, 330, -1, 352, -1, 356, -1, 369, -1, 376,
2424 -1, 380, -1, 383, -1, 398, -1, 400, -1, 407,
2425 -1, 414, -1, 415, -1, 420, -1, 422, -1, 426,
2426 -1, 448, -1, 449, -1, 452, -1, 469, -1, 470,
2427 -1, 471, -1, 472, -1, 473, -1, 474, -1, 475,
2428 -1, 476, -1, 477, -1, 478, -1, 479, -1, 37,
2429 -1, 42, -1, 49, -1, 55, -1, 79, -1, 81,
2430 -1, 87, -1, 99, -1, 166, -1, 168, -1, 171,
2431 -1, 172, -1, 188, -1, 203, -1, 216, -1, 217,
2432 -1, 219, -1, 229, -1, 231, -1, 241, -1, 261,
2433 -1, 270, -1, 291, -1, 293, -1, 312, -1, 352,
2434 -1, 369, -1, 380, -1, 398, -1, 407, -1, 426,
2435 -1, 452, -1, 30, -1, 34, -1, 35, -1, 36,
2436 -1, 38, -1, 39, -1, 40, -1, 41, -1, 45,
2437 -1, 58, -1, 65, -1, 66, -1, 72, -1, 78,
2438 -1, 80, -1, 91, -1, 98, -1, 113, -1, 115,
2439 -1, 122, -1, 128, -1, 129, -1, 135, -1, 139,
2440 -1, 143, -1, 155, -1, 157, -1, 162, -1, 164,
2441 -1, 167, -1, 174, -1, 176, -1, 180, -1, 193,
2442 -1, 201, -1, 212, -1, 214, -1, 226, -1, 227,
2443 -1, 232, -1, 267, -1, 272, -1, 279, -1, 282,
2444 -1, 283, -1, 287, -1, 288, -1, 305, -1, 306,
2445 -1, 307, -1, 308, -1, 319, -1, 326, -1, 335,
2446 -1, 349, -1, 368, -1, 385, -1, 402, -1, 405,
2447 -1, 413, -1, 416, -1, 417, -1, 423, -1, 432,
2448 -1, 433, -1, 437, -1, 442, -1, 450, -1, 458,
2449 -1, 459, -1, 461, -1, 462, -1
2450};
2451
2452/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
2453static const yytype_uint16 yyrline[] =
2454{
2455 0, 489, 489, 505, 517, 526, 527, 528, 529, 530,
2456 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
2457 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
2458 551, 552, 553, 554, 555, 556, 557, 558, 559, 560,
2459 561, 562, 564, 9, 18, 27, 36, 45, 54, 63,
2460 72, 85, 87, 93, 94, 99, 103, 107, 118, 126,
2461 130, 139, 148, 157, 166, 175, 184, 192, 200, 209,
2462 218, 227, 236, 253, 262, 271, 280, 290, 303, 318,
2463 327, 335, 350, 358, 368, 378, 385, 392, 400, 407,
2464 418, 419, 424, 428, 433, 438, 446, 447, 452, 456,
2465 457, 458, 7, 13, 19, 25, 9, 13, 44, 45,
2466 46, 50, 51, 55, 59, 60, 64, 70, 75, 76,
2467 77, 78, 6, 15, 25, 35, 45, 55, 65, 75,
2468 85, 95, 106, 117, 127, 140, 141, 9, 23, 29,
2469 36, 42, 49, 59, 63, 71, 72, 73, 77, 86,
2470 95, 102, 103, 108, 120, 125, 150, 155, 160, 166,
2471 176, 186, 192, 203, 214, 229, 230, 236, 237, 242,
2472 243, 249, 250, 254, 255, 260, 262, 268, 269, 273,
2473 274, 277, 278, 283, 7, 16, 25, 46, 47, 50,
2474 54, 7, 14, 22, 9, 19, 29, 42, 43, 7,
2475 14, 31, 51, 52, 9, 17, 29, 30, 34, 35,
2476 36, 41, 42, 43, 48, 52, 56, 60, 64, 68,
2477 72, 76, 80, 84, 88, 92, 97, 101, 105, 112,
2478 113, 117, 118, 119, 2, 9, 15, 21, 28, 35,
2479 45, 46, 47, 2, 7, 21, 36, 56, 57, 84,
2480 85, 86, 87, 88, 89, 93, 94, 99, 104, 105,
2481 106, 107, 108, 113, 120, 121, 122, 139, 146, 153,
2482 163, 173, 185, 193, 202, 220, 221, 225, 226, 230,
2483 239, 262, 276, 283, 288, 290, 292, 294, 297, 300,
2484 301, 302, 303, 308, 312, 313, 318, 325, 330, 331,
2485 332, 333, 334, 335, 336, 337, 343, 344, 348, 353,
2486 360, 367, 374, 386, 387, 388, 389, 393, 398, 399,
2487 400, 405, 410, 411, 412, 413, 414, 415, 420, 440,
2488 469, 470, 474, 478, 479, 480, 484, 488, 496, 497,
2489 502, 503, 504, 508, 516, 517, 522, 523, 527, 532,
2490 536, 540, 545, 553, 554, 558, 559, 563, 564, 570,
2491 581, 594, 608, 622, 636, 650, 673, 677, 684, 688,
2492 696, 701, 708, 718, 719, 720, 721, 722, 729, 736,
2493 737, 742, 743, 9, 19, 29, 39, 49, 59, 69,
2494 79, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2495 102, 103, 104, 105, 106, 107, 108, 109, 114, 115,
2496 116, 117, 118, 119, 124, 125, 130, 131, 132, 137,
2497 138, 139, 142, 143, 8, 20, 33, 46, 58, 70,
2498 86, 87, 91, 95, 7, 1, 30, 53, 54, 59,
2499 63, 68, 72, 80, 81, 85, 86, 91, 92, 96,
2500 97, 102, 103, 104, 105, 106, 111, 119, 123, 128,
2501 129, 134, 138, 143, 147, 151, 155, 159, 163, 167,
2502 171, 175, 179, 183, 187, 191, 195, 199, 203, 211,
2503 217, 218, 219, 224, 228, 47, 48, 52, 53, 68,
2504 69, 76, 84, 92, 100, 108, 116, 127, 128, 155,
2505 160, 168, 184, 201, 218, 235, 236, 255, 259, 263,
2506 267, 271, 280, 290, 299, 308, 318, 328, 339, 353,
2507 370, 370, 374, 374, 378, 378, 382, 388, 395, 399,
2508 400, 404, 405, 419, 426, 433, 443, 444, 447, 459,
2509 470, 478, 483, 488, 493, 498, 506, 514, 519, 524,
2510 531, 532, 536, 537, 538, 542, 549, 550, 554, 555,
2511 559, 560, 561, 565, 566, 570, 571, 587, 588, 591,
2512 600, 611, 612, 613, 616, 617, 618, 622, 623, 624,
2513 625, 629, 630, 634, 636, 652, 654, 659, 662, 670,
2514 674, 678, 682, 686, 690, 697, 702, 709, 710, 714,
2515 719, 723, 727, 735, 742, 743, 748, 749, 753, 754,
2516 759, 761, 763, 768, 788, 789, 791, 796, 797, 801,
2517 802, 805, 806, 831, 832, 837, 841, 842, 846, 847,
2518 851, 852, 853, 854, 855, 859, 872, 879, 886, 893,
2519 894, 898, 899, 903, 904, 908, 909, 913, 914, 918,
2520 919, 923, 934, 935, 936, 937, 941, 942, 947, 948,
2521 949, 958, 964, 973, 974, 987, 988, 992, 993, 997,
2522 998, 1004, 1010, 1018, 1027, 1035, 1044, 1053, 1057, 1062,
2523 1072, 1085, 1086, 1089, 1090, 1091, 1094, 1102, 1112, 1113,
2524 1116, 1124, 1133, 1137, 1144, 1145, 1149, 1158, 1162, 1187,
2525 1191, 1204, 1218, 1233, 1245, 1258, 1272, 1286, 1299, 1314,
2526 1333, 1339, 1344, 1350, 1357, 1358, 1366, 1370, 1374, 1380,
2527 1387, 1392, 1393, 1394, 1395, 1396, 1397, 1401, 1402, 1414,
2528 1415, 1420, 1427, 1434, 1441, 1473, 1484, 1497, 1502, 1503,
2529 1506, 1507, 1510, 1511, 1516, 1517, 1522, 1526, 1532, 1553,
2530 1561, 1574, 1577, 1581, 1581, 1584, 1585, 1587, 1592, 1599,
2531 1604, 1610, 1615, 1621, 1627, 1633, 1642, 1644, 1647, 1651,
2532 1652, 1653, 1654, 1655, 1656, 1661, 1681, 1682, 1683, 1684,
2533 1695, 1709, 1710, 1716, 1721, 1726, 1731, 1736, 1741, 1746,
2534 1751, 1757, 1763, 1769, 1776, 1798, 1807, 1811, 1819, 1823,
2535 1831, 1843, 1864, 1868, 1874, 1878, 1891, 1899, 1909, 1911,
2536 1913, 1915, 1917, 1919, 1924, 1925, 1932, 1941, 1949, 1958,
2537 1969, 1977, 1978, 1979, 1983, 1983, 1986, 1986, 1989, 1989,
2538 1992, 1992, 1995, 1995, 1998, 1998, 2001, 2001, 2004, 2004,
2539 2007, 2009, 2011, 2013, 2015, 2017, 2019, 2021, 2023, 2028,
2540 2033, 2039, 2046, 2051, 2057, 2063, 2094, 2096, 2098, 2106,
2541 2121, 2123, 2125, 2127, 2129, 2131, 2133, 2135, 2137, 2139,
2542 2141, 2143, 2145, 2147, 2149, 2151, 2154, 2156, 2158, 2161,
2543 2163, 2165, 2167, 2169, 2174, 2179, 2186, 2191, 2198, 2203,
2544 2210, 2215, 2223, 2231, 2239, 2247, 2265, 2273, 2281, 2289,
2545 2297, 2305, 2313, 2317, 2333, 2341, 2349, 2357, 2365, 2373,
2546 2381, 2385, 2389, 2393, 2397, 2405, 2413, 2421, 2429, 2449,
2547 2471, 2482, 2489, 2503, 2511, 2519, 2539, 2541, 2543, 2545,
2548 2547, 2549, 2551, 2553, 2555, 2557, 2559, 2561, 2563, 2565,
2549 2567, 2569, 2571, 2573, 2575, 2577, 2579, 2581, 2585, 2589,
2550 2593, 2607, 2608, 2612, 2626, 2627, 2628, 2635, 2639, 2643,
2551 2646, 2657, 2662, 2664, 2675, 2699, 2710, 2721, 2725, 2732,
2552 2736, 2741, 2758, 2764, 2768, 2775, 2783, 2791, 2802, 2822,
2553 2858, 2869, 2870, 2877, 2883, 2885, 2887, 2891, 2900, 2905,
2554 2912, 2927, 2934, 2938, 2942, 2946, 2950, 2960, 2969, 2991,
2555 2992, 2996, 2997, 2998, 3002, 3003, 3010, 3011, 3015, 3016,
2556 3021, 3029, 3031, 3045, 3048, 3075, 3076, 3079, 3080, 3091,
2557 3097, 3104, 3113, 3130, 3175, 3183, 3191, 3199, 3207, 3228,
2558 3229, 3232, 3233, 3237, 3247, 3248, 3252, 3253, 3257, 3264,
2559 3265, 3270, 3271, 3276, 3277, 3280, 3281, 3282, 3285, 3286,
2560 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298,
2561 3299, 3300, 3301, 3302, 3305, 3307, 3312, 3314, 3319, 3321,
2562 3323, 3325, 3327, 3329, 3331, 3333, 3347, 3349, 3354, 3358,
2563 3365, 3370, 3376, 3380, 3387, 3392, 3399, 3404, 3412, 3416,
2564 3422, 3426, 3435, 3446, 3447, 3451, 3455, 3462, 3463, 3464,
2565 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3481, 3485, 3492,
2566 3499, 3500, 3516, 3520, 3525, 3529, 3544, 3549, 3553, 3556,
2567 3559, 3560, 3561, 3564, 3571, 3581, 3595, 3596, 3600, 3611,
2568 3612, 3615, 3616, 3619, 3623, 3630, 3638, 3649, 3650, 3655,
2569 3656, 3660, 3661, 3662, 3666, 3675, 3683, 3699, 3700, 3705,
2570 3706, 3716, 3717, 3721, 3722, 3726, 3727, 3730, 3746, 3754,
2571 3764, 3765, 3768, 3769, 3772, 3776, 3777, 3781, 3782, 3785,
2572 3786, 3787, 3797, 3798, 3802, 3804, 3810, 3811, 3815, 3816,
2573 3819, 3830, 3833, 3844, 3848, 3852, 3864, 3868, 3877, 3884,
2574 3922, 3926, 3930, 3934, 3938, 3942, 3946, 3952, 3969, 3970,
2575 3971, 3974, 3975, 3976, 3979, 3980, 3981, 3984, 3985, 3988,
2576 3990, 3995, 3996, 3999, 4003, 4004, 7, 18, 19, 23,
2577 24, 25, 26, 27, 7, 26, 50, 73, 80, 85,
2578 86, 87, 88, 8, 33, 62, 66, 67, 72, 73,
2579 78, 79, 83, 84, 89, 90, 7, 16, 25, 34,
2580 43, 52, 5, 12, 22, 23, 7, 19, 33, 9,
2581 16, 26, 33, 44, 45, 50, 51, 52, 57, 58,
2582 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2583 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2584 79, 80, 81, 82, 83, 84, 85, 86, 90, 91,
2585 92, 97, 98, 103, 107, 115, 116, 121, 122, 123,
2586 129, 134, 142, 143, 10, 16, 22, 28, 38, 39,
2587 47, 58, 70, 78, 86, 93, 103, 105, 111, 115,
2588 119, 134, 141, 142, 143, 147, 148, 7, 14, 20,
2589 28, 29, 8, 22, 36, 48, 56, 70, 71, 72,
2590 73, 74, 87, 88, 93, 94, 98, 99, 7, 18,
2591 31, 35, 42, 53, 54, 60, 61, 9, 19, 7,
2592 18, 25, 34, 35, 39, 40, 2, 7, 15, 26,
2593 27, 34, 3, 10, 17, 24, 31, 38, 45, 52,
2594 61, 61, 63, 63, 65, 66, 70, 71, 6, 8,
2595 21, 34, 47, 65, 87, 88, 89, 90, 11, 24,
2596 37, 54, 55, 56, 61, 74, 74, 74, 74, 74,
2597 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2598 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2599 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2600 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2601 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2602 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2603 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2604 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2605 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2606 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2607 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2608 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2609 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2610 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2611 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2612 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2613 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2614 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2615 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2616 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2617 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2618 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2619 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2620 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2621 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2622 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2623 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2624 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2625 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2626 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
2627 74, 74, 74, 74, 75, 75, 75, 75, 75, 75,
2628 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
2629 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
2630 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
2631 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
2632 75, 75, 75, 75, 75, 75, 75, 75, 76, 76,
2633 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
2634 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
2635 76, 76, 76, 76, 76, 76, 77, 77, 77, 77,
2636 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
2637 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
2638 77, 77, 77, 77, 77, 78, 78, 78, 78, 78,
2639 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
2640 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
2641 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
2642 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
2643 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
2644 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
2645 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
2646 78, 78, 78, 78, 78, 78, 79, 79, 79, 79,
2647 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
2648 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
2649 79, 79, 79, 79, 79, 79, 79, 79, 80, 80,
2650 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
2651 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
2652 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
2653 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
2654 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
2655 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
2656 80, 80, 80, 80, 80, 80, 80, 80, 80, 80
2657};
2658#endif
2659
2660#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
2661/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2662 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
2663static const char *const yytname[] =
2664{
2665 "$end", "error", "$undefined", "IDENT", "FCONST", "SCONST", "BCONST",
2666 "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS",
2667 "EQUALS_GREATER", "INTEGER_DIVISION", "POWER_OF", "LAMBDA_ARROW",
2668 "DOUBLE_ARROW", "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P",
2669 "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE",
2670 "ALL", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANTI",
2671 "ANY", "ARRAY", "AS", "ASC_P", "ASOF", "ASSERTION", "ASSIGNMENT",
2672 "ASYMMETRIC", "AT", "ATTACH", "ATTRIBUTE", "AUTHORIZATION", "BACKWARD",
2673 "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P",
2674 "BOTH", "BY", "CACHE", "CALL_P", "CALLED", "CASCADE", "CASCADED", "CASE",
2675 "CAST", "CATALOG_P", "CHAIN", "CHAR_P", "CHARACTER", "CHARACTERISTICS",
2676 "CHECK_P", "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", "COALESCE",
2677 "COLLATE", "COLLATION", "COLUMN", "COLUMNS", "COMMENT", "COMMENTS",
2678 "COMMIT", "COMMITTED", "COMPRESSION", "CONCURRENTLY", "CONFIGURATION",
2679 "CONFLICT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTENT_P",
2680 "CONTINUE_P", "CONVERSION_P", "COPY", "COST", "CREATE_P", "CROSS", "CSV",
2681 "CUBE", "CURRENT_P", "CURSOR", "CYCLE", "DATA_P", "DATABASE", "DAY_P",
2682 "DAYS_P", "DEALLOCATE", "DEC", "DECIMAL_P", "DECLARE", "DEFAULT",
2683 "DEFAULTS", "DEFERRABLE", "DEFERRED", "DEFINER", "DELETE_P", "DELIMITER",
2684 "DELIMITERS", "DEPENDS", "DESC_P", "DESCRIBE", "DETACH", "DICTIONARY",
2685 "DISABLE_P", "DISCARD", "DISTINCT", "DO", "DOCUMENT_P", "DOMAIN_P",
2686 "DOUBLE_P", "DROP", "EACH", "ELSE", "ENABLE_P", "ENCODING", "ENCRYPTED",
2687 "END_P", "ENUM_P", "ESCAPE", "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING",
2688 "EXCLUSIVE", "EXECUTE", "EXISTS", "EXPLAIN", "EXPORT_P", "EXPORT_STATE",
2689 "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH",
2690 "FILTER", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN",
2691 "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS",
2692 "GENERATED", "GLOB", "GLOBAL", "GRANT", "GRANTED", "GROUP_P", "GROUPING",
2693 "GROUPING_ID", "HANDLER", "HAVING", "HEADER_P", "HOLD", "HOUR_P",
2694 "HOURS_P", "IDENTITY_P", "IF_P", "IGNORE_P", "ILIKE", "IMMEDIATE",
2695 "IMMUTABLE", "IMPLICIT_P", "IMPORT_P", "IN_P", "INCLUDE_P", "INCLUDING",
2696 "INCREMENT", "INDEX", "INDEXES", "INHERIT", "INHERITS", "INITIALLY",
2697 "INLINE_P", "INNER_P", "INOUT", "INPUT_P", "INSENSITIVE", "INSERT",
2698 "INSTALL", "INSTEAD", "INT_P", "INTEGER", "INTERSECT", "INTERVAL",
2699 "INTO", "INVOKER", "IS", "ISNULL", "ISOLATION", "JOIN", "JSON", "KEY",
2700 "LABEL", "LANGUAGE", "LARGE_P", "LAST_P", "LATERAL_P", "LEADING",
2701 "LEAKPROOF", "LEFT", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LOAD", "LOCAL",
2702 "LOCATION", "LOCK_P", "LOCKED", "LOGGED", "MACRO", "MAP", "MAPPING",
2703 "MATCH", "MATERIALIZED", "MAXVALUE", "METHOD", "MICROSECOND_P",
2704 "MICROSECONDS_P", "MILLISECOND_P", "MILLISECONDS_P", "MINUTE_P",
2705 "MINUTES_P", "MINVALUE", "MODE", "MONTH_P", "MONTHS_P", "MOVE", "NAME_P",
2706 "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NEW", "NEXT", "NO", "NONE",
2707 "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF",
2708 "NULLS_P", "NUMERIC", "OBJECT_P", "OF", "OFF", "OFFSET", "OIDS", "OLD",
2709 "ON", "ONLY", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER",
2710 "ORDINALITY", "OUT_P", "OUTER_P", "OVER", "OVERLAPS", "OVERLAY",
2711 "OVERRIDING", "OWNED", "OWNER", "PARALLEL", "PARSER", "PARTIAL",
2712 "PARTITION", "PASSING", "PASSWORD", "PERCENT", "PIVOT", "PIVOT_LONGER",
2713 "PIVOT_WIDER", "PLACING", "PLANS", "POLICY", "POSITION", "POSITIONAL",
2714 "PRAGMA_P", "PRECEDING", "PRECISION", "PREPARE", "PREPARED", "PRESERVE",
2715 "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PROGRAM",
2716 "PUBLICATION", "QUALIFY", "QUOTE", "RANGE", "READ_P", "REAL", "REASSIGN",
2717 "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH",
2718 "REINDEX", "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE",
2719 "REPLICA", "RESET", "RESPECT_P", "RESTART", "RESTRICT", "RETURNING",
2720 "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROW",
2721 "ROWS", "RULE", "SAMPLE", "SAVEPOINT", "SCHEMA", "SCHEMAS", "SCROLL",
2722 "SEARCH", "SECOND_P", "SECONDS_P", "SECURITY", "SELECT", "SEMI",
2723 "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION", "SET",
2724 "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SKIP",
2725 "SMALLINT", "SNAPSHOT", "SOME", "SQL_P", "STABLE", "STANDALONE_P",
2726 "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT", "STORAGE",
2727 "STORED", "STRICT_P", "STRIP_P", "STRUCT", "SUBSCRIPTION", "SUBSTRING",
2728 "SUMMARIZE", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", "TABLES",
2729 "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TEXT_P",
2730 "THEN", "TIME", "TIMESTAMP", "TO", "TRAILING", "TRANSACTION",
2731 "TRANSFORM", "TREAT", "TRIGGER", "TRIM", "TRUE_P", "TRUNCATE", "TRUSTED",
2732 "TRY_CAST", "TYPE_P", "TYPES_P", "UNBOUNDED", "UNCOMMITTED",
2733 "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNLOGGED",
2734 "UNPIVOT", "UNTIL", "UPDATE", "USE_P", "USER", "USING", "VACUUM",
2735 "VALID", "VALIDATE", "VALIDATOR", "VALUE_P", "VALUES", "VARCHAR",
2736 "VARIADIC", "VARYING", "VERBOSE", "VERSION_P", "VIEW", "VIEWS",
2737 "VIRTUAL", "VOLATILE", "WHEN", "WHERE", "WHITESPACE_P", "WINDOW", "WITH",
2738 "WITHIN", "WITHOUT", "WORK", "WRAPPER", "WRITE_P", "XML_P",
2739 "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT", "XMLEXISTS", "XMLFOREST",
2740 "XMLNAMESPACES", "XMLPARSE", "XMLPI", "XMLROOT", "XMLSERIALIZE",
2741 "XMLTABLE", "YEAR_P", "YEARS_P", "YES_P", "ZONE", "NOT_LA", "NULLS_LA",
2742 "WITH_LA", "'<'", "'>'", "'='", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'",
2743 "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','",
2744 "'#'", "'$'", "'?'", "'{'", "'}'", "':'", "$accept", "stmtblock",
2745 "stmtmulti", "stmt", "AlterTableStmt",
2746 "alter_identity_column_option_list", "alter_column_default",
2747 "alter_identity_column_option", "alter_generic_option_list",
2748 "alter_table_cmd", "alter_using", "alter_generic_option_elem",
2749 "alter_table_cmds", "alter_generic_options", "opt_set_data",
2750 "DeallocateStmt", "qualified_name", "ColId", "ColIdOrString", "Sconst",
2751 "indirection", "indirection_el", "attr_name", "ColLabel", "RenameStmt",
2752 "opt_column", "InsertStmt", "insert_rest", "insert_target",
2753 "opt_by_name_or_position", "opt_conf_expr", "opt_with_clause",
2754 "insert_column_item", "set_clause", "opt_or_action", "opt_on_conflict",
2755 "index_elem", "returning_clause", "override_kind", "set_target_list",
2756 "opt_collate", "opt_class", "insert_column_list", "set_clause_list",
2757 "set_clause_list_opt_comma", "index_params", "set_target",
2758 "CreateTypeStmt", "opt_enum_val_list", "enum_val_list", "PragmaStmt",
2759 "CreateSeqStmt", "OptSeqOptList", "ExecuteStmt", "execute_param_clause",
2760 "AlterSeqStmt", "SeqOptList", "opt_with", "NumericOnly", "SeqOptElem",
2761 "opt_by", "SignedIconst", "TransactionStmt", "opt_transaction",
2762 "UseStmt", "CreateStmt", "ConstraintAttributeSpec", "def_arg",
2763 "OptParenthesizedSeqOptList", "generic_option_arg", "key_action",
2764 "ColConstraint", "ColConstraintElem", "GeneratedColumnType",
2765 "opt_GeneratedColumnType", "GeneratedConstraintElem",
2766 "generic_option_elem", "key_update", "key_actions", "OnCommitOption",
2767 "reloptions", "opt_no_inherit", "TableConstraint", "TableLikeOption",
2768 "reloption_list", "ExistingIndex", "ConstraintAttr", "OptWith",
2769 "definition", "TableLikeOptionList", "generic_option_name",
2770 "ConstraintAttributeElem", "columnDef", "def_list", "index_name",
2771 "TableElement", "def_elem", "opt_definition", "OptTableElementList",
2772 "columnElem", "opt_column_list", "ColQualList", "key_delete",
2773 "reloption_elem", "columnList", "columnList_opt_comma", "func_type",
2774 "ConstraintElem", "TableElementList", "key_match", "TableLikeClause",
2775 "OptTemp", "generated_when", "DropStmt", "drop_type_any_name",
2776 "drop_type_name", "any_name_list", "opt_drop_behavior",
2777 "drop_type_name_on_any_name", "type_name_list", "CreateFunctionStmt",
2778 "macro_alias", "param_list", "UpdateStmt", "CopyStmt", "copy_from",
2779 "copy_delimiter", "copy_generic_opt_arg_list", "opt_using", "opt_as",
2780 "opt_program", "copy_options", "copy_generic_opt_arg",
2781 "copy_generic_opt_elem", "opt_oids", "copy_opt_list", "opt_binary",
2782 "copy_opt_item", "copy_generic_opt_arg_list_item", "copy_file_name",
2783 "copy_generic_opt_list", "SelectStmt", "select_with_parens",
2784 "select_no_parens", "select_clause", "opt_select", "simple_select",
2785 "value_or_values", "pivot_keyword", "unpivot_keyword",
2786 "pivot_column_entry", "pivot_column_list_internal", "pivot_column_list",
2787 "with_clause", "cte_list", "common_table_expr", "into_clause",
2788 "OptTempTableName", "opt_table", "all_or_distinct", "by_name",
2789 "distinct_clause", "opt_all_clause", "opt_ignore_nulls",
2790 "opt_sort_clause", "sort_clause", "sortby_list", "sortby",
2791 "opt_asc_desc", "opt_nulls_order", "select_limit", "opt_select_limit",
2792 "limit_clause", "offset_clause", "sample_count", "sample_clause",
2793 "opt_sample_func", "tablesample_entry", "tablesample_clause",
2794 "opt_tablesample_clause", "opt_repeatable_clause", "select_limit_value",
2795 "select_offset_value", "select_fetch_first_value", "I_or_F_const",
2796 "row_or_rows", "first_or_next", "group_clause", "group_by_list",
2797 "group_by_list_opt_comma", "group_by_item", "empty_grouping_set",
2798 "rollup_clause", "cube_clause", "grouping_sets_clause",
2799 "grouping_or_grouping_id", "having_clause", "qualify_clause",
2800 "for_locking_clause", "opt_for_locking_clause", "for_locking_items",
2801 "for_locking_item", "for_locking_strength", "locked_rels_list",
2802 "opt_nowait_or_skip", "values_clause", "values_clause_opt_comma",
2803 "from_clause", "from_list", "from_list_opt_comma", "table_ref",
2804 "opt_pivot_group_by", "opt_include_nulls", "single_pivot_value",
2805 "pivot_header", "pivot_value", "pivot_value_list", "unpivot_header",
2806 "unpivot_value", "unpivot_value_list", "joined_table", "alias_clause",
2807 "opt_alias_clause", "func_alias_clause", "join_type", "join_outer",
2808 "join_qual", "relation_expr", "func_table", "rowsfrom_item",
2809 "rowsfrom_list", "opt_col_def_list", "opt_ordinality", "where_clause",
2810 "TableFuncElementList", "TableFuncElement", "opt_collate_clause",
2811 "colid_type_list", "RowOrStruct", "opt_Typename", "Typename",
2812 "opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType",
2813 "opt_type_modifiers", "Numeric", "opt_float", "Bit", "ConstBit",
2814 "BitWithLength", "BitWithoutLength", "Character", "ConstCharacter",
2815 "CharacterWithLength", "CharacterWithoutLength", "character",
2816 "opt_varying", "ConstDatetime", "ConstInterval", "opt_timezone",
2817 "year_keyword", "month_keyword", "day_keyword", "hour_keyword",
2818 "minute_keyword", "second_keyword", "millisecond_keyword",
2819 "microsecond_keyword", "opt_interval", "a_expr", "b_expr", "c_expr",
2820 "d_expr", "indirection_expr", "func_application", "func_expr",
2821 "func_expr_windowless", "func_expr_common_subexpr", "list_comprehension",
2822 "within_group_clause", "filter_clause", "export_clause", "window_clause",
2823 "window_definition_list", "window_definition", "over_clause",
2824 "window_specification", "opt_existing_window_name",
2825 "opt_partition_clause", "opt_frame_clause", "frame_extent",
2826 "frame_bound", "qualified_row", "row", "dict_arg", "dict_arguments",
2827 "dict_arguments_opt_comma", "map_arg", "map_arguments",
2828 "map_arguments_opt_comma", "opt_map_arguments_opt_comma", "sub_type",
2829 "all_Op", "MathOp", "qual_Op", "qual_all_Op", "subquery_Op",
2830 "any_operator", "c_expr_list", "c_expr_list_opt_comma", "expr_list",
2831 "expr_list_opt_comma", "opt_expr_list_opt_comma", "func_arg_list",
2832 "func_arg_expr", "type_list", "extract_list", "extract_arg",
2833 "overlay_list", "overlay_placing", "position_list", "substr_list",
2834 "substr_from", "substr_for", "trim_list", "in_expr", "case_expr",
2835 "when_clause_list", "when_clause", "case_default", "case_arg",
2836 "columnref", "opt_slice_bound", "opt_indirection", "opt_func_arguments",
2837 "extended_indirection_el", "opt_extended_indirection", "opt_asymmetric",
2838 "opt_target_list_opt_comma", "target_list", "target_list_opt_comma",
2839 "target_el", "except_list", "opt_except_list", "replace_list_el",
2840 "replace_list", "replace_list_opt_comma", "opt_replace_list",
2841 "qualified_name_list", "name_list", "name_list_opt_comma",
2842 "name_list_opt_comma_opt_bracket", "name", "func_name", "AexprConst",
2843 "Iconst", "type_function_name", "function_name_token", "type_name_token",
2844 "any_name", "attrs", "opt_name_list", "param_name", "ColLabelOrString",
2845 "PrepareStmt", "prep_type_clause", "PreparableStmt", "CreateSchemaStmt",
2846 "OptSchemaEltList", "schema_stmt", "IndexStmt", "access_method",
2847 "access_method_clause", "opt_concurrently", "opt_index_name",
2848 "opt_reloptions", "opt_unique", "AlterObjectSchemaStmt",
2849 "CheckPointStmt", "opt_col_id", "ExportStmt", "ImportStmt",
2850 "ExplainStmt", "opt_verbose", "explain_option_arg", "ExplainableStmt",
2851 "NonReservedWord", "NonReservedWord_or_Sconst", "explain_option_list",
2852 "analyze_keyword", "opt_boolean_or_string", "explain_option_elem",
2853 "explain_option_name", "VariableSetStmt", "set_rest", "generic_set",
2854 "var_value", "zone_value", "var_list", "LoadStmt", "file_name",
2855 "VacuumStmt", "vacuum_option_elem", "opt_full", "vacuum_option_list",
2856 "opt_freeze", "DeleteStmt", "relation_expr_opt_alias",
2857 "where_or_current_clause", "using_clause", "AnalyzeStmt", "AttachStmt",
2858 "DetachStmt", "opt_database", "opt_database_alias", "VariableResetStmt",
2859 "generic_reset", "reset_rest", "VariableShowStmt", "show_or_describe",
2860 "opt_tables", "var_name", "table_id", "CallStmt", "ViewStmt",
2861 "opt_check_option", "CreateAsStmt", "opt_with_data", "create_as_target",
2862 "unreserved_keyword", "col_name_keyword", "func_name_keyword",
2863 "type_name_keyword", "other_keyword", "type_func_name_keyword",
2864 "reserved_keyword", 0
2865};
2866#endif
2867
2868# ifdef YYPRINT
2869/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
2870 token YYLEX-NUM. */
2871static const yytype_uint16 yytoknum[] =
2872{
2873 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2874 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2875 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2876 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2877 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2878 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2879 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2880 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
2881 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2882 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2883 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2884 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2885 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
2886 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
2887 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
2888 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
2889 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
2890 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
2891 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
2892 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
2893 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
2894 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
2895 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
2896 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
2897 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
2898 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2899 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
2900 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
2901 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
2902 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
2903 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
2904 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
2905 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
2906 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
2907 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
2908 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
2909 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
2910 625, 626, 627, 628, 629, 630, 631, 632, 633, 634,
2911 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
2912 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
2913 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
2914 665, 666, 667, 668, 669, 670, 671, 672, 673, 674,
2915 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
2916 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
2917 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
2918 705, 706, 707, 708, 709, 710, 711, 712, 713, 714,
2919 715, 716, 717, 718, 719, 720, 721, 722, 723, 724,
2920 725, 726, 727, 728, 729, 730, 731, 732, 733, 734,
2921 735, 736, 737, 738, 739, 740, 741, 60, 62, 61,
2922 742, 43, 45, 42, 47, 37, 94, 743, 91, 93,
2923 40, 41, 46, 59, 44, 35, 36, 63, 123, 125,
2924 58
2925};
2926# endif
2927
2928/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2929static const yytype_uint16 yyr1[] =
2930{
2931 0, 511, 512, 513, 513, 514, 514, 514, 514, 514,
2932 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
2933 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
2934 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
2935 514, 514, 514, 515, 515, 515, 515, 515, 515, 515,
2936 515, 516, 516, 517, 517, 518, 518, 518, 518, 519,
2937 519, 520, 520, 520, 520, 520, 520, 520, 520, 520,
2938 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
2939 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
2940 521, 521, 522, 522, 522, 522, 523, 523, 524, 525,
2941 525, 525, 526, 526, 526, 526, 527, 527, 528, 528,
2942 528, 529, 529, 530, 531, 531, 532, 533, 534, 534,
2943 534, 534, 535, 535, 535, 535, 535, 535, 535, 535,
2944 535, 535, 535, 535, 535, 536, 536, 537, 538, 538,
2945 538, 538, 538, 539, 539, 540, 540, 540, 541, 541,
2946 541, 542, 542, 543, 544, 544, 545, 545, 545, 546,
2947 546, 546, 547, 547, 547, 548, 548, 549, 549, 550,
2948 550, 551, 551, 552, 552, 553, 553, 554, 554, 555,
2949 555, 556, 556, 557, 558, 558, 558, 559, 559, 560,
2950 560, 561, 561, 561, 562, 562, 562, 563, 563, 564,
2951 564, 564, 565, 565, 566, 566, 567, 567, 568, 568,
2952 568, 569, 569, 569, 569, 570, 570, 570, 570, 570,
2953 570, 570, 570, 570, 570, 570, 570, 570, 570, 571,
2954 571, 572, 572, 572, 573, 573, 573, 573, 573, 573,
2955 574, 574, 574, 575, 576, 576, 576, 577, 577, 578,
2956 578, 578, 578, 578, 578, 579, 579, 580, 581, 581,
2957 581, 581, 581, 582, 582, 582, 582, 583, 583, 583,
2958 583, 583, 583, 583, 583, 584, 584, 585, 585, 586,
2959 586, 586, 587, 588, 589, 589, 589, 589, 589, 590,
2960 590, 590, 590, 591, 592, 592, 593, 593, 594, 594,
2961 594, 594, 594, 594, 594, 594, 595, 595, 596, 597,
2962 597, 597, 597, 598, 598, 598, 598, 599, 600, 600,
2963 600, 601, 602, 602, 602, 602, 602, 602, 603, 603,
2964 604, 604, 605, 606, 606, 606, 607, 607, 608, 608,
2965 609, 609, 609, 610, 611, 611, 612, 612, 613, 614,
2966 614, 614, 614, 615, 615, 616, 616, 617, 617, 617,
2967 618, 618, 618, 618, 618, 618, 619, 619, 620, 620,
2968 620, 620, 621, 622, 622, 622, 622, 622, 622, 622,
2969 622, 623, 623, 624, 624, 624, 624, 624, 624, 624,
2970 624, 625, 625, 625, 625, 625, 625, 625, 625, 625,
2971 625, 625, 625, 625, 625, 625, 625, 625, 626, 626,
2972 626, 626, 626, 626, 627, 627, 628, 628, 628, 629,
2973 629, 629, 630, 630, 631, 631, 631, 631, 631, 631,
2974 632, 632, 633, 633, 634, 635, 635, 636, 636, 637,
2975 637, 638, 638, 639, 639, 640, 640, 641, 641, 642,
2976 642, 643, 643, 643, 643, 643, 644, 645, 645, 646,
2977 646, 647, 647, 648, 648, 648, 648, 648, 648, 648,
2978 648, 648, 648, 648, 648, 648, 648, 648, 648, 649,
2979 650, 650, 650, 651, 651, 652, 652, 653, 653, 654,
2980 654, 654, 654, 654, 654, 654, 654, 655, 655, 656,
2981 656, 657, 657, 657, 657, 657, 657, 657, 657, 657,
2982 657, 657, 657, 657, 657, 657, 657, 657, 657, 657,
2983 658, 658, 659, 659, 660, 660, 661, 661, 661, 662,
2984 662, 663, 663, 664, 664, 664, 665, 665, 666, 667,
2985 667, 668, 668, 668, 668, 668, 668, 668, 668, 668,
2986 669, 669, 670, 670, 670, 671, 672, 672, 673, 673,
2987 674, 674, 674, 675, 675, 676, 676, 677, 677, 678,
2988 678, 679, 679, 679, 680, 680, 680, 681, 681, 681,
2989 681, 682, 682, 683, 683, 683, 683, 684, 684, 685,
2990 685, 685, 685, 685, 685, 686, 686, 687, 687, 688,
2991 688, 688, 688, 689, 690, 690, 691, 691, 692, 692,
2992 692, 692, 692, 693, 694, 694, 694, 695, 695, 696,
2993 696, 697, 697, 698, 698, 698, 699, 699, 700, 700,
2994 701, 701, 701, 701, 701, 702, 703, 704, 705, 706,
2995 706, 707, 707, 708, 708, 709, 709, 710, 710, 711,
2996 711, 712, 713, 713, 713, 713, 714, 714, 715, 715,
2997 715, 716, 716, 717, 717, 718, 718, 719, 719, 720,
2998 720, 721, 721, 721, 721, 721, 721, 721, 721, 721,
2999 721, 722, 722, 723, 723, 723, 724, 724, 725, 725,
3000 726, 726, 727, 727, 728, 728, 729, 730, 730, 731,
3001 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
3002 732, 732, 732, 732, 733, 733, 734, 734, 734, 734,
3003 734, 735, 735, 735, 735, 735, 735, 736, 736, 737,
3004 737, 738, 738, 738, 738, 739, 739, 740, 741, 741,
3005 742, 742, 743, 743, 744, 744, 745, 745, 746, 747,
3006 747, 748, 748, 749, 749, 750, 750, 751, 751, 751,
3007 751, 751, 751, 751, 751, 751, 752, 752, 752, 753,
3008 753, 753, 753, 753, 753, 753, 754, 754, 754, 754,
3009 755, 756, 756, 757, 757, 757, 757, 757, 757, 757,
3010 757, 757, 757, 757, 758, 758, 759, 759, 760, 760,
3011 761, 762, 763, 763, 764, 764, 765, 766, 767, 767,
3012 767, 767, 767, 767, 768, 768, 769, 769, 769, 769,
3013 770, 771, 771, 771, 772, 772, 773, 773, 774, 774,
3014 775, 775, 776, 776, 777, 777, 778, 778, 779, 779,
3015 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
3016 780, 780, 780, 780, 780, 780, 781, 781, 781, 781,
3017 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
3018 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
3019 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
3020 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
3021 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
3022 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
3023 781, 781, 781, 781, 781, 781, 782, 782, 782, 782,
3024 782, 782, 782, 782, 782, 782, 782, 782, 782, 782,
3025 782, 782, 782, 782, 782, 782, 782, 782, 782, 782,
3026 782, 783, 783, 783, 784, 784, 784, 784, 784, 784,
3027 784, 784, 784, 784, 784, 784, 784, 785, 785, 785,
3028 785, 785, 785, 786, 786, 786, 786, 786, 786, 787,
3029 787, 788, 788, 789, 789, 789, 789, 789, 789, 789,
3030 789, 789, 789, 789, 789, 789, 789, 790, 790, 791,
3031 791, 792, 792, 792, 793, 793, 794, 794, 795, 795,
3032 796, 797, 797, 797, 798, 799, 799, 800, 800, 801,
3033 801, 801, 802, 802, 803, 803, 803, 803, 803, 804,
3034 804, 805, 805, 806, 807, 807, 808, 808, 809, 810,
3035 810, 811, 811, 812, 812, 813, 813, 813, 814, 814,
3036 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
3037 815, 815, 815, 815, 816, 816, 817, 817, 818, 818,
3038 818, 818, 818, 818, 818, 818, 819, 819, 820, 820,
3039 821, 821, 822, 822, 823, 823, 824, 824, 825, 825,
3040 826, 826, 826, 827, 827, 828, 828, 829, 829, 829,
3041 829, 829, 829, 829, 829, 829, 829, 830, 830, 831,
3042 832, 832, 833, 833, 833, 833, 833, 833, 834, 835,
3043 836, 836, 836, 837, 837, 838, 839, 839, 840, 841,
3044 841, 842, 842, 843, 843, 532, 532, 844, 844, 845,
3045 845, 846, 846, 846, 847, 847, 847, 848, 848, 849,
3046 849, 850, 850, 851, 851, 852, 852, 853, 853, 853,
3047 854, 854, 855, 855, 856, 857, 857, 858, 858, 859,
3048 859, 859, 860, 860, 861, 861, 862, 862, 863, 863,
3049 864, 865, 865, 866, 866, 866, 866, 866, 866, 866,
3050 866, 866, 866, 866, 866, 866, 866, 867, 868, 868,
3051 868, 869, 869, 869, 870, 870, 870, 871, 871, 872,
3052 872, 873, 873, 874, 875, 875, 876, 877, 877, 878,
3053 878, 878, 878, 878, 879, 879, 879, 880, 880, 881,
3054 881, 881, 881, 882, 882, 883, 884, 884, 885, 885,
3055 886, 886, 887, 887, 888, 888, 889, 889, 889, 889,
3056 889, 889, 890, 890, 891, 891, 892, 892, 893, 894,
3057 894, 894, 894, 895, 895, 896, 896, 896, 897, 897,
3058 897, 897, 897, 897, 897, 897, 897, 897, 897, 897,
3059 897, 897, 897, 897, 897, 897, 897, 897, 897, 897,
3060 897, 897, 897, 897, 897, 897, 897, 897, 898, 898,
3061 898, 899, 899, 900, 900, 901, 901, 902, 902, 902,
3062 902, 903, 904, 904, 905, 905, 905, 905, 906, 906,
3063 906, 906, 907, 907, 907, 907, 908, 908, 909, 909,
3064 909, 909, 909, 909, 909, 910, 910, 911, 911, 911,
3065 912, 912, 913, 913, 913, 913, 913, 914, 914, 914,
3066 914, 914, 915, 915, 916, 916, 917, 917, 918, 918,
3067 919, 919, 919, 920, 920, 921, 921, 922, 922, 923,
3068 924, 924, 925, 925, 926, 926, 927, 928, 928, 929,
3069 929, 929, 930, 930, 930, 930, 930, 930, 930, 930,
3070 931, 931, 932, 932, 933, 933, 934, 934, 935, 936,
3071 936, 936, 936, 936, 937, 937, 937, 937, 938, 938,
3072 938, 939, 939, 939, 940, 941, 941, 941, 941, 941,
3073 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3074 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3075 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3076 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3077 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3078 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3079 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3080 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3081 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3082 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3083 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3084 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3085 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3086 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3087 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3088 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3089 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3090 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3091 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3092 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3093 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3094 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3095 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3096 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3097 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3098 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3099 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3100 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3101 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3102 941, 941, 941, 941, 941, 941, 941, 941, 941, 941,
3103 941, 941, 941, 941, 942, 942, 942, 942, 942, 942,
3104 942, 942, 942, 942, 942, 942, 942, 942, 942, 942,
3105 942, 942, 942, 942, 942, 942, 942, 942, 942, 942,
3106 942, 942, 942, 942, 942, 942, 942, 942, 942, 942,
3107 942, 942, 942, 942, 942, 942, 942, 942, 942, 942,
3108 942, 942, 942, 942, 942, 942, 942, 942, 943, 943,
3109 943, 943, 943, 943, 943, 943, 943, 943, 943, 943,
3110 943, 943, 943, 943, 943, 943, 943, 943, 943, 943,
3111 943, 943, 943, 943, 943, 943, 944, 944, 944, 944,
3112 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
3113 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
3114 944, 944, 944, 944, 944, 945, 945, 945, 945, 945,
3115 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
3116 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
3117 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
3118 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
3119 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
3120 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
3121 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
3122 945, 945, 945, 945, 945, 945, 946, 946, 946, 946,
3123 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
3124 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
3125 946, 946, 946, 946, 946, 946, 946, 946, 947, 947,
3126 947, 947, 947, 947, 947, 947, 947, 947, 947, 947,
3127 947, 947, 947, 947, 947, 947, 947, 947, 947, 947,
3128 947, 947, 947, 947, 947, 947, 947, 947, 947, 947,
3129 947, 947, 947, 947, 947, 947, 947, 947, 947, 947,
3130 947, 947, 947, 947, 947, 947, 947, 947, 947, 947,
3131 947, 947, 947, 947, 947, 947, 947, 947, 947, 947,
3132 947, 947, 947, 947, 947, 947, 947, 947, 947, 947
3133};
3134
3135/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
3136static const yytype_uint8 yyr2[] =
3137{
3138 0, 2, 1, 3, 1, 1, 1, 1, 1, 1,
3139 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3140 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3141 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3142 1, 1, 0, 4, 6, 4, 6, 4, 6, 4,
3143 6, 1, 2, 3, 2, 1, 3, 2, 3, 1,
3144 3, 2, 5, 3, 6, 4, 6, 6, 6, 5,
3145 5, 6, 9, 4, 5, 7, 6, 4, 8, 4,
3146 2, 4, 3, 6, 4, 2, 2, 2, 2, 1,
3147 2, 0, 1, 2, 2, 2, 1, 3, 4, 2,
3148 1, 0, 2, 3, 2, 3, 1, 2, 1, 1,
3149 1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
3150 1, 1, 6, 6, 8, 6, 8, 6, 8, 6,
3151 8, 8, 10, 8, 10, 1, 0, 9, 1, 4,
3152 4, 7, 2, 1, 3, 2, 2, 0, 4, 3,
3153 0, 1, 0, 2, 3, 5, 2, 2, 0, 8,
3154 5, 0, 5, 5, 7, 2, 0, 1, 1, 1,
3155 3, 2, 0, 1, 0, 1, 3, 1, 3, 1,
3156 2, 1, 3, 2, 6, 8, 5, 1, 0, 1,
3157 3, 2, 4, 5, 5, 8, 7, 1, 0, 3,
3158 9, 12, 3, 0, 4, 6, 1, 2, 1, 1,
3159 0, 1, 2, 2, 1, 2, 2, 1, 2, 3,
3160 2, 2, 2, 2, 3, 3, 3, 1, 3, 1,
3161 0, 1, 2, 2, 2, 2, 2, 2, 2, 2,
3162 1, 1, 0, 2, 9, 12, 11, 0, 2, 1,
3163 1, 1, 1, 1, 1, 3, 0, 1, 2, 1,
3164 1, 2, 2, 3, 1, 1, 2, 2, 1, 2,
3165 3, 5, 3, 2, 5, 1, 1, 1, 0, 5,
3166 7, 5, 2, 3, 1, 1, 2, 2, 0, 3,
3167 4, 4, 0, 3, 2, 0, 3, 1, 1, 1,
3168 1, 1, 1, 1, 1, 1, 1, 3, 3, 1,
3169 2, 2, 2, 2, 2, 2, 0, 3, 3, 3,
3170 0, 1, 2, 1, 2, 2, 2, 2, 3, 4,
3171 1, 3, 1, 1, 1, 1, 3, 1, 2, 0,
3172 1, 2, 0, 1, 3, 0, 2, 0, 3, 3,
3173 1, 5, 3, 1, 3, 1, 2, 1, 4, 5,
3174 5, 6, 3, 7, 4, 11, 1, 3, 2, 2,
3175 2, 0, 3, 1, 1, 2, 2, 2, 2, 1,
3176 0, 1, 2, 6, 4, 6, 4, 6, 8, 4,
3177 6, 1, 1, 1, 1, 2, 1, 2, 1, 2,
3178 1, 1, 1, 1, 3, 3, 3, 3, 2, 2,
3179 1, 3, 1, 1, 1, 3, 1, 1, 0, 1,
3180 1, 1, 1, 3, 8, 11, 10, 7, 10, 9,
3181 1, 1, 2, 3, 8, 11, 9, 1, 1, 3,
3182 0, 1, 3, 1, 0, 1, 0, 1, 0, 1,
3183 3, 1, 1, 1, 3, 0, 2, 2, 0, 2,
3184 0, 1, 0, 1, 1, 1, 3, 3, 1, 1,
3185 3, 3, 3, 3, 3, 3, 4, 3, 2, 1,
3186 1, 1, 1, 1, 3, 1, 1, 3, 3, 1,
3187 2, 4, 4, 2, 3, 5, 5, 1, 1, 3,
3188 0, 11, 11, 10, 12, 1, 2, 5, 4, 4,
3189 4, 4, 7, 5, 4, 7, 6, 9, 9, 4,
3190 1, 1, 1, 1, 1, 1, 1, 5, 1, 1,
3191 3, 1, 2, 2, 2, 3, 1, 3, 6, 2,
3192 0, 3, 3, 4, 4, 4, 4, 3, 2, 1,
3193 1, 0, 1, 1, 0, 2, 1, 5, 1, 0,
3194 2, 2, 0, 1, 0, 3, 5, 1, 3, 4,
3195 3, 1, 1, 0, 2, 2, 0, 2, 2, 1,
3196 1, 1, 0, 2, 4, 5, 4, 2, 3, 2,
3197 2, 2, 2, 1, 2, 3, 0, 1, 0, 5,
3198 1, 4, 6, 2, 1, 0, 4, 0, 1, 1,
3199 2, 2, 2, 1, 1, 2, 2, 1, 1, 1,
3200 1, 1, 1, 3, 3, 0, 1, 3, 1, 2,
3201 1, 1, 1, 1, 1, 2, 4, 4, 5, 1,
3202 1, 2, 0, 2, 0, 1, 3, 1, 0, 1,
3203 2, 3, 2, 4, 2, 3, 2, 0, 1, 2,
3204 0, 4, 5, 1, 2, 2, 0, 1, 3, 1,
3205 2, 3, 3, 3, 3, 3, 3, 1, 4, 9,
3206 9, 3, 0, 2, 2, 0, 5, 3, 1, 3,
3207 5, 3, 1, 2, 1, 3, 5, 1, 2, 3,
3208 4, 5, 4, 5, 4, 6, 5, 4, 5, 5,
3209 5, 2, 4, 1, 1, 0, 1, 4, 5, 4,
3210 0, 2, 2, 2, 1, 1, 1, 1, 0, 4,
3211 2, 1, 2, 2, 4, 2, 6, 2, 1, 3,
3212 4, 0, 2, 0, 2, 0, 1, 3, 3, 2,
3213 0, 2, 4, 1, 1, 1, 0, 2, 3, 5,
3214 6, 2, 3, 5, 5, 5, 3, 4, 0, 1,
3215 1, 1, 1, 1, 2, 4, 1, 1, 1, 1,
3216 2, 3, 0, 1, 1, 1, 1, 1, 2, 2,
3217 2, 2, 2, 1, 3, 0, 1, 1, 1, 1,
3218 5, 2, 1, 1, 1, 1, 4, 1, 2, 2,
3219 1, 3, 3, 2, 1, 0, 5, 2, 5, 2,
3220 1, 3, 3, 0, 1, 1, 1, 1, 1, 1,
3221 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3222 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
3223 3, 3, 3, 3, 3, 0, 1, 3, 3, 5,
3224 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
3225 3, 3, 3, 3, 3, 3, 3, 2, 2, 3,
3226 3, 2, 2, 3, 3, 5, 4, 6, 3, 5,
3227 4, 6, 4, 6, 5, 7, 3, 2, 4, 3,
3228 2, 3, 3, 3, 3, 4, 3, 4, 3, 4,
3229 5, 6, 6, 7, 6, 7, 6, 7, 3, 4,
3230 4, 6, 1, 4, 3, 5, 1, 3, 2, 2,
3231 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3232 3, 3, 3, 3, 3, 2, 2, 5, 6, 6,
3233 7, 1, 1, 2, 1, 1, 2, 2, 3, 1,
3234 2, 4, 1, 1, 2, 2, 4, 1, 1, 3,
3235 3, 4, 1, 3, 6, 7, 9, 7, 7, 5,
3236 1, 1, 1, 5, 6, 6, 4, 4, 4, 4,
3237 6, 5, 5, 5, 4, 6, 4, 7, 9, 5,
3238 0, 5, 4, 0, 1, 0, 2, 0, 1, 3,
3239 3, 2, 2, 0, 6, 1, 0, 3, 0, 2,
3240 2, 0, 1, 4, 2, 2, 2, 2, 2, 4,
3241 3, 1, 5, 3, 1, 3, 1, 2, 3, 1,
3242 3, 1, 2, 1, 0, 1, 1, 1, 1, 1,
3243 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3244 1, 1, 1, 1, 1, 4, 1, 4, 1, 4,
3245 1, 2, 1, 2, 1, 2, 1, 3, 1, 3,
3246 1, 2, 1, 3, 1, 2, 1, 0, 1, 3,
3247 1, 3, 3, 1, 3, 3, 0, 1, 1, 1,
3248 1, 1, 1, 1, 1, 1, 1, 4, 3, 2,
3249 3, 0, 3, 3, 2, 2, 1, 0, 2, 2,
3250 3, 2, 1, 1, 3, 5, 1, 2, 4, 2,
3251 0, 1, 0, 1, 2, 3, 5, 1, 0, 0,
3252 2, 0, 2, 3, 3, 3, 5, 0, 2, 1,
3253 0, 1, 0, 1, 3, 1, 2, 3, 2, 1,
3254 4, 2, 1, 0, 3, 1, 3, 1, 2, 4,
3255 2, 0, 1, 3, 1, 3, 1, 2, 1, 3,
3256 1, 1, 2, 1, 1, 2, 1, 1, 2, 7,
3257 2, 5, 3, 3, 1, 1, 1, 1, 1, 1,
3258 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
3259 3, 3, 0, 1, 1, 1, 5, 3, 0, 1,
3260 1, 1, 1, 1, 4, 7, 6, 2, 0, 1,
3261 1, 1, 1, 13, 16, 1, 2, 0, 1, 0,
3262 1, 0, 2, 0, 1, 0, 6, 8, 6, 8,
3263 6, 8, 3, 2, 1, 0, 4, 6, 3, 2,
3264 4, 3, 5, 1, 0, 1, 1, 0, 1, 1,
3265 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3266 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3267 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3268 1, 1, 1, 1, 3, 1, 1, 1, 1, 1,
3269 1, 2, 1, 1, 2, 3, 3, 3, 1, 3,
3270 3, 2, 3, 3, 3, 3, 1, 1, 1, 1,
3271 3, 5, 1, 1, 1, 1, 3, 2, 2, 3,
3272 1, 1, 4, 6, 5, 4, 6, 1, 1, 1,
3273 1, 1, 1, 0, 1, 3, 1, 0, 7, 3,
3274 1, 2, 3, 2, 0, 2, 0, 2, 4, 5,
3275 3, 5, 1, 0, 2, 0, 2, 1, 1, 1,
3276 2, 3, 2, 2, 2, 2, 3, 4, 3, 1,
3277 1, 1, 1, 0, 1, 3, 1, 3, 2, 9,
3278 12, 11, 12, 14, 3, 4, 4, 0, 7, 10,
3279 9, 2, 3, 0, 4, 1, 1, 1, 1, 1,
3280 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3281 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3282 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3283 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3284 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3285 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3286 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3287 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3288 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3289 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3290 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3291 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3292 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3293 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3294 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3295 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3296 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3297 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3298 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3299 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3300 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3301 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3302 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3303 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3304 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3305 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3306 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3307 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3308 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3309 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3310 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3311 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3312 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3313 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3314 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3315 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3316 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3317 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3318 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3319 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3320 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3321 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3322 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3323 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3324 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3325 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3326 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3327 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3328 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3329 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3330 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3331 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3332 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3333 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3334 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3335 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3336 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3337 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3338 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3339 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
3340};
3341
3342/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
3343 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
3344 means the default is an error. */
3345static const yytype_uint16 yydefact[] =
3346{
3347 152, 242, 0, 1306, 1305, 1373, 242, 0, 1255, 242,
3348 462, 380, 0, 1391, 1373, 0, 242, 0, 152, 0,
3349 0, 0, 0, 0, 0, 522, 525, 523, 0, 0,
3350 0, 242, 559, 0, 1390, 242, 0, 0, 551, 524,
3351 0, 1353, 0, 0, 0, 0, 0, 2, 4, 7,
3352 19, 32, 28, 0, 18, 30, 16, 23, 6, 34,
3353 36, 17, 22, 14, 35, 12, 33, 498, 485, 564,
3354 497, 0, 0, 151, 663, 505, 31, 15, 27, 5,
3355 11, 25, 26, 24, 1264, 39, 29, 37, 20, 8,
3356 9, 21, 38, 40, 1389, 10, 41, 13, 241, 240,
3357 234, 0, 0, 0, 0, 0, 1372, 0, 235, 108,
3358 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
3359 1425, 1778, 1426, 1427, 1428, 1429, 1430, 1779, 1431, 1432,
3360 1433, 1724, 1725, 1780, 1726, 1727, 1434, 1435, 1436, 1437,
3361 1438, 1439, 1440, 1441, 1728, 1729, 1442, 1443, 1444, 1445,
3362 1446, 1730, 1781, 1731, 1447, 1448, 1449, 1450, 1451, 1782,
3363 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1783,
3364 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470,
3365 1732, 1733, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478,
3366 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488,
3367 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498,
3368 1734, 1499, 1500, 1501, 1502, 1503, 1735, 1504, 1505, 1506,
3369 1736, 1507, 1508, 1509, 1784, 1785, 1510, 1511, 1737, 1787,
3370 1512, 1513, 1738, 1739, 1514, 1515, 1516, 1517, 1518, 1519,
3371 1520, 1521, 1788, 1522, 1523, 1524, 1525, 1526, 1527, 1528,
3372 1529, 1530, 1531, 1532, 1533, 1789, 1740, 1534, 1535, 1536,
3373 1537, 1538, 1741, 1742, 1743, 1539, 1790, 1791, 1540, 1792,
3374 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1793, 1548, 1794,
3375 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1744, 1557,
3376 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567,
3377 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1745, 1796, 1746,
3378 1575, 1576, 1577, 1747, 1578, 1579, 1797, 1580, 1748, 1581,
3379 1749, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590,
3380 1750, 1798, 1591, 1799, 1751, 1592, 1593, 1594, 1595, 1596,
3381 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1752, 1800, 1604,
3382 1605, 1753, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613,
3383 1614, 1615, 1616, 1617, 1754, 1618, 1619, 1620, 1621, 1622,
3384 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632,
3385 1633, 1634, 1635, 1636, 1801, 1637, 1638, 1639, 1755, 1640,
3386 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650,
3387 1651, 1652, 1653, 1654, 1655, 1656, 1756, 1657, 1658, 1659,
3388 1802, 1660, 1661, 1757, 1662, 1663, 1664, 1665, 1666, 1667,
3389 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1758, 1675, 1759,
3390 1676, 1677, 1678, 1679, 1804, 1680, 1681, 1682, 1683, 1684,
3391 1760, 1761, 1685, 1686, 1762, 1687, 1763, 1688, 1689, 1764,
3392 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699,
3393 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1765, 1766, 1707,
3394 1805, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716,
3395 1717, 1718, 1719, 1767, 1768, 1769, 1770, 1771, 1772, 1773,
3396 1774, 1775, 1776, 1777, 1720, 1721, 1722, 1723, 0, 1398,
3397 0, 1181, 109, 110, 1203, 108, 1737, 1744, 1758, 1254,
3398 1253, 109, 237, 461, 0, 0, 0, 0, 0, 0,
3399 374, 373, 0, 1244, 379, 0, 0, 112, 104, 1606,
3400 111, 1180, 102, 1372, 0, 0, 400, 401, 0, 410,
3401 0, 393, 398, 394, 0, 419, 412, 420, 402, 392,
3402 413, 403, 391, 0, 421, 0, 396, 0, 0, 0,
3403 238, 203, 152, 0, 1270, 1280, 1289, 1285, 1279, 1287,
3404 1277, 1283, 1269, 1291, 1278, 1282, 1275, 1292, 1273, 1290,
3405 1288, 1276, 1284, 1268, 1272, 1259, 1264, 1295, 1286, 1293,
3406 1281, 1294, 1296, 1271, 1297, 1274, 0, 1255, 0, 0,
3407 1730, 1781, 1735, 0, 1748, 0, 1751, 1752, 1640, 1759,
3408 1762, 1763, 1764, 1765, 0, 731, 111, 106, 715, 0,
3409 500, 667, 677, 715, 720, 981, 743, 982, 0, 113,
3410 1341, 1340, 1338, 1337, 191, 1218, 1378, 1760, 1685, 1394,
3411 1379, 1376, 1377, 239, 558, 556, 0, 1152, 1512, 1551,
3412 1644, 1655, 1760, 1314, 1318, 0, 236, 1396, 1383, 0,
3413 1384, 111, 506, 550, 0, 243, 1352, 0, 1357, 0,
3414 1620, 533, 536, 1212, 534, 498, 0, 1, 152, 0,
3415 158, 0, 554, 554, 0, 554, 0, 490, 0, 0,
3416 498, 493, 497, 664, 1263, 1367, 1393, 1760, 1685, 1382,
3417 1385, 1520, 0, 0, 1520, 0, 1520, 0, 1520, 0,
3418 1375, 1138, 0, 1182, 114, 0, 0, 345, 378, 377,
3419 376, 375, 380, 1520, 1228, 0, 430, 431, 0, 0,
3420 0, 0, 0, 1239, 105, 103, 0, 1370, 408, 409,
3421 0, 399, 395, 397, 0, 1204, 1806, 1807, 1808, 786,
3422 1809, 815, 793, 815, 815, 1810, 1811, 1812, 1813, 782,
3423 782, 1486, 795, 1814, 1815, 1816, 1520, 1817, 1818, 783,
3424 784, 820, 1819, 1820, 1821, 1822, 1823, 0, 0, 1824,
3425 815, 1825, 782, 1826, 1827, 1828, 787, 1829, 753, 1830,
3426 0, 1831, 785, 754, 1832, 823, 823, 1833, 0, 810,
3427 1834, 418, 0, 422, 768, 769, 770, 771, 796, 797,
3428 772, 802, 803, 807, 773, 855, 782, 1205, 1206, 1520,
3429 1207, 418, 414, 1520, 418, 1174, 1520, 0, 0, 199,
3430 1261, 1298, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842,
3431 1844, 1843, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852,
3432 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862,
3433 1863, 1866, 1864, 1865, 1867, 1868, 1869, 1870, 1871, 1872,
3434 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1881, 1880, 1882,
3435 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892,
3436 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902,
3437 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912,
3438 1913, 1914, 1915, 1312, 0, 1313, 1303, 1267, 1299, 1300,
3439 152, 0, 460, 1252, 1339, 0, 0, 0, 1096, 715,
3440 720, 0, 0, 733, 0, 1111, 0, 1117, 0, 0,
3441 0, 715, 505, 0, 677, 732, 107, 0, 713, 714,
3442 605, 605, 559, 0, 540, 725, 0, 0, 728, 726,
3443 0, 728, 0, 0, 0, 728, 724, 685, 0, 605,
3444 0, 713, 716, 605, 0, 735, 1258, 0, 0, 0,
3445 0, 1380, 0, 0, 0, 1184, 1186, 1187, 1064, 1197,
3446 968, 0, 1725, 1726, 1727, 1132, 1728, 1729, 1731, 1732,
3447 1733, 922, 1734, 1195, 1736, 1738, 1739, 1741, 1742, 1743,
3448 1744, 1745, 1746, 0, 1196, 1749, 1587, 1754, 1755, 1757,
3449 1760, 1761, 1194, 1766, 0, 0, 0, 1163, 1087, 0,
3450 0, 0, 967, 0, 1133, 1139, 963, 0, 0, 776,
3451 777, 798, 799, 778, 804, 805, 779, 0, 1159, 856,
3452 951, 1147, 1000, 972, 980, 959, 1031, 952, 0, 962,
3453 954, 1155, 540, 1153, 0, 955, 1183, 540, 1151, 1317,
3454 1315, 1321, 1316, 0, 0, 0, 0, 0, 107, 1360,
3455 1359, 1351, 1349, 1350, 1348, 1347, 1354, 0, 1356, 1264,
3456 1082, 1084, 0, 535, 0, 0, 0, 488, 487, 3,
3457 0, 0, 0, 0, 552, 553, 0, 0, 0, 0,
3458 0, 0, 0, 0, 648, 579, 580, 582, 645, 649,
3459 657, 0, 0, 0, 0, 0, 494, 0, 1212, 1392,
3460 1388, 1386, 0, 0, 0, 136, 136, 0, 0, 0,
3461 0, 0, 96, 45, 89, 0, 0, 0, 0, 217,
3462 230, 0, 0, 0, 0, 0, 227, 0, 0, 210,
3463 47, 204, 206, 0, 136, 0, 43, 0, 0, 0,
3464 49, 0, 460, 1137, 0, 118, 1948, 1949, 1950, 1951,
3465 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961,
3466 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971,
3467 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
3468 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
3469 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
3470 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
3471 2012, 2013, 2014, 1902, 2015, 2016, 2017, 2018, 2019, 116,
3472 117, 120, 119, 121, 115, 108, 0, 1916, 1778, 1779,
3473 1780, 1781, 1731, 1782, 1783, 0, 1784, 1785, 1737, 1787,
3474 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1744, 1796, 1797,
3475 1798, 1799, 1800, 1801, 1942, 1802, 1758, 1804, 1764, 0,
3476 1805, 973, 1090, 564, 1088, 1213, 0, 109, 1200, 0,
3477 0, 458, 0, 0, 0, 1224, 0, 0, 1520, 198,
3478 1520, 345, 0, 1520, 345, 1520, 0, 1238, 1241, 0,
3479 411, 407, 405, 404, 406, 814, 801, 809, 808, 1087,
3480 791, 790, 789, 0, 788, 0, 0, 815, 815, 813,
3481 792, 768, 0, 0, 0, 819, 0, 817, 0, 416,
3482 417, 0, 389, 0, 761, 757, 0, 828, 829, 830,
3483 831, 838, 839, 836, 837, 832, 833, 826, 827, 834,
3484 835, 824, 825, 0, 840, 841, 842, 843, 844, 845,
3485 846, 847, 774, 780, 0, 0, 1208, 0, 384, 0,
3486 0, 386, 0, 0, 0, 152, 0, 211, 1308, 1309,
3487 1307, 0, 0, 1302, 1266, 214, 231, 1311, 1301, 1310,
3488 1265, 1260, 0, 0, 1256, 449, 0, 0, 0, 1097,
3489 1106, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 0,
3490 0, 676, 674, 0, 0, 0, 0, 0, 0, 1133,
3491 0, 926, 952, 0, 0, 0, 1082, 1116, 0, 0,
3492 0, 0, 0, 0, 1082, 1122, 0, 0, 699, 711,
3493 0, 598, 604, 675, 673, 0, 1152, 668, 0, 745,
3494 0, 725, 0, 724, 0, 0, 727, 721, 0, 722,
3495 0, 0, 0, 0, 723, 0, 0, 0, 0, 0,
3496 671, 0, 711, 0, 672, 742, 1327, 1326, 1335, 192,
3497 0, 1093, 0, 152, 1381, 1395, 0, 1087, 960, 1131,
3498 0, 0, 965, 1044, 881, 0, 0, 882, 860, 861,
3499 0, 1162, 1171, 1082, 1086, 0, 963, 1082, 0, 956,
3500 957, 0, 1034, 1036, 0, 0, 1134, 1185, 964, 0,
3501 1190, 0, 855, 855, 1158, 1064, 0, 1054, 1057, 0,
3502 0, 1061, 1062, 1063, 0, 0, 0, 1150, 0, 1072,
3503 1074, 0, 0, 897, 1070, 0, 900, 0, 0, 0,
3504 0, 1058, 1059, 1060, 1050, 1051, 1052, 1053, 1055, 1056,
3505 1068, 1049, 878, 0, 953, 0, 1003, 0, 877, 1156,
3506 666, 0, 1188, 666, 1329, 1333, 1334, 1328, 1332, 0,
3507 1320, 1319, 1324, 1322, 1325, 1323, 1397, 0, 1361, 1345,
3508 0, 1342, 1085, 661, 537, 1176, 0, 0, 1366, 157,
3509 156, 0, 0, 510, 509, 573, 565, 567, 573, 0,
3510 508, 0, 621, 622, 0, 0, 0, 0, 654, 652,
3511 1184, 1197, 609, 583, 608, 0, 0, 587, 0, 613,
3512 856, 647, 492, 577, 578, 581, 491, 0, 650, 0,
3513 660, 0, 529, 531, 514, 528, 526, 511, 519, 648,
3514 582, 0, 1368, 1387, 0, 0, 0, 0, 0, 1520,
3515 0, 0, 756, 80, 61, 297, 135, 0, 0, 0,
3516 0, 0, 0, 0, 88, 85, 86, 87, 0, 0,
3517 0, 0, 215, 216, 229, 0, 220, 221, 218, 222,
3518 223, 0, 0, 208, 209, 0, 0, 0, 0, 207,
3519 0, 0, 0, 0, 0, 0, 0, 0, 1374, 1369,
3520 1135, 1138, 564, 564, 564, 0, 562, 563, 0, 0,
3521 448, 343, 353, 0, 0, 0, 1228, 0, 0, 0,
3522 0, 0, 0, 380, 1231, 1229, 1227, 1230, 1232, 1492,
3523 186, 0, 0, 194, 197, 0, 342, 316, 0, 0,
3524 1243, 0, 0, 0, 1520, 332, 1240, 0, 1371, 0,
3525 0, 0, 418, 0, 812, 811, 762, 758, 0, 0,
3526 0, 0, 0, 0, 423, 0, 0, 0, 0, 0,
3527 0, 0, 0, 0, 418, 1209, 0, 415, 418, 1175,
3528 0, 418, 202, 1262, 1304, 212, 232, 213, 233, 460,
3529 455, 483, 0, 463, 468, 446, 0, 446, 0, 465,
3530 469, 446, 464, 0, 446, 459, 0, 996, 0, 986,
3531 0, 0, 734, 0, 0, 987, 928, 929, 0, 0,
3532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3533 0, 0, 0, 0, 0, 0, 946, 945, 988, 738,
3534 0, 741, 0, 0, 1114, 1115, 0, 989, 0, 0,
3535 1121, 0, 0, 0, 994, 0, 678, 0, 0, 0,
3536 593, 597, 600, 0, 603, 540, 499, 1512, 1551, 0,
3537 551, 551, 551, 549, 539, 0, 625, 0, 0, 0,
3538 700, 0, 0, 702, 704, 0, 0, 707, 0, 684,
3539 683, 0, 0, 0, 0, 746, 0, 1180, 0, 0,
3540 193, 0, 1217, 0, 1220, 1221, 1222, 1219, 1216, 1223,
3541 0, 0, 0, 1130, 1126, 0, 0, 1039, 1041, 1043,
3542 0, 1048, 1054, 1057, 1061, 1062, 1063, 1058, 1059, 1060,
3543 1050, 1051, 1052, 1053, 1055, 1056, 0, 1076, 0, 1030,
3544 0, 0, 1161, 0, 924, 0, 958, 969, 0, 0,
3545 1037, 970, 1163, 1140, 0, 0, 1193, 1192, 857, 866,
3546 869, 901, 902, 873, 874, 875, 879, 1215, 1214, 1157,
3547 0, 1149, 0, 0, 858, 883, 888, 0, 1123, 918,
3548 0, 906, 0, 896, 0, 904, 908, 884, 899, 0,
3549 880, 0, 1150, 1073, 1075, 0, 1071, 0, 870, 871,
3550 872, 862, 863, 864, 865, 867, 868, 876, 1047, 1045,
3551 1046, 0, 1138, 0, 1148, 0, 0, 1005, 0, 0,
3552 903, 1154, 0, 745, 564, 745, 0, 855, 1362, 1212,
3553 1355, 1212, 1344, 1083, 1177, 1211, 152, 0, 1364, 143,
3554 147, 0, 1139, 177, 179, 666, 0, 571, 572, 576,
3555 0, 0, 576, 555, 507, 1755, 1640, 0, 0, 0,
3556 0, 614, 655, 0, 646, 611, 612, 0, 610, 1184,
3557 615, 1183, 616, 619, 620, 588, 1172, 656, 658, 0,
3558 651, 0, 1178, 513, 532, 0, 0, 0, 0, 0,
3559 496, 495, 662, 0, 46, 0, 1520, 63, 0, 0,
3560 0, 0, 0, 0, 247, 0, 347, 247, 101, 1520,
3561 418, 1520, 418, 1419, 1487, 1656, 0, 59, 321, 92,
3562 0, 129, 350, 0, 306, 82, 97, 122, 0, 0,
3563 48, 205, 219, 224, 125, 228, 225, 1248, 226, 136,
3564 0, 44, 0, 123, 0, 1246, 0, 0, 50, 127,
3565 1250, 1137, 0, 562, 562, 562, 0, 1089, 0, 0,
3566 0, 1091, 1092, 447, 0, 344, 0, 457, 437, 438,
3567 448, 1226, 0, 198, 345, 0, 345, 0, 1228, 0,
3568 0, 188, 184, 0, 0, 0, 0, 343, 335, 333,
3569 366, 0, 340, 334, 0, 0, 292, 0, 1413, 0,
3570 0, 0, 0, 432, 0, 0, 0, 0, 0, 781,
3571 794, 390, 768, 0, 822, 821, 823, 823, 751, 768,
3572 0, 768, 0, 766, 0, 806, 775, 848, 849, 850,
3573 851, 852, 853, 854, 383, 1210, 385, 0, 387, 1257,
3574 453, 0, 452, 456, 451, 450, 0, 445, 0, 478,
3575 0, 0, 0, 0, 0, 0, 0, 0, 983, 1095,
3576 0, 1109, 1108, 927, 934, 937, 941, 942, 943, 1110,
3577 0, 0, 0, 938, 939, 940, 930, 931, 932, 933,
3578 935, 936, 944, 743, 0, 0, 737, 1119, 1118, 1112,
3579 1113, 0, 991, 992, 993, 1120, 0, 0, 712, 591,
3580 589, 592, 594, 590, 0, 0, 745, 551, 551, 551,
3581 551, 548, 0, 0, 0, 744, 0, 642, 708, 706,
3582 0, 730, 0, 703, 0, 709, 0, 694, 0, 701,
3583 750, 717, 0, 0, 719, 1336, 1094, 557, 961, 0,
3584 0, 1127, 0, 923, 0, 1042, 971, 0, 1065, 1029,
3585 0, 0, 0, 1170, 0, 1083, 1033, 1035, 1171, 966,
3586 855, 0, 0, 0, 0, 0, 0, 0, 907, 898,
3587 0, 905, 909, 0, 0, 0, 892, 0, 0, 890,
3588 919, 886, 0, 0, 920, 1137, 0, 1141, 0, 0,
3589 1004, 1013, 669, 665, 625, 562, 625, 0, 1330, 1346,
3590 1343, 0, 1365, 0, 166, 0, 0, 0, 0, 169,
3591 183, 180, 1364, 0, 0, 566, 568, 0, 1066, 576,
3592 570, 618, 617, 0, 586, 653, 584, 0, 659, 0,
3593 530, 0, 516, 0, 687, 0, 0, 0, 0, 0,
3594 296, 0, 0, 0, 247, 0, 355, 0, 362, 0,
3595 0, 347, 328, 81, 0, 0, 0, 55, 100, 73,
3596 65, 51, 79, 0, 0, 84, 0, 77, 94, 95,
3597 93, 98, 0, 257, 282, 0, 0, 293, 0, 0,
3598 0, 0, 0, 0, 0, 0, 0, 0, 0, 1136,
3599 0, 0, 0, 564, 560, 561, 974, 481, 482, 480,
3600 210, 354, 0, 0, 196, 342, 0, 1243, 0, 1225,
3601 380, 0, 189, 0, 187, 0, 198, 345, 0, 320,
3602 316, 341, 314, 313, 315, 0, 1414, 203, 0, 1408,
3603 345, 1242, 0, 0, 433, 0, 427, 0, 1237, 800,
3604 764, 0, 818, 816, 765, 0, 763, 759, 767, 418,
3605 0, 441, 479, 484, 466, 471, 0, 477, 473, 472,
3606 467, 475, 474, 470, 984, 995, 1107, 0, 0, 0,
3607 0, 736, 739, 0, 990, 985, 710, 0, 0, 625,
3608 0, 0, 0, 0, 542, 541, 547, 0, 0, 1007,
3609 705, 0, 0, 0, 692, 682, 688, 0, 0, 0,
3610 0, 748, 747, 718, 0, 1129, 1125, 1038, 1040, 1077,
3611 1160, 1082, 1165, 1167, 0, 0, 0, 1032, 925, 1191,
3612 859, 0, 0, 889, 1124, 910, 0, 0, 0, 885,
3613 1065, 0, 0, 0, 0, 0, 894, 0, 1145, 1138,
3614 0, 1144, 0, 0, 0, 0, 979, 670, 642, 0,
3615 642, 0, 538, 1363, 0, 1358, 144, 145, 146, 0,
3616 0, 0, 161, 138, 0, 0, 178, 166, 154, 574,
3617 575, 0, 569, 585, 1173, 1179, 515, 0, 963, 0,
3618 0, 512, 0, 130, 247, 0, 0, 62, 0, 364,
3619 308, 356, 339, 323, 0, 0, 0, 248, 0, 381,
3620 0, 0, 329, 0, 0, 0, 0, 309, 0, 0,
3621 268, 0, 0, 339, 0, 346, 264, 265, 0, 54,
3622 74, 0, 70, 0, 99, 0, 0, 0, 0, 0,
3623 57, 69, 0, 52, 0, 418, 418, 60, 1204, 1806,
3624 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1926,
3625 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1935, 1824,
3626 254, 1825, 1587, 1826, 1827, 1828, 1829, 1830, 0, 1831,
3627 754, 1832, 1833, 2011, 1834, 1050, 1051, 253, 252, 349,
3628 249, 357, 251, 0, 1205, 250, 352, 307, 126, 1249,
3629 0, 124, 0, 1247, 133, 131, 128, 1251, 977, 978,
3630 975, 562, 460, 440, 0, 0, 1413, 0, 0, 0,
3631 1520, 0, 185, 0, 1243, 195, 342, 0, 372, 292,
3632 367, 0, 1413, 1411, 0, 1243, 1407, 0, 424, 0,
3633 0, 0, 760, 752, 388, 454, 0, 476, 947, 0,
3634 0, 0, 0, 601, 0, 607, 642, 546, 545, 544,
3635 543, 624, 1462, 1738, 1639, 0, 628, 623, 626, 631,
3636 633, 632, 634, 630, 641, 0, 644, 729, 1078, 1080,
3637 0, 0, 0, 0, 693, 0, 695, 0, 697, 0,
3638 749, 1128, 1168, 1169, 1164, 0, 856, 916, 914, 911,
3639 0, 912, 893, 0, 0, 891, 887, 0, 921, 0,
3640 1142, 0, 999, 0, 1002, 1016, 1012, 1011, 1007, 974,
3641 1007, 1331, 165, 142, 168, 167, 0, 1139, 175, 0,
3642 0, 166, 0, 170, 434, 0, 0, 527, 686, 520,
3643 521, 0, 360, 64, 0, 339, 0, 247, 325, 324,
3644 327, 322, 326, 0, 382, 0, 0, 266, 0, 273,
3645 311, 312, 310, 267, 339, 345, 269, 0, 0, 0,
3646 66, 56, 53, 58, 67, 0, 0, 68, 71, 750,
3647 83, 76, 1935, 1944, 0, 0, 0, 0, 0, 0,
3648 436, 443, 210, 0, 0, 316, 1410, 0, 0, 429,
3649 0, 0, 342, 190, 0, 0, 0, 1413, 0, 0,
3650 244, 0, 289, 0, 200, 1412, 0, 0, 1399, 0,
3651 0, 1235, 1236, 0, 442, 948, 0, 949, 740, 0,
3652 0, 599, 1007, 0, 0, 0, 635, 629, 0, 1006,
3653 1008, 0, 596, 1081, 689, 0, 691, 0, 715, 564,
3654 0, 715, 698, 1166, 997, 0, 913, 917, 915, 895,
3655 1146, 1143, 1001, 1015, 1018, 644, 1189, 644, 0, 0,
3656 153, 0, 0, 150, 137, 155, 1067, 517, 518, 0,
3657 247, 0, 338, 361, 278, 256, 0, 0, 0, 263,
3658 270, 371, 272, 0, 75, 91, 0, 0, 351, 134,
3659 132, 976, 460, 0, 1243, 292, 1407, 426, 0, 0,
3660 0, 316, 203, 1409, 305, 298, 299, 300, 301, 302,
3661 303, 304, 319, 318, 290, 291, 0, 0, 0, 0,
3662 0, 428, 1237, 0, 172, 181, 0, 172, 950, 602,
3663 0, 644, 0, 0, 0, 627, 0, 0, 643, 0,
3664 503, 1079, 0, 681, 679, 562, 0, 680, 0, 0,
3665 564, 596, 596, 139, 0, 140, 176, 0, 0, 0,
3666 345, 363, 337, 0, 330, 276, 275, 277, 281, 0,
3667 279, 0, 295, 0, 288, 256, 0, 78, 0, 358,
3668 435, 439, 0, 246, 1401, 342, 0, 1407, 292, 1413,
3669 1407, 0, 1404, 0, 425, 0, 0, 0, 174, 1243,
3670 0, 174, 0, 596, 637, 0, 636, 1010, 1009, 598,
3671 690, 0, 0, 998, 0, 1021, 502, 501, 0, 0,
3672 0, 0, 371, 0, 317, 0, 0, 278, 0, 271,
3673 368, 369, 370, 0, 284, 274, 285, 72, 90, 359,
3674 0, 342, 1402, 245, 201, 1400, 1405, 1406, 0, 172,
3675 171, 573, 173, 745, 182, 573, 606, 504, 638, 595,
3676 0, 696, 1017, 0, 0, 0, 0, 149, 745, 160,
3677 0, 288, 336, 331, 255, 280, 294, 0, 0, 0,
3678 286, 0, 287, 1407, 0, 174, 576, 1233, 576, 1724,
3679 1463, 1692, 0, 1019, 1022, 1020, 1014, 141, 148, 0,
3680 247, 260, 0, 259, 0, 348, 283, 1403, 1243, 573,
3681 162, 163, 0, 1026, 1025, 1024, 1028, 1027, 745, 365,
3682 258, 262, 261, 745, 576, 0, 159, 1234, 164, 1023
3683};
3684
3685/* YYDEFGOTO[NTERM-NUM]. */
3686static const yytype_int16 yydefgoto[] =
3687{
3688 -1, 46, 47, 48, 564, 2489, 2490, 2491, 2146, 1142,
3689 3207, 2147, 1143, 1144, 2493, 565, 615, 1034, 617, 1035,
3690 1538, 714, 1249, 1250, 566, 1688, 567, 2692, 2070, 2437,
3691 3189, 53, 2948, 2073, 1102, 2951, 3155, 2685, 2946, 2438,
3692 3228, 3281, 2949, 2074, 2075, 3156, 2076, 568, 2543, 2544,
3693 569, 570, 1763, 571, 829, 572, 1764, 1715, 1496, 1162,
3694 1705, 1405, 573, 100, 60, 574, 2478, 2809, 3200, 2504,
3695 3335, 2745, 2746, 3197, 3198, 2481, 2149, 3264, 3265, 2556,
3696 1697, 3259, 2218, 3142, 2153, 2134, 2747, 2226, 3102, 2848,
3697 2150, 2727, 2219, 3193, 1776, 2220, 3194, 2967, 2221, 1742,
3698 1767, 2482, 3266, 2154, 1743, 2477, 2810, 1685, 2222, 3204,
3699 2223, 525, 2731, 575, 557, 558, 821, 1352, 559, 801,
3700 576, 732, 1773, 577, 578, 2200, 3012, 2580, 3013, 2278,
3701 2194, 1414, 2273, 1821, 1745, 1415, 515, 1835, 2581, 2530,
3702 1822, 579, 1036, 68, 69, 954, 70, 2961, 71, 72,
3703 1662, 1663, 1664, 659, 671, 672, 1469, 1904, 664, 1106,
3704 1631, 646, 647, 2190, 686, 1737, 1626, 1627, 2079, 2445,
3705 1655, 1656, 1115, 1116, 1892, 3170, 1893, 1894, 1462, 1463,
3706 3051, 1643, 1647, 1648, 2100, 2090, 1634, 2347, 2886, 2887,
3707 2888, 2889, 2890, 2891, 2892, 1037, 2619, 3062, 1651, 1652,
3708 1118, 1119, 1120, 1660, 2110, 74, 75, 2053, 2422, 2423,
3709 621, 2903, 1488, 1665, 2623, 2624, 2625, 2907, 2908, 2909,
3710 622, 949, 950, 973, 968, 1477, 1913, 623, 624, 1869,
3711 1870, 2316, 975, 1906, 1924, 1925, 2631, 1793, 802, 2135,
3712 1501, 1355, 804, 1038, 805, 1330, 1039, 1334, 807, 1040,
3713 1041, 1042, 810, 1043, 1044, 1045, 813, 1326, 1046, 1047,
3714 1345, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382,
3715 1090, 1666, 1049, 1050, 1051, 1052, 1053, 626, 1054, 1055,
3716 1586, 2047, 2421, 2896, 3059, 3060, 2676, 2937, 3084, 3180,
3717 3295, 3323, 3324, 1056, 1057, 1532, 1533, 1534, 1947, 1948,
3718 1949, 1950, 2041, 1580, 1581, 1058, 2812, 1583, 1968, 2899,
3719 2900, 1091, 1455, 1525, 1293, 1294, 1502, 1429, 1430, 1436,
3720 1844, 1444, 1448, 1874, 1875, 1456, 2009, 1059, 1943, 1944,
3721 2372, 1510, 1060, 1174, 1537, 2671, 2044, 1584, 2003, 1067,
3722 1061, 1068, 1063, 1521, 1522, 2383, 2643, 2644, 1974, 2107,
3723 1615, 2112, 2113, 825, 1064, 1065, 1066, 1295, 501, 816,
3724 3282, 1386, 1096, 1296, 1999, 580, 980, 1938, 581, 1305,
3725 1756, 582, 3042, 2861, 1318, 1777, 2231, 526, 583, 584,
3726 510, 81, 82, 83, 695, 1407, 585, 1408, 1409, 914,
3727 84, 1497, 916, 917, 587, 653, 654, 1498, 1600, 1499,
3728 588, 632, 589, 1086, 668, 1087, 1089, 590, 1080, 2434,
3729 2068, 89, 90, 91, 107, 1172, 591, 640, 641, 592,
3730 94, 1130, 655, 660, 593, 594, 3038, 595, 2559, 1312,
3731 511, 503, 504, 818, 1252, 1298, 1253
3732};
3733
3734/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
3735 STATE-NUM. */
3736#define YYPACT_NINF -2827
3737static const int yypact[] =
3738{
3739 6176, -53, 533, -2827, -2827, 270, -53, 45492, 59426, -53,
3740 89, 2198, 47416, -2827, 279, 6036, -53, 50302, 66056, 472,
3741 258, 28285, 505, 50783, 50783, -2827, -2827, -2827, 59426, 50302,
3742 51264, -53, 296, 59907, -2827, -53, 30209, 47897, 330, -2827,
3743 50302, 26, 276, 51745, 50302, 2844, 620, 365, -2827, -2827,
3744 -2827, -2827, -2827, 106, -2827, -2827, -2827, -2827, -2827, -2827,
3745 -2827, -2827, -2827, -2827, -2827, -2827, -2827, 140, -2827, 156,
3746 141, 28285, 28285, 2076, 312, -2827, -2827, -2827, -2827, -2827,
3747 -2827, -2827, -2827, -2827, 510, -2827, -2827, -2827, -2827, -2827,
3748 -2827, -2827, -2827, -2827, 29728, -2827, -2827, -2827, -2827, -2827,
3749 -2827, 52226, 50302, 52707, 48378, 53188, -2827, 986, -2827, 163,
3750 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3751 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3752 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3753 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3754 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3755 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3756 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3757 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3758 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3759 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3760 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3761 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, 164, -2827,
3762 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3763 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3764 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3765 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3766 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3767 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, 177, -2827,
3768 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3769 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3770 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3771 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3772 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3773 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3774 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3775 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3776 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3777 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3778 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3779 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3780 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3781 -2827, -2827, -2827, -2827, -2827, -2827, -2827, 178, -2827, -2827,
3782 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3783 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3784 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3785 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3786 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3787 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3788 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, 539, -2827,
3789 499, -2827, 181, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3790 -2827, -2827, -2827, -2827, 2844, 50302, 532, 649, 662, 53669,
3791 -2827, -2827, 50302, -2827, -2827, 87, 826, -2827, -2827, 48859,
3792 -2827, -2827, -2827, 896, 1084, 866, -2827, -2827, 702, -2827,
3793 102, -2827, -2827, 734, 697, -2827, -2827, -2827, -2827, -2827,
3794 -2827, -2827, -2827, 783, -2827, 63274, -2827, 60388, 54150, 54631,
3795 -2827, 670, 66073, 26838, -2827, -2827, -2827, -2827, -2827, -2827,
3796 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3797 -2827, -2827, -2827, -2827, -2827, -2827, 510, -2827, -2827, -2827,
3798 -2827, -2827, -2827, -2827, -2827, -2827, 50783, 59426, 50783, 682,
3799 686, 1014, 721, 28766, 731, 30691, 750, 753, 1092, 764,
3800 786, 795, 810, 276, 27320, 775, 539, -2827, 55112, 55112,
3801 -71, 2998, -2827, 55112, 55593, -2827, 827, -2827, 986, -2827,
3802 -2827, -2827, -2827, -2827, -90, 834, -2827, 864, 1134, -2827,
3803 -2827, -2827, 854, -2827, -2827, 1076, 18347, 18347, 60869, 60869,
3804 986, 60869, 877, -2827, -2827, 103, -2827, -2827, -2827, 2076,
3805 868, 539, -2827, -2827, 47897, -2827, -2827, 290, 1216, 18347,
3806 50302, 888, -2827, 904, 888, 897, 913, -2827, 6176, 1229,
3807 1132, 47897, 307, 307, 1390, 307, 716, 895, 2665, 2892,
3808 -2827, 1791, -2827, 972, -2827, 50302, 1073, 1002, 1271, -2827,
3809 868, 1348, 910, 1160, 1355, 5849, 1368, 1270, 1376, 1299,
3810 1468, 18347, 43087, 539, -2827, 9764, 1028, 1033, -2827, -2827,
3811 -2827, -2827, 749, 1268, -2827, 1498, -2827, -2827, 1097, 56074,
3812 56555, 57036, 57517, 1486, -2827, -2827, 1430, -2827, -2827, -2827,
3813 1114, -2827, -2827, -2827, 170, -2827, -2827, -2827, -2827, -2827,
3814 -2827, 1135, -2827, 1135, 1135, -2827, -2827, -2827, -2827, 1088,
3815 1088, 1276, 1093, -2827, -2827, -2827, 1451, -2827, -2827, -2827,
3816 -2827, -2827, -2827, -2827, -2827, -2827, -2827, 1101, 830, -2827,
3817 1135, -2827, 1088, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3818 65619, -2827, -2827, -2827, -2827, 628, 655, -2827, 1104, -2827,
3819 -2827, 86, 1119, -2827, 1586, -2827, -2827, -2827, -2827, -2827,
3820 -2827, -2827, -2827, 1121, -2827, 4507, 1088, -2827, -2827, 1493,
3821 1141, 162, -2827, 1506, 169, -2827, 1511, 1385, 18347, -2827,
3822 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3823 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3824 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3825 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3826 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3827 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3828 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, 276,
3829 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3830 -2827, -2827, -2827, -2827, 512, -2827, -2827, 40435, -2827, -2827,
3831 66073, 1257, 1191, -2827, -2827, 18347, 18347, 1197, 2525, 55112,
3832 55593, 18347, 50302, -2827, 18347, 21889, 1199, 18347, 18347, 10270,
3833 18347, 25876, 55112, 2998, 1188, -2827, 652, 50302, 1201, -2827,
3834 1296, 1296, 296, 28285, 1500, -2827, 1561, 1497, 1436, -2827,
3835 28285, 1436, 1946, 1230, 1517, 1436, -2827, 707, 1524, 1296,
3836 31172, 1249, -2827, 1296, 1457, -2827, -2827, 40435, 12800, 63740,
3837 1713, -2827, 1525, 59426, 1256, -2827, -2827, -2827, -2827, -2827,
3838 -2827, 567, 1754, 159, 1755, 18347, 159, 159, 1262, 182,
3839 182, -2827, 1266, -2827, 186, 1267, 1269, 1763, 1766, 161,
3840 116, 830, 159, 18347, -2827, 182, 1273, 1774, 1283, 1781,
3841 188, 216, -2827, 192, 18347, 18347, 18347, 1644, 18347, 9258,
3842 1778, 43087, -2827, 50302, 578, -2827, 539, 1293, 986, -2827,
3843 -2827, -2827, -2827, -2827, -2827, -2827, -2827, 172, 7077, -2827,
3844 -2827, -2827, 1331, -2827, -2827, -2827, -2827, 1503, 18347, -2827,
3845 -2827, 1294, 1500, -2827, 207, -2827, -2827, 1500, -2827, -2827,
3846 -2827, -2827, -2827, 226, 1695, 39473, 39954, 59426, 539, 61350,
3847 -2827, -2827, -2827, -2827, -2827, -2827, -2827, 546, -2827, 510,
3848 41988, 1297, 1301, 888, 50302, 50302, 1760, -2827, -2827, -2827,
3849 47897, 200, 1589, 1431, -2827, -2827, 2076, 2076, 13793, 793,
3850 520, 923, 14299, 18853, 1646, 1526, 385, 444, 1647, -2827,
3851 1533, 1762, 21889, 18347, 18347, 716, 895, 18347, 904, -2827,
3852 -2827, -2827, 1584, 50302, 45973, 482, 503, 1323, 1408, 1325,
3853 5, 1737, -2827, 1326, -2827, 1415, 50302, 65619, 176, -2827,
3854 1776, 176, 176, 667, 1789, 1421, 357, 1591, 6, 453,
3855 1326, 1714, -2827, 47897, 197, 556, 1326, 50302, 1424, 602,
3856 1326, 59426, 1191, 37260, 1350, -2827, -2827, -2827, -2827, -2827,
3857 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3858 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3859 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3860 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3861 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3862 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3863 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3864 -2827, -2827, -2827, -2827, -2827, 134, 12800, -2827, 1203, 1213,
3865 1224, 360, 122, 1277, 1313, 12800, 1327, 1396, 148, 1413,
3866 1513, 1546, 1549, 1582, 1610, 1622, 1633, 145, 1635, 1637,
3867 1643, 1648, 1651, 1657, -2827, 1663, 158, 1666, 214, 12800,
3868 1680, -2827, 41988, 10, -2827, -2827, 1692, 160, -2827, 1447,
3869 59426, 1402, 50302, 733, 1719, 1775, 64206, 50302, 1605, 1714,
3870 1608, 1377, 1841, 1615, 1033, 1616, 1387, -2827, 61831, 1891,
3871 -2827, -2827, -2827, -2827, -2827, -2827, 1395, -2827, -2827, 18347,
3872 -2827, -2827, -2827, 1887, -2827, 63740, 63740, 1135, 1135, -2827,
3873 -2827, 1858, 1485, 1487, 1887, -2827, 1887, -2827, 59426, -2827,
3874 -2827, 63740, -2827, 59426, 1405, 1409, 1887, -2827, -2827, -2827,
3875 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3876 -2827, -2827, -2827, 1887, 1495, -2827, 1496, 1499, 1502, -2827,
3877 -2827, -2827, -2827, -2827, 59426, 43087, 1407, 59426, -2827, 50302,
3878 50302, -2827, 50302, 59426, 1422, 66073, 44530, -2827, -2827, -2827,
3879 -2827, 560, 955, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3880 -2827, -2827, 986, 43087, -2827, 3128, 41033, 1426, 18347, -2827,
3881 -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, 1427,
3882 1747, -2827, -2827, 6838, 1428, 41073, 1435, 21889, 21889, 539,
3883 252, -2827, -2827, 21889, 1437, 45011, 40953, 1441, 1438, 41414,
3884 14805, 18347, 14805, 14805, 41454, -2827, 1439, 41494, 55112, 1425,
3885 50302, 49340, -2827, -2827, -2827, 18347, 18347, 2998, 49821, 1473,
3886 28285, -2827, 28285, -2827, 1730, 28285, -2827, -2827, 2324, -2827,
3887 28285, 1731, 18347, 28285, -2827, 28285, 1677, 1678, 1454, 28285,
3888 -2827, 50302, 1455, 50302, -2827, -2827, -2827, -2827, -2827, 1452,
3889 677, -2827, 689, 2381, -2827, -2827, 18347, 18347, -2827, 41988,
3890 1507, 18347, -2827, 18347, 6508, 35503, 15311, 6508, 1949, 1949,
3891 33577, -2827, 1627, 41534, -2827, 1475, 968, 7575, 1471, -2827,
3892 -2827, 1466, -2827, 1474, 1476, 38030, 129, 539, 539, 18347,
3893 -2827, 18347, 4109, 4109, -2827, 175, 63740, 18347, 18347, 18347,
3894 18347, 18347, 18347, 18347, 18347, 42606, 1563, 150, 59426, 18347,
3895 18347, 1480, 768, -2827, 18347, 1710, -2827, 1484, 18347, 1570,
3896 157, 18347, 18347, 18347, 18347, 18347, 18347, 18347, 18347, 18347,
3897 -2827, -2827, 24400, 219, 635, 1811, 1830, -54, 269, 18347,
3898 1822, 9764, -2827, 1822, -2827, -2827, -2827, -2827, -2827, 209,
3899 -2827, -2827, -2827, 1452, -2827, 1452, -2827, 59426, -2827, 50302,
3900 290, 46935, 18347, -2827, -2827, 1488, 1489, 1491, 1551, -2827,
3901 -2827, 50302, 34058, 1782, -2827, 363, 1494, -2827, 40913, 1744,
3902 1782, 2076, -2827, -2827, 22901, 1626, 1785, 1725, -2827, -2827,
3903 1705, 1707, -2827, 1509, 42131, 19359, 19359, -2827, 1351, 41988,
3904 1353, -2827, -2827, -2827, -2827, -2827, -2827, 93, -2827, 50302,
3905 39, 31653, -2827, 1514, 58, -2827, 1246, 1839, 1806, 1646,
3906 444, 1520, -2827, -2827, 1416, 1528, 62312, 50302, 1803, 1758,
3907 1812, 317, 63740, -2827, -2827, -2827, -2827, 50302, 59426, 57998,
3908 62793, 43568, 50302, 43087, -2827, -2827, -2827, -2827, 50302, 832,
3909 50302, 6729, -2827, -2827, -2827, 176, -2827, -2827, -2827, -2827,
3910 -2827, 59426, 50302, -2827, -2827, 176, 59426, 50302, 176, -2827,
3911 1656, 50302, 50302, 50302, 50302, 1973, 50302, 50302, -2827, -2827,
3912 -2827, 18347, 40, 40, 1746, 10776, 114, -2827, 18347, 18347,
3913 1715, -2827, -2827, 693, 1757, 149, -2827, 1587, 50302, 50302,
3914 50302, 50302, 50302, 948, -2827, -2827, -2827, -2827, -2827, 1538,
3915 -2827, 1540, 1895, -2827, 1714, 1896, 46454, 701, 3435, 1900,
3916 1588, 1901, 11282, 2011, 1786, -2827, -2827, 1772, -2827, 18347,
3917 1554, 1555, 86, 732, -2827, -2827, 1559, 1409, 1575, 1576,
3918 1562, 1564, 63740, 744, -2827, 780, 1887, 166, 1565, 1566,
3919 1456, 1189, 470, 1352, 162, -2827, 43087, -2827, 169, -2827,
3920 1780, 154, -2827, -2827, -2827, -2827, -2827, -2827, -2827, 1191,
3921 27804, -2827, 811, -2827, -2827, 2024, 986, 2024, 598, -2827,
3922 -2827, 2024, -2827, 2009, 2024, -2827, 63740, -2827, 7862, -2827,
3923 18347, 18347, -2827, 18347, 1902, -2827, 2060, 2060, 63740, 21889,
3924 21889, 21889, 21889, 21889, 21889, 699, 1273, 21889, 21889, 21889,
3925 21889, 21889, 21889, 21889, 21889, 21889, 23407, 319, -2827, -2827,
3926 845, 2041, 18347, 18347, 1921, 1902, 18347, -2827, 63740, 1592,
3927 -2827, 1595, 1596, 18347, -2827, 63740, -2827, 50302, 1603, 0,
3928 -15, -2827, 1585, 1611, -2827, 1500, -2827, 760, 790, 50302,
3929 3570, 3699, 5281, -2827, -2827, 18347, 1911, 2324, 2324, 28285,
3930 -2827, 18347, 1612, -2827, -2827, 28285, 1926, -2827, 2324, -2827,
3931 -2827, 32134, 2324, 63740, 863, -2827, 50302, 63740, 867, 40435,
3932 -2827, 12800, -2827, 63740, -2827, -2827, -2827, -2827, -2827, -2827,
3933 1604, 1609, 18347, 66, -2827, 7980, 6652, -2827, 1613, -2827,
3934 1607, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
3935 -2827, -2827, -2827, -2827, -2827, -2827, 1617, -2827, 1628, -2827,
3936 1630, 50302, -2827, 19865, -2827, 59426, -2827, -2827, 18347, 18347,
3937 50302, -2827, 1644, -2827, 1631, 35992, -2827, -2827, -2827, 187,
3938 335, 8225, 269, 2903, 2903, 2903, 6508, -2827, -2827, -2827,
3939 1652, -2827, 21889, 21889, -2827, 5840, 3464, 9258, -2827, -2827,
3940 1967, -2827, 806, -2827, 1639, -2827, -2827, 3961, -2827, 35503,
3941 37451, 18347, 198, -2827, 18347, 1480, 18347, 1697, 2903, 2903,
3942 2903, 381, 381, 187, 187, 187, 335, 269, -2827, -2827,
3943 -2827, 1640, 18347, 43087, -2827, 1641, 1642, 1992, 1283, 18347,
3944 -2827, -2827, 28285, 1473, 10, 1473, 1887, 4109, -2827, 904,
3945 -2827, 904, -2827, 41988, 50302, -2827, 2381, 28285, 1685, 2105,
3946 2087, 59426, -2827, -2827, 1649, 1822, 1659, -2827, -2827, 1665,
3947 18347, 2107, 1665, -2827, 1782, -30, 1868, 985, 985, 1351,
3948 1869, -2827, -2827, 1716, -2827, -2827, -2827, 18347, 11788, 1364,
3949 -2827, 1366, -2827, -2827, -2827, -2827, -2827, 1650, -2827, 1918,
3950 -2827, 50302, -2827, -2827, 21889, 2099, 18347, 32615, 2101, 1904,
3951 -2827, -2827, -2827, 1748, 1326, 18347, 1899, -2827, 130, 1667,
3952 2022, 429, 1974, 59426, -2827, 280, 313, -2827, 942, 2025,
3953 154, 2026, 154, 43087, 43087, 43087, 873, -2827, -2827, -2827,
3954 986, -2827, 395, 898, -2827, -2827, -2827, -2827, 1761, 608,
3955 1326, 1714, -2827, -2827, -2827, -2827, -2827, -2827, -2827, 253,
3956 648, 1326, 1765, -2827, 1767, -2827, 1769, 659, 1326, -2827,
3957 -2827, 41988, 1679, 114, 114, 114, 12800, -2827, 1908, 1912,
3958 1693, 41988, 41988, -2827, 174, -2827, 59426, -2827, -2827, -2827,
3959 1715, 1775, 50302, 1714, 1706, 2153, 1033, 1387, -2827, 1862,
3960 21, 171, -2827, 59426, 50302, 50302, 50302, 58479, -2827, -2827,
3961 -2827, 1720, 1703, -2827, -28, 1931, 1933, 50302, 1764, 50302,
3962 1325, 2187, 50302, -2827, 919, 15817, 2084, 50302, 1732, -2827,
3963 -2827, -2827, -2827, 1887, -2827, -2827, -92, -92, -2827, -2827,
3964 59426, -2827, 1740, -2827, 1741, -2827, -2827, -2827, -2827, -2827,
3965 -2827, -2827, -2827, -2827, -2827, -2827, -2827, 59426, -2827, -2827,
3966 -2827, 44049, -2827, -2827, -2827, -2827, 43087, -2827, 986, -2827,
3967 986, 1970, 59426, 38511, 986, 38992, 986, 1745, -2827, 41988,
3968 36014, 41988, 1921, -2827, 230, 2060, 717, 717, 717, 4899,
3969 2080, 220, 1749, 717, 717, 717, 387, 387, 230, 230,
3970 230, 2060, 319, 827, 45011, 1751, -2827, 41988, 41988, -2827,
3971 -2827, 1752, -2827, -2827, -2827, -2827, 1753, 1756, -2827, -2827,
3972 -2827, -2827, -2827, -2827, 59426, 999, 1473, 330, 330, 330,
3973 330, -2827, 50302, 50302, 50302, 41988, 2189, 2072, -2827, -2827,
3974 2324, 41988, 50302, -2827, 25391, -2827, 50302, -2827, 2093, -2827,
3975 2178, -2827, 50302, 920, -2827, -2827, -2827, -2827, -2827, 41822,
3976 18347, -2827, 2119, -2827, 18347, 18347, -2827, 35503, -2827, -2827,
3977 1759, 9258, 41844, -2827, 2069, 36061, 41988, -2827, 1627, -2827,
3978 4109, 18347, 538, 1397, 18347, 1770, 18347, 2096, -2827, -2827,
3979 1768, -2827, -2827, 63740, 18347, 1773, 4137, 21889, 21889, 4833,
3980 -2827, 5483, 18347, 9258, -2827, 37307, 1771, 1777, 1746, 16323,
3981 -2827, 1983, 1790, -2827, 1911, 114, 1911, 1779, -2827, -2827,
3982 -2827, 1795, -2827, 18347, 1916, 59426, 303, 3051, 933, -2827,
3983 539, 34058, 1685, 18347, 641, -2827, -2827, 1797, -2827, 1665,
3984 -2827, -2827, -2827, 1993, -2827, -2827, -2827, 50302, -2827, 1800,
3985 -2827, 31653, 2102, 9258, -2827, 31653, 50302, 50302, 36116, 2131,
3986 -2827, 59426, 59426, 59426, -2827, 59426, 1804, 1808, 796, 1810,
3987 331, -2827, 1828, 796, 2115, 301, 1325, 357, 3313, 8,
3988 -2827, -2827, -2827, 1884, 50302, -2827, 59426, -2827, -2827, -2827,
3989 -2827, -2827, 43568, -2827, -2827, 35021, 43087, -2827, 43087, 50302,
3990 50302, 50302, 50302, 50302, 50302, 50302, 50302, 50302, 50302, -2827,
3991 1815, 1818, 1820, 1746, -2827, -2827, -2827, -2827, -2827, -2827,
3992 453, -2827, 174, 1813, -2827, 46454, 2844, 1588, 2272, 1775,
3993 653, 58945, -2827, 1821, 1819, 946, 1714, 1824, 2286, -2827,
3994 701, 46454, -2827, -2827, -2827, 2243, -2827, 670, 185, -2827,
3995 1033, -2827, 2844, 1387, -2827, 2844, 41988, 59426, 1886, -2827,
3996 1409, 1832, -2827, -2827, 1409, 63740, 1409, -2827, -2827, 154,
3997 951, -2827, -2827, -2827, -2827, -2827, 59426, 1825, -2827, 1825,
3998 -2827, -2827, 1825, -2827, -2827, -2827, -2827, 21889, 2165, 1833,
3999 63740, -2827, -2827, 50302, -2827, -2827, -2827, 952, 1834, 1911,
4000 50302, 50302, 50302, 50302, -2827, -2827, -2827, 16829, 18347, 1873,
4001 -2827, 1836, 13306, 2149, -2827, 24906, -2827, 213, 1842, 32134,
4002 59426, -2827, -2827, -2827, 18347, 41988, -2827, 41988, -2827, -2827,
4003 -2827, 7205, -2827, 1845, 1844, 59426, 18347, -2827, -2827, -2827,
4004 742, 18347, 18347, 5840, -2827, 42057, 18347, 63740, 956, 5840,
4005 221, 18347, 1796, 3068, 18347, 18347, 5673, 36306, -2827, 18347,
4006 12294, -2827, 1850, 18347, 36615, 34539, -2827, 28285, 2072, 1851,
4007 2072, 986, -2827, 41988, 18347, -2827, -2827, -2827, -2827, 1905,
4008 -22, 30209, 2073, -2827, 1865, 59426, -2827, 1916, 41988, -2827,
4009 -2827, 35503, -2827, -2827, -2827, -2827, -2827, 2297, 2182, 1857,
4010 1859, -2827, 1300, -2827, -2827, 59426, 1861, -2827, 1863, 796,
4011 -2827, 59426, 1897, -2827, 254, 2166, 81, -2827, 18347, -2827,
4012 2256, 2333, 1828, 1875, 59426, 50302, 21889, -2827, 665, 190,
4013 -2827, 2156, 50302, 1897, 2292, -2827, -2827, -2827, 331, -2827,
4014 2193, 2113, -2827, 176, -2827, 18347, 331, 2114, 228, 59426,
4015 -2827, -2827, 1574, -2827, 63740, 154, 154, -2827, 1890, 1913,
4016 1914, 1915, 1917, 1919, 1920, 1922, 1923, 1925, 1927, -2827,
4017 1928, 1929, 1930, 1932, 1935, 1936, 1937, 1939, 1101, 1940,
4018 -2827, 1941, 1797, 1943, 1947, 1950, 1952, 1953, 64672, 1955,
4019 1958, 1960, 1961, 1104, 1962, 560, 955, -2827, -2827, -2827,
4020 -2827, -2827, -2827, 1141, 1963, -2827, 1909, -2827, -2827, -2827,
4021 1972, -2827, 1977, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
4022 -2827, 114, 1191, 91, 59426, 1898, 1764, 2362, 17335, 809,
4023 2137, 1910, -2827, 986, 1588, -2827, 46454, 3678, 212, 1933,
4024 -2827, 173, 1764, -2827, 2323, 1588, 1986, 2395, -2827, 2169,
4025 59426, 1966, -2827, -2827, -2827, -2827, 44049, 1825, 5155, 21889,
4026 63740, 960, 970, -2827, 2459, 2127, 2072, -2827, -2827, -2827,
4027 -2827, -2827, 1971, -36, 1975, 8752, 1968, -2827, -2827, -2827,
4028 -2827, -2827, -2827, 41988, 41988, 59426, 2147, -2827, -2827, 1979,
4029 1978, 33096, 2425, 1985, -2827, 12800, -2827, 2294, -2827, 26357,
4030 -2827, 41988, 18347, -2827, -2827, 37362, 2302, 5840, 5840, 42057,
4031 976, -2827, 5840, 18347, 18347, 5840, 5840, 18347, -2827, 1991,
4032 -2827, 980, -2827, 36637, -2827, 65138, -2827, -2827, 1873, 986,
4033 1873, -2827, 1987, -2827, -2827, -2827, 2046, -2827, -2827, 982,
4034 2405, 1916, 18347, -2827, -2827, 2001, 31653, -2827, -2827, -2827,
4035 -2827, 31653, 796, -2827, 2168, 1897, 2005, -2827, -2827, -2827,
4036 -2827, -2827, -2827, 36684, -2827, 38, 18347, -2827, 837, 4899,
4037 -2827, -2827, -2827, -2827, 1897, 1033, -2827, 50302, 2466, 2359,
4038 -2827, -2827, 41988, -2827, -2827, 1887, 1887, -2827, -2827, 2178,
4039 -2827, -2827, -2827, -2827, 1141, 272, 35021, 50302, 50302, 2008,
4040 -2827, -2827, 453, 2390, 989, 701, -2827, 2844, 2844, 41988,
4041 50302, 2364, 46454, -2827, 2474, 2014, 50302, 1764, 333, 333,
4042 -2827, 2159, -2827, 2160, -2827, -2827, 2480, 268, -2827, 17841,
4043 50302, -2827, -2827, 29247, -2827, 5155, 994, -2827, -2827, 2020,
4044 2023, -2827, 1873, 18347, 2031, 18347, -2827, 20371, 2482, 2021,
4045 -2827, 18347, 2090, 23913, -2827, 18347, -2827, 50302, 55112, 40,
4046 2033, 55112, -2827, -2827, -2827, 18347, -2827, 5840, 5840, 5840,
4047 -2827, -2827, -2827, -2827, 2225, 2147, -2827, 2147, 18347, 2844,
4048 539, 3774, 59426, -18, -2827, 41988, -2827, -2827, -2827, 50302,
4049 -2827, 43087, -2827, 796, -76, 2035, 18347, 36739, 2264, -2827,
4050 -2827, 2296, -2827, 2352, -2827, 2098, 498, 2120, -2827, -2827,
4051 -2827, -2827, 1191, 986, 1588, 1933, 1986, -2827, 2042, 50302,
4052 2844, 701, 670, -2827, -2827, -2827, -2827, -2827, -2827, -2827,
4053 -2827, -2827, -2827, -2827, -2827, -2827, 2844, 2469, 2261, 2483,
4054 2844, 41988, 1886, 18347, 79, -2827, 1009, 2476, -2827, -2827,
4055 2547, 2147, 2061, 20371, 2062, -2827, 2064, 59426, 41988, 2202,
4056 -2827, -2827, 2065, -2827, -2827, 114, 18347, -2827, 37552, 2506,
4057 1746, 2090, 2090, -2827, -22, -2827, -2827, 2478, 29247, 2438,
4058 1033, 796, 2081, 1013, -2827, -2827, -2827, -2827, -2827, 1714,
4059 -2827, 36929, 2307, 132, 2291, 2035, 18347, -2827, 2148, -2827,
4060 -2827, -2827, 2537, -2827, -2827, 46454, 2078, 1986, 1933, 1764,
4061 1986, 2295, -2827, 2298, -2827, 2082, 37238, 59426, 59426, 1588,
4062 29247, 59426, 2083, 2090, -2827, 2085, -2827, -2827, -2827, 49340,
4063 -2827, 2088, 2091, -2827, 18347, 528, -2827, -2827, 2134, 50302,
4064 1017, -2, 2296, 35021, -2827, 43087, 950, -76, 2389, -2827,
4065 -2827, -2827, -2827, 88, 2309, -2827, 2315, -2827, 41988, -2827,
4066 2844, 46454, -2827, -2827, -2827, -2827, -2827, -2827, 29247, 2476,
4067 -2827, 363, -2827, 1473, -2827, 363, -2827, -2827, -2827, -2827,
4068 986, -2827, 1441, 20877, 20877, 2103, 2844, -2827, 1473, -2827,
4069 2230, 2291, -2827, -2827, -2827, -2827, -2827, 153, 153, 2490,
4070 -2827, 2173, -2827, 1986, 1021, 59426, 1665, -2827, 1665, 22395,
4071 2257, 195, 40993, -2827, -2827, -2827, -2827, -2827, -2827, 34058,
4072 -2827, -2827, 2591, -2827, 239, -2827, -2827, -2827, 1588, 363,
4073 -2827, -2827, 2581, -2827, -2827, -2827, -2827, -2827, 1473, 796,
4074 -2827, -2827, -2827, 1473, 1665, 21383, -2827, -2827, -2827, -2827
4075};
4076
4077/* YYPGOTO[NTERM-NUM]. */
4078static const yytype_int16 yypgoto[] =
4079{
4080 -2827, -2827, -2827, 1942, 92, -2827, -2827, 133, -2827, 922,
4081 -2827, 121, -646, 481, -2827, 95, 2799, 2201, 2773, 196,
4082 -494, -677, -1294, -925, 97, -1088, 12, -2827, -2827, -2827,
4083 -2827, -2827, -468, 189, -2827, -2827, -604, -2457, -556, -2827,
4084 -2814, -2768, -2827, -2827, -694, -2826, -1966, 99, -2827, -2827,
4085 100, 11, -2011, 101, -2448, 104, -699, -1133, -873, -1146,
4086 -2827, -121, 107, 1360, -2827, 13, -2088, -2745, -567, -2827,
4087 -668, -2827, -337, -2827, -615, -2827, -840, -623, -655, -2697,
4088 -1098, -2827, 1518, -378, -2827, 525, -2827, -2436, -2827, -2827,
4089 515, -2827, -1078, -2827, -2152, 138, -594, -2469, -2446, -2066,
4090 -686, 191, -596, 167, -2035, -1152, -2827, 541, -2827, -581,
4091 -2827, -714, -1925, 110, -2827, -2827, 1290, -797, -2827, 1343,
4092 111, 1378, -2008, 16, 28, -2827, -2827, -2827, -2827, -785,
4093 479, -1149, -2827, 406, -2827, -2827, -2827, -2827, -183, 165,
4094 -2827, 9, 1558, -43, -21, -2827, -13, -2827, -2827, -2827,
4095 571, -2827, -2827, 20, 64, 1597, -982, -2827, -1447, 650,
4096 -2827, 1738, 1742, -2116, -661, -68, -2827, 612, -1589, -2040,
4097 -540, 1025, 1580, 1583, 368, -2804, -2827, -539, -2827, 180,
4098 -2827, -2827, 607, 1072, -1504, -1503, -2827, -2075, -2827, -453,
4099 -346, -2827, -2827, -2827, -2827, -2827, -2397, -2108, -471, 1043,
4100 -2827, 1599, -2827, -2827, -2827, -2827, 117, -1438, 2692, 647,
4101 137, -2827, -2827, -2827, -2827, 90, -2827, 797, -190, -2827,
4102 2108, -537, -618, 1794, -341, -209, -1600, 29, 2122, 412,
4103 -2827, -2827, 414, -2000, -1439, 369, -267, 1380, -2827, -2827,
4104 -548, -1268, -768, -2827, -2827, 407, 611, -2827, -2827, -2827,
4105 2448, 2465, -2827, -2827, 3259, 3577, -2827, -637, 3641, -498,
4106 -759, 1807, -851, 1809, -857, -844, -847, 1814, 1816, -1464,
4107 4372, 338, 4140, -2132, -2827, 183, -2827, -1410, 215, -2827,
4108 -2827, -2827, -2827, -2183, -2827, -433, -2827, -430, -2827, -2827,
4109 -2827, -555, -2403, -2827, 4215, 758, -2827, -2827, 366, -2827,
4110 -2827, -2827, -2827, -1469, -2827, 5521, 666, -2827, -1929, -2827,
4111 -2827, -927, -644, -1033, -944, -1219, -1296, -2827, -2827, -2827,
4112 -2827, -2827, -2827, -989, -1720, -228, 715, -2827, -2827, 800,
4113 -2827, -2827, -2827, -1673, -2010, -2827, -2827, -2827, 728, 1285,
4114 68, -625, -1538, -2827, 771, -2262, -2827, -2827, 374, -2827,
4115 -475, -1020, -2305, 1263, 22, -2827, 3434, -2409, -2827, -2827,
4116 -554, -2537, -1081, -2827, -2827, 112, -2827, 688, 113, -1609,
4117 -2827, 18, -2827, -396, -2827, -2827, -2449, -2827, 115, 118,
4118 2170, -2827, -2827, -2827, -454, -2827, -490, -489, -2827, -2827,
4119 32, -885, 1367, -2827, 120, 660, -2827, 836, -2827, 676,
4120 123, 105, 124, 1158, -2827, -2827, -2827, 33, -530, 327,
4121 -2827, 1159, -2827, -2827, 2757, -2827, 126, -2827, -2827, 127,
4122 -2827, -2827, 2748, 2685, 128, 19, -2809, 131, -2610, -1624,
4123 -7, -2827, -2827, -2827, -546, -2827, -2419
4124};
4125
4126/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
4127 positive, shift that token. If negative, reduce the rule which
4128 number is the opposite. If zero, do what YYDEFACT says.
4129 If YYTABLE_NINF, syntax error. */
4130#define YYTABLE_NINF -1948
4131static const yytype_int16 yytable[] =
4132{
4133 502, 687, 676, 822, 713, 969, 1161, 803, 1303, 66,
4134 1447, 56, 52, 61, 502, 1719, 64, 919, 78, 96,
4135 73, 1062, 1341, 1729, 1388, 1092, 1718, 1391, 65, 500,
4136 1125, 1301, 1410, 88, 1500, 1871, 1254, 1347, 73, 2082,
4137 1783, 1694, 2450, 500, 1404, 658, 1967, 1672, 1690, 2483,
4138 586, 2051, 691, 2424, 1928, 2426, 1684, 815, 2182, 1160,
4139 692, 1166, 2440, 1170, 502, 502, 662, 2520, 2521, 2522,
4140 1734, 1424, 830, 1787, 913, 1616, 1723, 1422, 1986, 1987,
4141 1590, 1426, 951, 824, 1425, 1593, 2815, 972, 2837, 2835,
4142 2405, 1805, 49, 500, 500, 50, 2813, 51, 2476, 54,
4143 55, 57, 1528, 699, 58, 2439, 1530, 59, 674, 2852,
4144 62, 63, 76, 77, 2849, 79, 1327, 1328, 80, 2642,
4145 85, -1795, 946, 86, 87, 2205, 92, 93, 95, 633,
4146 2531, 97, 920, 707, -1182, -1921, -1921, 2201, 619, -1201,
4147 -486, -489, 2102, 1339, 513, 2105, 1114, -1198, -1198, 1349,
4148 -1795, 1103, 3030, -1786, 2319, 2055, 2706, 3227, -1935, -1935,
4149 2711, -1926, -1926, -1803, -815, -1202, -820, 1078, -1201, -1786,
4150 -820, -1944, -1944, -1199, -1199, 989, 629, 629, 2545, 629,
4151 1397, 989, -1795, -1803, 1394, 989, -1202, -782, 619, 619,
4152 499, -795, 2534, -823, 666, 2001, 2971, -810, 1546, 2538,
4153 1598, 2370, 1675, 1548, 625, -1048, 3307, 740, 688, 689,
4154 2022, -444, 629, -1048, 629, 1117, 3331, 1349, 629, 631,
4155 631, -823, 2626, 3105, 679, 1349, 3016, -1946, -1946, 1594,
4156 1397, 629, 1349, 1556, 2115, 989, 627, 989, -486, -489,
4157 2954, 1848, 3034, 2001, 1695, 1695, 1850, 2587, 2589, 2038,
4158 2592, -1069, 2552, -619, 625, 625, 726, 2039, 1321, -1069,
4159 988, 3118, 1347, 1848, 3187, 1558, 3299, 1849, 1850, 1254,
4160 1074, 1851, 1852, 1853, 2986, 1703, 3005, 1686, 1706, 1707,
4161 1546, 2938, 1417, 2940, 1547, 1548, 627, 627, 1721, 2331,
4162 2853, 3031, 815, 1081, 1678, 1322, 1780, 952, 684, 682,
4163 3260, 2188, 2048, 710, 2329, 2982, 3032, 2348, 2349, 2679,
4164 2108, 1431, 1732, 680, 1635, 1556, 2198, 3214, 2355, 3195,
4165 2479, 1733, 2359, 2720, 3, 4, 644, 727, 684, 2023,
4166 1848, 597, 3147, 1686, 1849, 1850, 2609, 1104, 21, 1595,
4167 3148, 3054, 2332, 3231, 2511, 2024, 1546, 1558, 2598, 2678,
4168 2025, 2680, 3351, -755, 728, 2487, 3344, 3028, 1636, 1327,
4169 1328, -210, 3250, 3134, 2729, 98, -210, 1717, 683, 2416,
4170 2968, 919, 1342, -1920, -1920, 1339, 106, 3246, 3247, 1702,
4171 3196, 1556, 2944, 2762, 1524, 533, 2719, 1619, 2026, 3004,
4172 2730, 729, 1546, 972, 1343, 3024, 1547, 1548, 1848, 977,
4173 3025, 1254, 1849, 1850, 2077, 951, 3036, 3029, 3272, 2702,
4174 978, 3275, 99, 1558, 2749, 2859, 3135, 3133, 3332, 2945,
4175 728, 2109, -486, -489, 645, 3136, 2541, 1556, 3213, 3287,
4176 1411, 919, 3261, 953, 1350, 1105, 2476, 3300, 2476, 771,
4177 1888, 1696, 1696, 2969, 684, 1854, 2049, 3137, 2639, 1680,
4178 2854, 2480, 3314, 2342, 2343, 2344, 1082, 729, 1083, 1558,
4179 2189, 1596, 2983, 3285, -639, 3315, 598, 3116, 1855, 1323,
4180 1516, 1638, 1693, 1888, 1941, 731, 25, 26, 27, 3052,
4181 2333, 815, 3188, 1671, -755, 2078, 2750, 2363, 1820, -486,
4182 -489, 3033, 730, 2626, 3094, 2330, 3100, 2599, 1667, 1668,
4183 2116, 3333, 1350, 3149, 3337, 1693, 1693, 741, 3302, 3345,
4184 1350, 3352, 2265, 3262, 1735, 3110, 2187, 1350, 3138, 1075,
4185 676, 3273, 927, 716, 1942, 2972, 667, 3308, 3334, 919,
4186 919, 3139, 1639, 3011, 2876, 2845, 1856, 2027, 3106, 32,
4187 1536, 731, 1110, 1620, 1931, 681, 988, 3339, 817, 1848,
4188 1967, 2867, 2002, 1849, 1850, 2857, 918, 1851, 1852, 1853,
4189 -1048, 2687, 1686, 1681, 1815, 2199, 2527, 2528, 2751, 989,
4190 1618, 676, 2596, 1687, 2651, 1599, 37, 711, 596, 3125,
4191 1324, 712, 73, 1686, 2102, 1669, 2453, 2815, 685, 514,
4192 1351, 2548, 1076, 2428, 1689, 915, 502, 2813, 2127, 2539,
4193 2407, 1110, -486, -489, 2040, 983, -1069, 502, 39, 3274,
4194 1325, 628, 2448, 1722, 2688, 1474, -1795, 1112, 1719, 42,
4195 677, 1481, 1511, 1126, 1513, 500, 2962, 711, 1770, -1182,
4196 1998, 712, 1736, 43, -1201, 1611, 500, 2442, 691, 502,
4197 502, -486, -489, -486, -489, -1795, 692, 2054, -1786, 815,
4198 3073, 3097, 1342, 1513, 1670, 2531, 3098, 44, -1803, -815,
4199 -1202, -820, 502, -1201, -1786, 2253, 1387, 1401, 1402, 2512,
4200 2269, 45, 1541, 1390, 1343, 3212, 1112, -1795, -1803, 1632,
4201 1342, -1202, 1329, 1579, 3219, 1524, 1333, 66, 1344, 56,
4202 52, 61, -810, 1079, 64, 3218, 78, 96, 73, 1085,
4203 1784, 1785, 1343, 924, 502, 1251, 65, 1591, 1297, 2056,
4204 1079, 88, 2187, 2905, 940, 3009, 1346, 1401, 1402, 2995,
4205 2996, 1365, 1366, 1113, 3140, 988, 1865, 3141, 1848, 2953,
4206 101, 942, 1849, 1850, 1093, 663, -1948, -1948, -1948, 1857,
4207 1858, 1859, 1084, 1860, 1861, 1862, 1863, 1864, 1865, 2417,
4208 2620, 943, 1479, 1546, 1855, 3085, 1484, 3087, 1760, 2132,
4209 1574, 1575, 1576, 1577, 1578, 1579, 2148, 3117, 2152, 2835,
4210 49, 1708, 2955, 50, 1806, 51, 669, 54, 55, 57,
4211 3283, 2980, 58, 817, 1633, 59, 625, 803, 62, 63,
4212 76, 77, 922, 79, 631, 1695, 80, 625, 85, 3014,
4213 2699, 86, 87, 1794, 92, 93, 95, 1880, 815, 97,
4214 1860, 1861, 1862, 1863, 1864, 1865, 693, 2133, 627, 1713,
4215 1558, 502, 1856, 2988, 976, 3025, 516, 2300, 2234, 627,
4216 822, 2993, 2162, 1807, 2815, 1369, 1370, 815, 815, 1811,
4217 1895, 1695, 2165, 1714, 2813, 2168, 1071, 1695, -210, -210,
4218 919, 1486, 1629, 815, 2981, 2292, 3293, 1916, 1134, 1254,
4219 1983, 1254, 1940, 1524, 1135, 2281, 2700, 2327, 678, 3161,
4220 2282, 2132, 1970, 1110, 1576, 1577, 1578, 1579, 1111, 3103,
4221 1862, 1863, 1864, 1865, 2505, 3294, 2320, 1695, 517, 3353,
4222 2610, 2611, 2612, 2613, 102, 1984, 2010, 2506, 1695, 1337,
4223 1338, 1487, 726, 103, 1871, 1813, 2327, 913, 1967, 2733,
4224 918, 2723, 1709, 2336, 1808, 1713, 3342, 1724, 502, 502,
4225 1710, 1886, 516, 2011, 502, 2283, 2649, 502, 502, 2473,
4226 502, 502, 502, 502, 2397, 2274, 1134, 3090, 104, 1714,
4227 73, 718, 1135, 719, 2258, 1536, 502, 2272, 1112, 2257,
4228 2736, 2380, 3359, 502, 2260, 2262, 2263, 2259, 2261, 1817,
4229 21, 2398, 694, 1727, 989, 1136, 2301, 2523, 2484, 2510,
4230 918, 1297, 817, 727, 2570, 500, 2302, 3181, 2429, 3182,
4231 2430, 2574, 500, 2576, 517, 2241, 676, 105, 502, 2451,
4232 1147, 629, 1696, 3208, 989, 1113, 2929, 2724, 1988, 715,
4233 1806, 1856, 2161, 1889, 2004, 722, 502, 2264, 1890, 2514,
4234 1148, 2266, 3191, 1395, 2268, 1719, 1396, 502, 502, 502,
4235 2518, 502, 502, 733, 1251, 1857, 1858, 1859, 2124, 1860,
4236 1861, 1862, 1863, 1864, 1865, 2012, 2448, 711, 1696, 2210,
4237 2013, 712, 2280, 1136, 1696, 2014, 2284, 1609, 815, 2286,
4238 1610, 502, -563, 3233, 1149, 2160, 1693, -563, 720, 3241,
4239 721, 2725, 520, 2726, 521, 1507, 1747, 45, 918, 918,
4240 619, 2183, 2184, 2185, 2171, 2485, 711, 619, 2399, 2178,
4241 1535, 2513, 736, 2400, 1696, 1623, 1624, 737, 1630, 524,
4242 1467, 2459, 1342, 692, 692, 1696, 692, 1478, 25, 26,
4243 27, 502, 1693, 1748, 3108, 502, 502, 2658, 1693, 2740,
4244 1302, -498, 738, 1403, 1343, 502, 502, 502, 1137, 1342,
4245 502, 516, 1528, 739, 1420, -498, 2553, -563, 1344, 1079,
4246 -498, 1464, 2561, 2042, 2136, 2238, 625, 2043, 1749, 742,
4247 817, 1343, 1747, 625, 1635, -1245, 1150, 744, 1693, 1490,
4248 711, 743, -1182, 1494, 712, 1346, 2741, 2163, 520, 1693,
4249 521, 32, 2166, 2224, 2872, 2225, 806, 1331, 627, 2337,
4250 828, 2338, 2742, 1403, -563, 627, 927, 1139, 1930, 1748,
4251 -498, 1931, 925, 517, 815, 524, 926, 1750, 1636, 1340,
4252 1932, 2015, 1720, 1933, 2195, 1151, 1137, 2196, 37, 2339,
4253 -498, 2340, 2016, 1152, -1948, -1948, -1948, 1140, 1860, 1861,
4254 1862, 1863, 1864, 1865, 3020, 1153, -1917, -1917, 2148, 2148,
4255 2148, 928, 1879, 1383, 1881, 1882, -1918, -1918, 1137, 2401,
4256 39, 931, 1967, 2242, 1540, 2209, 1933, -1919, -1919, 2325,
4257 2402, 42, 3349, 1542, 2248, 2249, 1154, -498, 2250, 1297,
4258 934, 1138, 1637, 935, 988, 1139, -498, 1848, 1297, 936,
4259 1592, 1849, 1850, 1750, 937, 1851, 1852, 1853, 945, 1597,
4260 2743, 1403, 1403, 1440, 919, 532, 3340, 1141, 3341, 2744,
4261 561, 2251, 1297, 3317, 2250, 1140, 938, 2486, 2287, 2487,
4262 -1922, -1922, 635, 45, 815, 939, 1134, 1156, 3328, 817,
4263 2293, 1638, 1135, 2498, 2871, 2500, 673, 673, 1069, 1070,
4264 940, 1072, 2275, 974, 3358, 2276, 1754, 2488, 1755, 2716,
4265 1157, 2718, 502, 1757, 1758, 1134, -1923, -1923, 817, 817,
4266 2321, 1135, 2621, 1107, 979, 1109, 2628, 2326, 815, 1159,
4267 -1924, -1924, 2760, 2495, 817, 2497, 2313, 981, 3356, 2314,
4268 815, 1820, 982, 3357, 2753, 1141, 983, 520, 984, 521,
4269 1073, 2920, 1639, 2395, 2361, 703, 108, 2362, 2364, 512,
4270 1077, 2362, 1359, 1360, 2501, 2360, 560, 2502, 1251, 2360,
4271 815, 523, 1088, 919, 524, 2366, 2582, 815, 2752, 918,
4272 2761, 643, 1094, 2425, 2717, 656, 1100, 2832, 1097, 2507,
4273 -498, 806, 2508, 1136, 1095, 988, 1251, 1331, 1848, -1925,
4274 -1925, 502, 1849, 1850, 1098, 73, 1851, 1852, 1853, 1101,
4275 2564, 2633, 1340, 1931, 2362, 815, -1927, -1927, 915, 815,
4276 502, 502, 1136, 2652, 2694, 815, 502, 2695, 502, 2117,
4277 1365, 1366, 1134, 502, 502, 502, 502, 2844, 1135, 1108,
4278 2196, 3304, 2865, 2873, 1528, 2866, 2874, 2921, 502, 502,
4279 1933, 3047, 1855, 502, 1933, 502, 711, 500, 502, 1097,
4280 712, 3048, 1127, 502, 2362, 502, 502, 3076, 502, 1129,
4281 1933, 3081, 502, 3091, 1931, 1131, 3092, 2572, 2573, 1132,
4282 3124, 2462, 500, 2196, 500, 3158, 1133, 500, 1933, 502,
4283 502, 1145, 500, 1146, 502, 500, 502, 500, 1171, 502,
4284 3229, 500, 1937, 3230, 3254, 1934, 1163, 3255, 3298, 1935,
4285 2537, 3230, 3338, 73, 1167, 3230, -1928, -1928, 1251, 1299,
4286 1856, 1936, 502, 1300, 502, 1304, 1939, 2448, 1306, 817,
4287 502, 502, 502, 502, 502, 502, 502, 502, 1251, 1136,
4288 2051, 1307, 502, 502, 1369, 1370, 1137, 502, 67, -1929,
4289 -1929, 502, -1930, -1930, 502, 502, 502, 502, 502, 502,
4290 502, 502, 502, 1317, 3046, 502, 67, 2148, 1319, 618,
4291 1320, 2816, 502, 2152, 1297, 1137, 1325, 619, 1329, 619,
4292 806, 1332, 619, 1333, 67, -1931, -1931, 619, 1471, 1335,
4293 619, 1336, 619, 675, 1348, 502, 619, 1907, 1819, 1908,
4294 2084, 1164, 1910, 1855, 1147, 1139, 2760, 1914, 692, 1353,
4295 1917, 1356, 1918, -1932, -1932, 1354, 1922, 502, 625, 618,
4296 618, 690, 2808, 3157, 1148, -1933, -1933, 2963, 502, 502,
4297 1168, 1384, 1085, 1385, 1139, 1165, -1934, -1934, -1936, -1936,
4298 -1937, -1937, 67, 625, 1389, 625, -1938, -1938, 625, 1392,
4299 627, -1939, -1939, 625, -1940, -1940, 625, 1393, 625, 2136,
4300 -1941, -1941, 625, 1412, 1169, 817, -1943, -1943, 1149, -1945,
4301 -1945, 1856, 1134, 3010, 1251, 627, 1251, 627, 1135, 1458,
4302 627, 1413, 3316, -1947, -1947, 627, 3318, 1418, 627, 1445,
4303 627, 1460, 1137, 1461, 627, 1738, 1739, 2103, 2104, -614,
4304 -614, 1367, 1368, 2579, 1468, 1141, 1475, 1369, 1370, 815,
4305 -618, -618, -617, -617, 502, 919, 2931, 1476, 1297, 958,
4306 1482, 502, 502, 1857, 1858, 1859, 1483, 1860, 1861, 1862,
4307 1863, 1864, 1865, 1489, 1141, 2756, 1495, 2959, 2960, 1493,
4308 3354, 1603, 1605, 1503, 1147, 1504, 1506, 2123, 806, -786,
4309 -793, 1139, 1511, 1983, 959, 1297, 45, -639, -783, -640,
4310 1150, -784, 502, 1515, 1148, 1846, 1847, 2228, 3157, -787,
4311 1472, 1867, 2864, 1516, 2448, 817, -785, 1529, 1520, 1136,
4312 961, 1140, 735, 1539, 1585, 2057, 1587, 1601, 1589, 1251,
4313 1617, 1612, 1613, 1621, 988, 1113, 1622, 1848, 1111, 1657,
4314 1659, 1849, 1850, 918, 1673, 1851, 1852, 1853, 1149, 1151,
4315 3157, 1661, 827, 1691, 1692, 1693, 2839, 1152, 1698, 817,
4316 1699, 1700, 2923, 502, 502, 1704, 502, 1712, 2710, 1153,
4317 1726, 817, 502, 502, 502, 502, 502, 502, 1711, 1716,
4318 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
4319 1731, 1141, 2831, 1740, 1744, 502, 502, 1752, 3157, 502,
4320 1154, 817, 1762, 1753, 2855, 1765, 502, 1766, 817, 3122,
4321 2991, 1768, 1769, 1771, 1857, 1858, 1859, 1772, 1860, 1861,
4322 1862, 1863, 1864, 1865, 1778, 1779, 989, 1786, 502, 1788,
4323 2733, 1789, 502, 1796, 502, 815, 2734, 1797, 502, 1806,
4324 1150, 1800, 1801, 965, 1840, 1802, 817, 806, 1803, 2735,
4325 817, 1156, 918, 1812, 1297, 1887, 817, 1837, 1839, 1842,
4326 1473, 500, 1905, 673, 682, 502, 1845, 500, 1868, 1877,
4327 1884, 2736, 1137, 2737, 1157, 1876, 806, 806, -564, 1909,
4328 1915, 1919, 1920, -564, 1921, 1926, 1929, 2811, 1528, 1151,
4329 1546, 3069, 806, 1159, 676, 1942, 502, 1152, 3000, 3001,
4330 1973, 502, 502, 3210, 1976, 1978, 1979, 2000, 1980, 1153,
4331 2007, 2582, 2018, 1471, 2019, 1981, 2021, 2045, 2046, 2052,
4332 2065, 2066, 2064, 2067, 683, 502, 502, 2169, 2080, 1134,
4333 502, 1139, 2083, 683, 2092, 1135, 2093, 815, 2094, 2095,
4334 1154, 2096, 1855, 2097, 502, 2118, 1403, 502, 2114, 502,
4335 2119, 2122, 2279, -564, 2129, 2130, 619, 2863, 2125, 2738,
4336 1341, 2170, 619, 2131, 684, 502, 1251, 2197, 2211, 2193,
4337 2213, 2202, 502, 2214, 2215, 502, 2350, 3173, 2229, 2232,
4338 2230, 2235, 2353, 2236, 2237, 2239, 2240, 2243, 2244, 2245,
4339 502, 1156, 2267, 2246, 2277, 2247, 2255, 2256, 2285, 1873,
4340 -564, 1848, 67, 502, 500, 1937, 2910, 815, 1934, 684,
4341 1856, 2315, 1935, 1872, 1157, 2334, 73, 2346, 2354, 500,
4342 502, 502, 625, 2322, 1936, 2739, 2323, 2324, 625, 1939,
4343 2740, 1141, 815, 1159, 2328, 2367, 1136, 502, 2368, 502,
4344 1719, 2335, 2352, 2412, 958, 1951, 2376, 2375, 502, 2377,
4345 67, 675, 1952, 1953, 627, 1403, 1954, 1955, 1956, 2378,
4346 627, 2379, 2389, 2808, 2396, 2391, 1251, 1251, 1251, 2403,
4347 2413, 2418, 2419, 2420, 2433, 2435, 2436, 2741, 2443, 959,
4348 2444, -620, 2454, 2441, 2457, 2455, 2458, 806, 2461, 815,
4349 2465, 929, 2466, 2742, 2467, 1480, 2469, 2471, 676, 619,
4350 2472, 2475, 941, 2494, 2496, 961, 3192, 2509, 2519, 1297,
4351 2977, 2515, 2524, 2516, 619, 2517, 2525, 2294, 2295, 2296,
4352 2297, 2298, 2299, 2536, 2526, 2303, 2304, 2305, 2306, 2307,
4353 2308, 2309, 2310, 2311, 2312, 2540, 2535, 2551, 498, 509,
4354 817, 2554, 1754, 530, 1755, 2555, 2999, 690, 530, 1757,
4355 1758, 2550, 616, 685, 630, 630, 2558, 2562, 502, 634,
4356 530, 639, 2567, 2569, 639, 625, 67, 657, 661, 2577,
4357 2578, 661, 2586, 21, 530, 530, 2594, 2597, 2617, 2600,
4358 625, 2603, 2618, 2604, 2605, 2629, 2630, 2606, 2636, 1137,
4359 2640, 2743, 2646, 2656, 918, 2684, 815, 627, 2657, 1251,
4360 2744, 2654, 616, 616, 2660, 2675, 2703, 2670, 2707, 2715,
4361 2681, 2669, 627, 1857, 1858, 1859, 2748, 1860, 1861, 1862,
4362 1863, 1864, 1865, 806, 2677, 657, 2682, 2701, 965, 3111,
4363 815, 2705, 661, 530, 661, 661, 661, 502, 2721, 2722,
4364 2728, 2764, 2838, 2834, 2176, 1473, 2828, 3292, 1139, 2829,
4365 919, 2830, 2842, 2843, 2846, -498, 2847, 2851, 2860, 2196,
4366 3192, 2862, 2869, 2870, 2895, 2875, 500, 2897, 676, -498,
4367 2392, 2393, 2901, 2906, -498, 2913, 2503, 502, 2177, 2912,
4368 2672, 2932, 2939, 2943, 2952, 2950, 2956, 673, 2957, 2966,
4369 2958, 955, 2964, 502, 2965, 2970, 956, 502, 502, 2974,
4370 676, 516, 815, 2975, 502, 2976, 2627, 2984, 2987, 2989,
4371 2808, 25, 26, 27, 502, 2990, 2994, 502, 3007, 502,
4372 2529, 2447, -1198, 3008, -498, -1245, 817, 502, 3006, 3015,
4373 502, 502, 3017, 806, 3021, 502, 502, 2542, 3175, 3162,
4374 3022, 3164, 502, 1983, -498, -1916, -1917, -1918, 1141, -1919,
4375 2709, -1920, -1921, 957, -1922, -1923, 502, -1924, 3035, -1925,
4376 -1927, -1928, -1929, 517, -1930, 3039, 502, -1931, -1932, -1933,
4377 3172, -1934, -1936, -1937, 32, -1938, 2693, 806, 3037, -1939,
4378 3174, 3040, -1940, 3177, -1941, -1942, 502, -1943, 2811, 806,
4379 -1944, -498, -1945, -1946, -1947, -1199, 3043, 1403, 3049, 3050,
4380 -498, 3053, 3057, 3061, 2584, 3055, 2585, 10, 67, 3064,
4381 2590, 37, 2593, 3063, 3067, 518, 3068, 3070, 3075, 806,
4382 3080, 3088, 958, 3089, 3093, 1251, 806, 625, 2814, 1251,
4383 3256, 1251, 3096, 3099, 3252, 3101, 3113, 3114, 815, 3121,
4384 3123, 618, 3129, 39, 3130, 3131, 3144, 3145, 618, 3245,
4385 3146, 3159, 3166, 3160, 42, 3167, 3179, 959, 1419, 627,
4386 629, 3163, 3169, 3176, 806, 3199, 2983, 3205, 806, 3203,
4387 3206, 3221, 3215, 960, 806, 2836, 3222, 3209, 21, 1508,
4388 1754, 3242, 1755, 961, 3227, 3223, 3232, 1757, 1758, 519,
4389 1512, 3239, 3234, 3236, 2935, 3244, 3240, 3251, 817, 3249,
4390 3253, 2856, 3258, 3263, 2858, 3269, 45, 3270, 3271, 676,
4391 3276, 3296, 3278, 3277, 3286, 962, 3288, 1526, 3306, 3290,
4392 502, 3309, 3291, 817, 1957, 1958, 1959, 3311, 1960, 1961,
4393 1962, 1963, 1964, 1965, 3326, 3329, 1911, 520, 3307, 521,
4394 502, 502, 3308, 3343, -498, 502, 3350, 3355, 502, 2492,
4395 1099, 2156, 2763, 2767, 3186, 522, 3284, 502, 3248, 963,
4396 2696, 523, 1357, 1358, 524, 3348, 964, 2997, 3267, 502,
4397 3336, 3109, 3305, 3312, 502, 502, 3330, 2627, 676, 502,
4398 817, 3143, 1683, 1809, 502, 1810, 2474, 502, 502, 2499,
4399 713, 3303, 502, 1297, 690, 690, 502, 690, 3310, 2470,
4400 502, 3301, 2732, 3280, 1804, 2817, 965, 502, 1782, 2532,
4401 711, 1751, 2583, 3044, 712, 2460, 25, 26, 27, 2850,
4402 1465, 1614, 2446, 966, 1466, 2121, 1654, 2833, 1653, 500,
4403 3289, 2807, 955, 2608, 2456, 2811, 2089, 956, 1359, 1360,
4404 3235, 3165, 2120, 620, 2432, 2904, 661, 1658, 2358, 3072,
4405 661, 502, 944, 661, 1432, 930, 2602, 2601, 2529, 502,
4406 530, 2632, 3115, 1795, 3238, 1421, 3237, 1423, 2387, 3325,
4407 2410, 2638, 1427, 2371, 1428, 2662, 2663, 2449, 502, 32,
4408 2408, 1896, 2942, 2388, 2431, 815, 3225, 817, 820, 530,
4409 530, 967, 2648, 1814, 957, 2365, 1912, 923, 2060, 2697,
4410 2062, 534, 1361, 1362, 1363, 1364, 1365, 1366, 642, 700,
4411 1367, 1368, 0, 0, 0, 531, 37, 0, 0, 0,
4412 531, 2814, 0, 0, 619, 0, 0, 921, 509, 630,
4413 0, 0, 531, 0, 498, 38, 661, 0, 0, 0,
4414 0, 0, 0, 0, 1467, 616, 531, 531, 39, 948,
4415 948, 0, 0, 1592, 948, 971, 0, 0, 806, 42,
4416 0, 502, 0, 958, 0, 0, 0, 0, 0, 665,
4417 0, 1121, 676, 43, 0, 0, 0, 0, 0, 639,
4418 639, 0, 639, 0, 0, 0, 3027, 0, 0, 918,
4419 625, 0, 502, 817, 0, 661, 0, 44, 959, 0,
4420 0, 530, 0, 0, 0, 531, 0, 2941, 502, 0,
4421 0, 45, 661, 0, 960, 0, 0, 0, 0, 0,
4422 1369, 1370, 627, 0, 961, 0, 661, 0, 1297, 0,
4423 702, 0, 705, 0, 709, 502, 0, 0, 0, 0,
4424 0, 1545, 0, 0, 1546, 0, 502, 502, 1547, 1548,
4425 502, 0, -1948, -1948, -1948, 0, 962, 0, 0, 955,
4426 661, 661, 661, 661, 956, 2868, 0, 0, 0, 0,
4427 2128, 0, 0, 0, 0, 502, 0, 1122, 0, 1556,
4428 2137, 0, 2140, 67, 0, 2151, 1557, 0, 0, 0,
4429 0, 2155, 0, 2157, 0, 0, 0, 0, 0, 502,
4430 963, 0, 0, 0, 0, 2164, 0, 964, 0, 0,
4431 2167, 1558, 0, 0, 2172, 2173, 2174, 2175, 0, 2179,
4432 2180, 957, 0, 0, 0, 0, 0, 0, 0, 2814,
4433 0, 0, 0, 808, 0, 1371, 1372, 0, 0, 0,
4434 0, 21, 0, 0, 806, 0, 0, 965, 0, 0,
4435 809, 0, 0, 0, 0, 0, 3126, 3127, 618, 0,
4436 618, 0, 502, 618, 966, 955, 502, 0, 618, 3023,
4437 956, 618, 0, 618, 0, 0, 502, 618, 502, 0,
4438 502, 0, 0, 0, 502, 0, 502, 0, 502, 0,
4439 958, 67, 1403, 0, 0, 500, 0, 0, 502, 0,
4440 0, 0, 0, 0, 2979, 1559, 988, 0, 0, 1848,
4441 0, 502, 0, 1849, 1850, 0, 0, 1851, 1852, 1853,
4442 0, 1560, 0, 0, 1251, 959, 1561, 957, 3183, 502,
4443 3185, 0, 967, 0, 2924, 0, 0, 1123, 0, 0,
4444 0, 960, 0, 0, 0, 0, 806, 0, 0, 2008,
4445 0, 961, 0, 0, 0, 0, 0, 0, 0, 0,
4446 948, 971, 0, 661, 1564, 3086, 1439, 0, 0, 3217,
4447 0, 0, 948, 948, 0, 0, 502, 0, 530, 25,
4448 26, 27, 0, 962, 616, 3220, 502, 0, 0, 3224,
4449 0, 616, 0, 0, 2689, 0, 958, 0, 0, 502,
4450 0, 530, 0, 0, 1124, 0, 0, 0, 0, 0,
4451 0, 502, 0, 1823, 1505, 0, 806, 1567, 0, 690,
4452 0, 0, 0, 0, 0, 0, 0, 963, 0, 502,
4453 0, 959, 2807, 0, 964, 0, 0, 3045, 0, 0,
4454 500, 806, 32, 0, 0, 0, 0, 960, 21, 0,
4455 0, 0, 0, 502, 0, 0, 625, 961, 1824, 0,
4456 0, 0, 0, 0, 530, 0, 0, 502, 808, 0,
4457 0, 0, 0, 0, 965, 0, 2814, 1825, 1251, 37,
4458 0, 0, 500, 0, 0, 809, 0, 0, 627, 962,
4459 0, 966, 0, 0, 0, 1826, 0, 0, 806, 1827,
4460 0, 502, 0, 0, 0, 0, 0, 0, 1606, 3313,
4461 1608, 39, 0, 1569, 1855, 0, 502, 502, 0, 0,
4462 0, 1828, 42, 0, 1829, 530, 530, 0, 0, 0,
4463 500, 661, 531, 963, 0, 3327, 43, 0, 0, 1830,
4464 964, 0, 502, 0, 717, 0, 0, 2212, 724, 3211,
4465 0, 725, 0, 1439, 0, 0, 67, 1809, 0, 967,
4466 44, 531, 531, 0, 661, 1682, 0, 0, 0, 0,
4467 0, 0, 0, 0, 45, 0, 2690, 661, 502, 0,
4468 965, 0, 1856, 1147, 0, 0, 25, 26, 27, 0,
4469 0, 0, 0, 0, 661, 0, 0, 966, 661, 0,
4470 0, 625, 1728, 1148, 0, 806, 0, 0, 0, 0,
4471 0, 0, 0, 0, 0, 0, 0, 1570, 0, 0,
4472 -1948, -1948, -1948, 0, 1574, 1575, 1576, 1577, 1578, 1579,
4473 1831, 0, 0, 627, 933, 0, 0, 0, 1832, 806,
4474 0, 0, 0, 625, 0, 0, 0, 1149, 2754, 32,
4475 0, 0, 0, 0, 0, 0, 2755, 808, 0, 1833,
4476 0, 0, 0, 0, 0, 967, 0, 0, 0, 0,
4477 0, 0, 0, 531, 809, 627, 0, 0, 0, 2807,
4478 0, 0, 0, 0, 0, 1834, 37, 0, 0, 0,
4479 0, 625, 0, 0, 0, 0, 0, 618, 0, 0,
4480 0, 0, 1545, 618, 0, 1546, 0, 0, 0, 1547,
4481 1548, 806, 0, 0, 2756, 0, 3086, 0, 39, 0,
4482 2557, 0, 0, 627, 1128, 0, 0, 0, 0, 42,
4483 0, 1741, 0, 661, 0, 0, 0, 0, 661, 1150,
4484 1556, 0, 0, 43, 0, 0, 0, -1948, 0, 1775,
4485 0, 0, 0, 0, 0, 0, 0, 0, 1309, 1311,
4486 1314, 1316, 0, 0, 0, 0, 0, 44, 0, 0,
4487 0, 0, 1558, 0, 0, 0, 0, 0, 0, 1792,
4488 0, 2691, 0, 0, 1792, 1857, 1858, 1859, 1151, 1860,
4489 1861, 1862, 1863, 1864, 1865, 1526, 1152, 0, 0, 0,
4490 -1681, 0, 0, 0, 0, 0, 0, 0, 1153, 0,
4491 2757, 0, 2227, 2008, 0, 820, 0, 0, 820, 0,
4492 530, 530, 0, 530, 820, 808, 0, 0, 0, 2414,
4493 0, 0, 21, 0, 0, 2394, 0, 0, 0, 1154,
4494 618, 0, 809, 0, 0, 0, 0, 806, 0, 0,
4495 0, 0, 0, 0, 67, 618, 0, 0, 0, 0,
4496 0, 0, 0, 0, 0, 0, -1948, 0, 1439, 1439,
4497 0, 0, 0, 0, 1439, 0, 498, 0, 0, 0,
4498 0, 0, -1948, 0, 0, 0, 0, -1948, 0, 948,
4499 1156, 530, 1891, 0, 0, 0, 0, 0, -1681, 661,
4500 0, 616, 0, 616, 0, 0, 616, 0, 0, 0,
4501 0, 616, 0, 1157, 616, 0, 616, 0, 0, 0,
4502 616, 0, 530, 0, 530, -1948, 0, 0, 0, -1683,
4503 0, 0, 1159, 0, 2758, 0, 0, 2759, 0, 0,
4504 0, 0, 0, -1681, 0, 0, 1966, 0, 0, 0,
4505 1459, 1972, 0, 0, 0, 0, 0, -1681, 0, 2712,
4506 2713, 1434, -1681, 0, 0, 0, 0, -1681, 0, 0,
4507 25, 26, 27, 1492, 0, 0, -1681, 0, 1567, 0,
4508 -1681, 0, 0, 0, 808, 0, 0, 2765, 0, 820,
4509 0, 0, 0, 0, 0, 0, 0, 0, 0, 675,
4510 0, 809, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825,
4511 2826, 2827, -1681, 808, 808, 0, 0, 0, 0, 0,
4512 0, 0, 0, 0, 0, 0, 0, -1683, 0, 808,
4513 809, 809, -1681, 32, 0, 0, 1531, 0, 2058, 0,
4514 661, 0, 661, 1693, 811, 0, 809, 0, 0, 0,
4515 0, 0, 661, 2072, 0, 3026, 0, 0, 0, 0,
4516 0, 0, 0, 0, 0, 1439, 0, 0, 0, 0,
4517 37, 0, -1683, 0, -1948, 21, 0, 0, 0, -1681,
4518 0, 0, -1681, 0, 0, 0, -1683, 0, -1681, 0,
4519 661, -1683, 530, 0, 806, 0, -1683, 531, 531, 0,
4520 0, 0, 39, 0, 0, -1683, 0, 1682, 530, -1683,
4521 0, 0, 0, 42, 0, 0, 0, 0, 530, 2138,
4522 530, 2142, 0, 530, 0, 0, -1681, 43, 0, 530,
4523 0, 530, 0, 0, 0, 0, 0, 0, 0, 0,
4524 0, -1683, 820, 530, 0, 0, 0, 820, 530, -1681,
4525 0, 44, 530, 530, 530, 530, 0, 530, 530, 0,
4526 0, -1683, 1674, 0, 0, 45, 0, 0, 0, 1526,
4527 0, 21, 0, 0, 0, 1701, 0, 0, -1948, 661,
4528 661, 661, 661, 661, 0, 1574, 1575, 1576, 1577, 1578,
4529 1579, 0, 0, 0, 0, 0, 1725, 2217, 0, 1545,
4530 0, 1526, 1546, 0, 0, 663, 1547, 1548, -1683, 0,
4531 0, -1683, 0, 25, 26, 27, 0, -1683, 0, 0,
4532 0, 0, 0, 0, 808, 67, 0, 0, 2978, 0,
4533 0, 0, -1681, 0, 0, 0, 0, 1556, 0, 0,
4534 0, 809, -1681, 0, -1948, 0, 0, 0, 0, 0,
4535 0, 2708, 0, 0, 0, -1683, 0, 0, 0, -1681,
4536 0, -1681, -1681, 0, 0, 0, 0, 0, 0, 1558,
4537 0, 0, 0, 0, 0, 0, 32, 0, -1683, 811,
4538 1439, 1439, 1439, 1439, 1439, 1439, 0, 0, 1439, 1439,
4539 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, -1681, 3184,
4540 0, -1681, -1681, -1681, 0, 0, 0, 0, 0, 25,
4541 26, 27, 0, 37, 0, 0, 0, 0, 530, 0,
4542 0, 0, 0, 0, 67, 0, 0, 0, 0, 0,
4543 661, 1746, 2404, 0, 663, 0, 1761, 0, 0, 0,
4544 616, 0, 0, 0, 0, 39, 616, 0, 0, 0,
4545 67, 0, 530, 67, 0, 0, 42, 530, 0, 0,
4546 808, -1683, 812, -1948, 0, 0, 0, 0, 0, 0,
4547 43, -1683, 32, 0, 0, 1545, 0, 809, 1546, -1948,
4548 0, 0, 1547, 1548, -1948, 0, 0, 0, -1683, 0,
4549 -1683, -1683, 531, 531, 44, 531, 0, 0, 0, 0,
4550 0, 0, 530, 0, 0, 0, 2384, 0, 45, 37,
4551 1526, 530, 0, 1556, 0, 0, 0, 0, 0, 0,
4552 -1948, 0, -1948, 0, 0, 0, 814, -1683, 0, 0,
4553 -1683, -1683, -1683, 1439, 1439, 0, 0, 0, 0, 0,
4554 0, 39, 0, 0, 0, 1558, 1357, 1358, 0, 0,
4555 1966, 0, 42, 0, 0, 0, 0, 0, 0, 0,
4556 0, 0, 0, 531, 0, 618, 43, 0, 811, 0,
4557 808, 0, 0, 0, 0, 1567, 0, 0, 0, 675,
4558 3112, 0, 0, 616, 0, 0, 0, 809, 0, 0,
4559 44, 0, 0, 0, 1923, 530, 1927, 1903, 616, 0,
4560 3119, 3120, 2072, 0, 45, 0, 0, 0, 2661, 0,
4561 0, 0, 0, 0, 808, 0, 0, 0, 0, 3132,
4562 0, 0, 1359, 1360, 0, 0, 808, 0, 0, 0,
4563 0, 809, 0, 0, 0, 0, 0, 0, 0, -1948,
4564 0, 0, 530, 809, 0, 1439, 0, 0, 530, 0,
4565 0, 0, 0, 0, 0, -1948, 808, 0, 0, 0,
4566 -1948, 0, 0, 808, 1741, 0, 0, 0, 0, 0,
4567 0, -1948, 0, 809, 0, 0, 0, 0, 0, 0,
4568 809, 1406, 0, 0, 0, 0, 1361, 1362, 1363, 1364,
4569 1365, 1366, 0, 0, 1367, 1368, 0, 812, -1948, 0,
4570 0, 808, 0, 0, 0, 808, 0, 0, 0, 0,
4571 0, 808, 0, 0, 0, 0, 0, 0, 809, 0,
4572 0, 0, 809, 0, 0, 0, 0, 1741, 809, 0,
4573 0, 0, 0, 661, 0, 67, 811, 0, 2059, 0,
4574 2061, 1406, 0, 0, 1741, 661, 661, 661, 0, 0,
4575 2069, 1567, 0, 0, 0, 0, 0, 0, 530, 0,
4576 661, 814, 0, 661, 531, 0, 0, 0, 661, 0,
4577 0, 0, 0, 1526, 0, -1948, 0, 0, 0, 0,
4578 531, 2575, 1574, 1575, 1576, 1577, 1578, 1579, 2106, 0,
4579 531, 0, 531, 0, 0, 531, 0, 0, 820, 0,
4580 0, 531, 0, 531, 1369, 1370, 0, 0, 0, 0,
4581 0, 1543, 0, 1741, 1741, 531, 1741, 0, 0, 0,
4582 531, 0, 0, 0, 531, 531, 531, 531, 0, 531,
4583 531, 0, 0, 0, 0, 0, 0, 1406, 0, 1406,
4584 1406, 0, 3297, 0, 0, 498, 0, -1948, 0, 0,
4585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4586 0, 0, 0, 0, 0, 2607, 0, 0, 0, 0,
4587 0, 0, 0, 661, 661, 661, 0, 2203, 2204, 2206,
4588 2207, 2208, 0, 530, 0, 1439, 812, 530, 0, 0,
4589 0, 0, 0, 530, 0, 811, 0, 0, 0, 0,
4590 0, 0, 0, 0, 0, 67, 67, 0, 1966, 0,
4591 0, 0, 1406, 0, 0, 1406, 1406, 0, 0, 1371,
4592 1372, 0, 0, 0, 811, 811, 0, 0, 0, 0,
4593 0, 0, 0, 0, 0, 0, 0, 0, 1439, 1439,
4594 811, 0, 0, 0, 1357, 1358, 0, 0, 0, 0,
4595 814, -1948, 0, 0, 0, 0, 0, 0, 1574, 1575,
4596 1576, 1577, 1578, 1579, 0, 0, 2686, 0, 0, 0,
4597 0, 0, 2072, 0, 0, 0, 0, 67, 0, 67,
4598 0, 0, 0, 0, 0, 0, 0, 0, 661, 0,
4599 531, 0, 530, 0, 0, 808, 530, 530, 530, 0,
4600 0, 0, 1741, 1682, 1741, 0, 1775, 0, 0, 0,
4601 0, 0, 809, 0, 0, 0, 0, 0, 67, 0,
4602 1359, 1360, 0, 0, 2357, 530, 0, 2766, 2341, 1927,
4603 0, 0, 0, 0, 67, 0, 0, 0, 67, 0,
4604 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
4605 0, 0, 0, 0, 812, 0, 0, 0, 0, 0,
4606 0, 0, 0, 0, 0, 0, 2217, 0, 0, 0,
4607 0, 0, 661, 0, 531, 0, 0, 0, 0, 0,
4608 0, 0, 1682, 1531, 1361, 1362, 1363, 1364, 1365, 1366,
4609 0, 0, 1367, 1368, 0, 0, 0, 1781, 1775, 0,
4610 0, 0, 0, 0, 0, 0, 0, 0, 1790, 0,
4611 1791, 0, 0, 0, 0, 0, 0, 1741, 814, 0,
4612 1798, 0, 0, 0, 0, 0, 0, 0, 1439, 0,
4613 0, 0, 0, 0, 530, 811, 0, 1799, 0, 0,
4614 0, 661, 661, 661, 661, 0, 0, 0, 0, 0,
4615 0, 0, 0, 1439, 0, 0, 1439, 0, 67, 0,
4616 530, 820, 0, 0, 0, 1816, 1818, 531, 0, 0,
4617 0, 1545, 0, 0, 1546, 0, 2914, 0, 1547, 1548,
4618 0, 808, 0, 0, 67, 0, 0, 0, 0, 0,
4619 0, 0, 0, 0, 0, 0, 0, 0, 809, 0,
4620 0, 0, 1369, 1370, 0, 0, 2936, 0, 616, 1556,
4621 0, 0, 0, 812, 531, 0, -1948, 0, 0, 0,
4622 2464, 0, 2947, 0, 0, 0, 2072, 0, 0, 0,
4623 0, 0, 1966, 0, 0, 0, 0, 988, 0, 0,
4624 1848, 1558, 812, 812, 1849, 1850, 1682, 0, 1851, 1852,
4625 1853, 0, 1741, 0, 0, 0, 0, 0, 812, 0,
4626 0, 0, 0, 0, 0, 820, 530, 1439, 0, 0,
4627 0, 811, 0, 661, 0, 0, 0, 814, 0, 0,
4628 0, 0, 0, 808, 0, 0, 0, 0, 0, 0,
4629 2998, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4630 809, 0, 0, 0, 2664, 0, 814, 814, 0, 0,
4631 0, 0, 0, 0, 0, 0, 0, 1371, 1372, 0,
4632 0, 0, 814, 0, 0, 0, 0, 0, 0, 0,
4633 531, 2533, 0, 0, 0, -1948, 0, 1373, 0, 0,
4634 0, 0, 0, 2546, 2547, 2549, 0, 0, 1048, 1048,
4635 0, -1948, 0, 808, 0, 0, -1948, 0, 2560, 0,
4636 0, 2563, 0, 0, 0, 1741, 2568, 0, 0, 0,
4637 809, 0, 0, 0, 0, 0, 0, 2217, 808, 0,
4638 0, 811, 0, 0, 0, 0, 0, 0, 0, 0,
4639 0, 3041, 0, 0, -1948, 809, 0, 0, 0, 0,
4640 1439, 0, 0, 0, 0, 1441, 0, 0, 0, 2101,
4641 2101, 0, 0, 1173, 0, 0, 0, 1292, 0, 0,
4642 0, 0, 0, 0, 0, 811, 3058, 0, 0, 0,
4643 0, 0, 530, 0, 0, 808, 0, 811, 0, 0,
4644 530, 0, 0, 0, 0, 1855, 0, 1567, 0, 0,
4645 0, 0, 809, 812, 0, 531, 0, 0, 0, 531,
4646 0, 0, 0, 0, 0, 1923, 3083, 811, 0, 1406,
4647 0, 2614, 2615, 2616, 811, 0, 0, 0, 0, 1406,
4648 1442, 0, 1406, 0, 0, 0, 0, 530, 0, 0,
4649 0, 0, 530, 988, 0, 0, 1848, 0, 0, 0,
4650 1849, 1850, 0, 0, 1851, 1852, 1853, 0, 0, 0,
4651 0, 0, 811, 1856, 0, 0, 811, 814, 530, 0,
4652 0, 0, 811, 0, 0, 0, 0, 0, 0, 0,
4653 0, 0, 0, 0, 0, 0, 0, 0, 530, 530,
4654 0, 0, 808, -1948, 0, 0, 0, 0, 0, 0,
4655 0, 661, 0, 1682, 0, 0, 0, 530, 0, 809,
4656 2252, 2254, 0, 0, 531, 0, 0, 0, 531, 531,
4657 531, 661, 0, 0, 3154, 0, 808, 0, 0, 0,
4658 0, 0, 0, 1650, 1406, 0, 2704, 0, 0, 812,
4659 0, 0, 1441, 809, 1439, 0, 0, 531, 530, 948,
4660 0, 0, 948, 0, 0, 0, 0, 0, 0, 0,
4661 0, -1697, 531, 531, 531, 531, 531, 531, 531, 531,
4662 531, 531, 0, 2947, 0, 0, 0, 1416, 0, 0,
4663 661, 0, 0, 1433, 0, 0, 1435, 0, 0, 1446,
4664 1449, 1454, 1457, 0, 0, 0, 0, -1948, 808, 0,
4665 0, 0, 0, 814, 1574, 1575, 1576, 1577, 1578, 1579,
4666 661, 0, 0, 0, 0, 809, 0, 1442, 0, 0,
4667 2841, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4668 1292, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4669 0, 0, 0, 1406, 0, 0, 0, 1509, 3058, 812,
4670 0, -1948, 0, 0, 0, 0, 1923, 0, 0, -1697,
4671 0, 0, 0, 0, 0, 1514, 1857, 1858, 1859, 3154,
4672 1860, 1861, 1862, 1863, 1864, 1865, 1517, 1518, 1519, 0,
4673 1523, 1527, 2357, 0, 0, 0, 0, 0, 0, 2877,
4674 2878, 2879, 2880, 812, 0, 0, 1682, 0, 0, 0,
4675 0, 0, 0, 0, -1697, 812, 0, 0, 820, 820,
4676 1588, 3154, 820, 814, 0, 0, 0, 0, -1697, 1856,
4677 1891, 0, 0, -1697, 0, 0, 0, 0, -1697, 0,
4678 530, 0, 0, 0, 808, 812, 0, -1697, 0, 0,
4679 0, -1697, 812, 0, 0, 0, 0, 0, 0, 0,
4680 0, 809, 1682, 0, 0, 0, 811, 814, 0, 3154,
4681 1628, 0, 0, 0, 1644, 1649, 0, 0, 0, 814,
4682 2427, 1545, 0, -1697, 1546, 1048, 1048, 0, 1547, 1548,
4683 812, 0, 0, 0, 812, 0, 0, 0, 531, 0,
4684 812, 0, 0, -1697, 0, 0, 820, 0, 0, 814,
4685 0, 2452, 2452, 0, 0, 0, 814, 0, 0, 1556,
4686 2072, 0, 0, 0, 0, 0, -1948, 0, 0, 0,
4687 0, 2985, 0, 0, 0, 0, 0, 0, 0, 0,
4688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4689 -1697, 1558, 0, -1697, 814, 0, 0, 0, 814, -1697,
4690 0, 0, 0, 0, 814, 0, 0, 1441, 1441, 0,
4691 0, 0, 0, 1441, 0, 0, 0, 0, 0, 0,
4692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4693 0, 0, 0, 0, 0, 0, 0, -1697, 0, 0,
4694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4695 0, 0, 0, 0, 2665, 0, 0, 0, 1292, 0,
4696 -1697, 0, 0, 0, 0, 0, 0, 1292, 0, 0,
4697 0, 0, 1857, 1858, 1859, 0, 1860, 1861, 1862, 1863,
4698 1864, 1865, 1442, 1442, 0, -1948, 0, 0, 1442, 0,
4699 0, 1292, 811, 0, 0, 0, 0, 0, 0, 0,
4700 0, -1948, 0, 0, 3066, 0, -1948, 2571, 0, 0,
4701 0, 1545, 2357, 0, 1546, 0, 663, 0, 1547, 1548,
4702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4703 0, 808, 0, 0, 0, 0, 0, 0, 0, 0,
4704 0, 0, 0, -1697, -1948, 0, 0, 0, 809, 1556,
4705 0, 0, 0, -1697, 0, 0, -1948, 0, 0, 531,
4706 0, 0, 0, 0, 531, 0, 0, 0, 0, 0,
4707 -1697, 0, -1697, -1697, 0, 0, 0, 0, 0, 0,
4708 0, 1558, 0, 0, 0, 0, 0, 0, 0, 0,
4709 531, 0, 0, 0, 811, 0, 0, 1567, 0, 0,
4710 0, 0, 0, 0, 2091, 0, 0, 0, 0, -1697,
4711 531, 531, -1697, -1697, -1697, 0, 0, 0, 0, 0,
4712 1838, 0, 0, 0, 812, 0, 0, 0, 0, 531,
4713 0, 0, 2050, 0, 0, 0, 0, 0, 0, 0,
4714 0, 0, 0, 0, 2927, 0, 0, 0, 0, 3128,
4715 0, 0, 1454, 0, 1454, 1454, 0, 0, 0, 0,
4716 0, 0, 0, 0, 811, 0, 0, 1048, 1048, 3152,
4717 531, 0, 0, 0, 0, -1948, 0, 0, 1545, 1442,
4718 0, 1546, 0, 0, 1048, 1547, 1548, 0, 814, 811,
4719 0, -1948, 0, -1948, 0, 0, -1948, 0, 0, 0,
4720 0, 0, 0, 0, 0, 1134, 0, 0, 0, 0,
4721 0, 1135, 0, 1945, 0, 1946, 1556, 0, 0, 1147,
4722 0, 0, 0, -1948, 0, 0, 0, 0, 3190, 0,
4723 0, 0, 0, 0, -1948, 0, 0, 0, 0, 1148,
4724 0, 0, 0, 1985, 0, 0, 811, 0, 1558, 1989,
4725 1990, 1991, 1992, 1993, 1994, 1995, 1996, 0, 3216, 0,
4726 0, 2005, 2006, 0, 0, 0, 2017, 0, 0, 1406,
4727 2020, 0, 0, 2028, 2029, 2030, 2031, 2032, 2033, 2034,
4728 2035, 2036, 0, 1149, 2037, 0, 0, 1567, 0, 0,
4729 0, 1048, 0, 1292, 0, 0, 0, -1948, 0, 0,
4730 0, 0, 0, 0, 1574, 1575, 1576, 1577, 1578, 1579,
4731 812, 0, 1136, 0, 2063, 0, 0, 0, 0, 1441,
4732 1441, 1441, 1441, 1441, 1441, 0, 0, 1441, 1441, 1441,
4733 1441, 1441, 1441, 1441, 1441, 1441, 1441, 0, 0, 0,
4734 0, 0, -1948, 0, 0, 0, 0, 1518, 1519, 0,
4735 0, 0, 531, 811, 0, 0, 0, 0, -1948, 0,
4736 0, 0, 0, -1948, 0, 0, 0, 0, 0, 0,
4737 0, 0, 0, 0, 814, 1150, 0, 0, 0, 0,
4738 0, 0, 0, -1948, 0, 0, 0, 811, 0, 0,
4739 535, 0, 0, 0, 1442, 1442, 1442, 1442, 1442, 1442,
4740 0, -1948, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442,
4741 1442, 1442, 812, 0, 0, 0, 0, 0, 0, 0,
4742 0, 0, 0, 0, 1151, 0, 0, 0, 0, 0,
4743 0, 0, 1152, 2181, 0, 0, 0, 1292, 0, 0,
4744 2191, 2192, 0, 0, 1153, 536, 0, 0, 0, 0,
4745 0, 0, 0, 0, 1567, 0, 0, 0, 0, 811,
4746 0, 537, 0, 0, 0, 1137, 0, 0, 0, 0,
4747 0, 0, 1441, 1441, 1292, 1154, 814, 0, 0, 0,
4748 0, 0, 812, 0, 0, 0, 0, -1948, 0, 0,
4749 0, 0, 0, 0, 1574, 1575, 1576, 1577, 1578, 1579,
4750 0, 0, 0, 0, 0, 0, -42, 812, 538, 0,
4751 0, 0, 0, 0, 0, 0, 0, 1406, 539, 0,
4752 1155, 0, 1406, 0, 1139, 0, 1156, 0, 1, 0,
4753 540, 0, 0, 0, 0, 541, 0, 0, 2, 0,
4754 3, 4, 2289, 2290, 0, 2291, 814, 1442, 1442, 1157,
4755 -1948, 0, 0, 5, 1158, 0, 0, 0, 6, 0,
4756 0, 0, 0, 542, 812, 0, 0, 7, 1159, 1816,
4757 1818, 814, 0, 0, 2317, 2318, 0, 0, 2063, 8,
4758 0, 0, 0, 0, 1441, 0, 0, 0, 0, 0,
4759 9, 0, 0, 0, 0, 811, 0, 0, 0, 0,
4760 0, 0, 10, 0, 11, 0, 543, 2345, 0, 0,
4761 544, 0, 0, 2351, 0, 12, 0, 0, 0, 0,
4762 0, 0, 0, 0, 1141, 0, 0, 0, 814, 13,
4763 14, 0, 0, 1292, 0, 0, 0, 0, 0, 15,
4764 0, 0, 0, 0, 2369, 16, 0, 0, 0, 0,
4765 0, 0, 0, 17, -1948, 18, 19, 0, 0, 1442,
4766 0, 1574, 1575, 1576, 1577, 1578, 1579, 0, 0, 20,
4767 0, 812, 0, 21, 0, 2382, 545, 0, 0, 0,
4768 2385, 2386, 0, 0, 0, 0, 0, 0, 0, 0,
4769 0, 546, 0, 0, 0, 0, 0, 0, 22, 0,
4770 0, 0, 0, 0, 0, 812, 0, 0, 0, 0,
4771 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
4772 0, 0, 0, 2406, 547, 0, 2409, 548, 2411, 0,
4773 0, 0, 0, 0, 0, 814, 549, 0, 0, 550,
4774 24, 0, 0, 0, 2415, 0, 0, 0, 0, 0,
4775 0, 0, 0, 0, 0, 0, 0, 551, 0, 1816,
4776 1818, 0, 0, 0, 0, 0, 0, 0, 0, 814,
4777 1406, 552, 0, 0, 0, 0, 0, 812, 553, 0,
4778 0, 0, 1628, 0, 0, 0, 1443, 554, 0, 0,
4779 0, 0, 0, 555, 0, 0, 0, 0, 0, 1649,
4780 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4781 0, 25, 26, 27, 0, 0, 0, 0, 1048, 28,
4782 556, 0, 29, 0, 0, 0, 0, 2468, 0, 0,
4783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4784 0, 814, 811, 0, 0, 0, 1545, 0, 0, 1546,
4785 0, 30, 0, 1547, 1548, 0, 0, 1551, 1552, 1553,
4786 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4787 0, 0, 0, 0, 32, 0, 0, 1441, 1441, 0,
4788 0, 33, 0, 0, 1556, 34, 0, 0, 1292, 0,
4789 0, 1557, 0, 0, 0, 35, 0, 0, 0, 1582,
4790 0, 0, 0, 0, 0, 0, 0, 36, 0, 0,
4791 0, 37, 0, 812, 0, 0, 1558, 0, 0, 0,
4792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4793 38, 0, 0, 0, 0, 0, 0, 2566, 0, 0,
4794 0, 1582, 0, 39, 0, 0, 40, 0, 0, 41,
4795 0, 0, 1442, 1442, 42, 0, 0, 0, 0, 0,
4796 0, 0, 0, 0, 0, 0, 0, 0, 43, 0,
4797 0, 0, 0, 1443, 0, 0, 0, 814, 0, 0,
4798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4799 1545, 0, 44, 1546, 0, 0, 0, 1547, 1548, 1549,
4800 1550, 1551, 1552, 1553, 0, 0, 45, 0, 0, -42,
4801 1559, 0, 0, 0, 0, 0, 0, 1406, 1554, 0,
4802 0, 0, 0, 0, 1582, 0, 1560, 0, 1556, 0,
4803 0, 1561, 0, 0, 0, 1557, 0, 0, 0, 0,
4804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4805 0, 0, 0, 0, 1562, 1563, 0, 0, 0, 0,
4806 1558, 0, 0, 0, 0, 0, 0, 1441, 0, 1564,
4807 0, 0, 2635, 0, 0, 0, 2637, 1946, 0, 0,
4808 0, 0, 0, 2641, 0, 1134, 0, 0, 0, 0,
4809 0, 1135, 2898, 2650, 0, 0, 2653, 0, 2655, 1147,
4810 0, 0, 0, 0, 0, 1565, 2659, 0, 1566, 0,
4811 0, 0, 0, 0, 2666, 2667, 2916, 0, 0, 1148,
4812 0, 2674, 1567, 0, 0, 0, 0, 0, 0, 0,
4813 0, 0, 0, 0, 0, 2683, 0, 0, 0, 0,
4814 0, 0, 1442, 1582, 0, 2698, 0, 0, 0, 0,
4815 0, 0, 0, 0, 1559, 0, 0, 0, 0, 0,
4816 812, 0, 0, 1149, 0, 1048, 0, 1442, 0, 0,
4817 1560, 0, 0, 0, 0, 1561, 1545, 0, 0, 1546,
4818 0, 0, 0, 1547, 1548, 1549, 1550, 1551, 1552, 1553,
4819 0, 0, 1136, 0, 0, 0, 0, 0, 1562, 1563,
4820 0, 0, 0, 0, 1554, 0, 1441, 0, 0, 0,
4821 0, 0, 0, 1564, 1556, 0, 0, 0, 1569, 0,
4822 0, 1557, 0, 0, 814, 0, 0, 0, 0, 0,
4823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4824 0, 0, 0, 0, 0, 0, 1558, 0, 0, 1565,
4825 0, 0, 1566, 0, 0, 1150, 0, 0, 0, 0,
4826 0, 0, 0, 0, 0, 0, 1567, 1582, 0, 1568,
4827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4828 0, 1442, 0, 0, 1582, 0, 1582, 0, 1443, 1443,
4829 0, 1866, 0, 0, 1443, 0, 0, 1582, 0, 0,
4830 1582, 0, 0, 0, 1151, 1582, 0, 0, 1582, 0,
4831 0, 0, 1152, 0, 0, 0, 0, 0, 0, 2893,
4832 2894, 0, 1570, 0, 1153, 1571, 1572, 1573, 0, 1574,
4833 1575, 1576, 1577, 1578, 1579, 0, 2911, 0, 0, 1441,
4834 1559, 0, 0, 0, 0, 1137, 0, 0, 2915, 0,
4835 0, 0, 0, 2917, 2918, 1154, 1560, 0, 2919, 0,
4836 1582, 1561, 1569, 2922, 0, 1582, 2925, 2926, 1582, 1582,
4837 1582, 2181, 1292, 0, 1582, 2933, 0, 0, 1582, 0,
4838 0, 0, 0, 0, 1562, 1563, 1048, 0, 0, 0,
4839 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564,
4840 2158, 0, 0, 0, 1139, 0, 1156, 0, 0, 0,
4841 1544, 0, 0, 0, 1442, 1545, 0, 0, 1546, 0,
4842 0, 0, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1157,
4843 2973, 0, 0, 0, 2159, 1565, 0, 0, 1566, 1582,
4844 0, 0, 0, 1554, 0, 0, 0, 1555, 1159, 0,
4845 0, 0, 1567, 1556, 0, 1568, 0, 2992, 0, 0,
4846 1557, 0, 0, 0, 0, 0, 1570, 0, 0, 1571,
4847 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579, 1582,
4848 0, 0, 0, 0, 0, 1558, 0, 0, 0, 0,
4849 0, 0, 2374, 0, 0, 1582, 0, 0, 0, 0,
4850 1582, 0, 0, 0, 1141, 0, 0, 0, 0, 0,
4851 0, 0, 0, 0, 0, 0, 0, 1866, 0, 0,
4852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4853 0, 0, 0, 3171, 0, 0, 0, 0, 0, 0,
4854 3019, 0, 0, 1545, 0, 0, 1546, 0, 1569, 0,
4855 1547, 1548, 1549, 1550, 1551, 1552, 1553, 0, 0, 0,
4856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4857 0, 1554, 0, 0, 0, 2645, 0, 0, 0, 1559,
4858 0, 1556, 0, 0, 0, 0, 0, 1527, 1557, 0,
4859 0, 0, 0, 0, 0, 1560, 0, 0, 0, 0,
4860 1561, 0, 0, 0, 0, 0, 0, 1292, 1442, 0,
4861 0, 0, 0, 1558, 2382, 0, 0, 0, 0, 0,
4862 0, 0, 0, 1562, 1563, 3077, 3078, 0, 0, 3079,
4863 0, 0, 0, 0, 0, 0, 0, 0, 1564, 0,
4864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4865 0, 0, 1570, 0, 3095, 1571, 1572, 1573, 0, 1574,
4866 1575, 1576, 1577, 1578, 1579, 0, 0, 0, 0, 0,
4867 0, 0, 1841, 0, 1565, 0, 0, 1566, 3107, 0,
4868 0, 0, 0, 0, 0, 0, 0, 0, 0, 1582,
4869 0, 1567, 0, 0, 1568, 0, 0, 1866, 1866, 0,
4870 1443, 1443, 1443, 1443, 1443, 1443, 0, 1559, 1443, 1443,
4871 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1866, 0,
4872 0, 0, 0, 1560, 0, 0, 0, 0, 1561, 0,
4873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4874 0, 3151, 0, 0, 0, 0, 0, 0, 0, 0,
4875 0, 1562, 1563, 0, 0, 0, 0, 0, 0, 2893,
4876 0, 0, 0, 3168, 0, 0, 1564, 1048, 0, 0,
4877 0, 0, 0, 0, 0, 0, 0, 3178, 0, 0,
4878 0, 0, 0, 0, 0, 0, 0, 1569, 0, 0,
4879 1048, 0, 0, 0, 0, 0, 1582, 1582, 0, 0,
4880 0, 0, 1565, 0, 0, 1566, 0, 0, 3201, 0,
4881 0, 0, 0, 0, 0, 0, 0, 0, 0, 1567,
4882 0, 0, 1568, 0, 0, 0, 0, 0, 0, 0,
4883 0, 0, 0, 0, 0, 0, 1582, 0, 0, 0,
4884 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 0, 0,
4885 0, 0, 0, 1443, 1443, 3226, 1582, 1582, 0, 0,
4886 0, 0, 0, 0, 0, 2893, 0, 0, 1582, 0,
4887 0, 1582, 0, 0, 0, 0, 0, 0, 1048, 1582,
4888 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 0,
4889 0, 1570, 0, 0, 1571, 1572, 1573, 0, 1574, 1575,
4890 1576, 1577, 1578, 1579, 0, 0, 0, 0, 3268, 0,
4891 0, 0, 0, 1545, 1582, 1569, 1546, 0, 0, 0,
4892 1547, 1548, 1549, 1550, 1551, 1552, 1553, 0, 0, 0,
4893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4894 0, 1554, 0, 0, 0, 0, 0, 0, 0, 0,
4895 0, 1556, 0, 0, 0, 0, 0, 0, 1557, 0,
4896 0, 0, 0, 0, 0, 1443, 0, 0, 0, 0,
4897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4898 0, 0, 0, 1558, 0, 0, 0, 0, 0, 0,
4899 0, 0, 0, 0, 0, 3322, 3322, 0, 0, 0,
4900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4901 0, 0, 0, 0, 0, 0, 0, 0, 0, 1570,
4902 0, 3322, 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577,
4903 1578, 1579, 1582, 0, 0, 0, 1977, 0, 0, 0,
4904 0, 0, 1582, 1582, 0, 0, 0, 0, 0, 0,
4905 0, 0, 0, 0, 0, 0, 0, 3322, 0, 0,
4906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4907 0, 0, 0, 0, 0, 0, 0, 1559, 0, 0,
4908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4909 0, 0, 0, 1560, 0, 0, 0, 0, 1561, 0,
4910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4912 0, 1562, 1563, 0, 0, 0, 0, 0, 0, 0,
4913 0, 0, 0, 0, 0, 0, 1564, 0, 0, 0,
4914 1582, 1582, 1582, 0, 0, 1866, 1866, 1866, 1866, 1866,
4915 1866, 0, 0, 0, 1866, 1866, 1866, 1866, 1866, 1866,
4916 1866, 1866, 1866, 1866, 0, 0, 0, 0, 1582, 1582,
4917 0, 0, 1565, 0, 0, 1566, 0, 0, 0, 0,
4918 0, 0, 0, 0, 0, 0, 0, 0, 0, 1567,
4919 0, 0, 1568, 0, 0, 0, 1582, 0, 0, 0,
4920 1545, 0, 1582, 1546, 0, 0, 0, 1547, 1548, 1549,
4921 1550, 1551, 1552, 1553, 0, 0, 0, 0, 0, 0,
4922 1582, 0, 0, 0, 0, 0, 0, 0, 1554, 0,
4923 0, 0, 0, 1582, 0, 0, 1582, 1582, 1556, 0,
4924 0, 0, 0, 1866, 1866, 1557, 0, 0, 0, 0,
4925 0, 0, 0, 0, 0, 0, 0, 1582, 1443, 1443,
4926 1582, 0, 1582, 0, 0, 0, 1582, 0, 0, 0,
4927 1558, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4928 0, 0, 0, 0, 0, 1569, 0, 0, 0, 0,
4929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4931 0, 0, 0, 0, 0, 0, 0, 0, 1545, 1582,
4932 0, 1546, 0, 0, 0, 1547, 1548, 1549, 1550, 1551,
4933 1552, 1553, 0, 0, 0, 0, 0, 0, 0, 0,
4934 0, 0, 0, 0, 0, 0, 1554, 0, 0, 0,
4935 0, 0, 0, 0, 0, 0, 1556, 0, 0, 0,
4936 0, 0, 0, 1557, 1559, 0, 0, 0, 0, 0,
4937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4938 1560, 0, 0, 0, 0, 1561, 0, 0, 1558, 1570,
4939 0, 0, 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577,
4940 1578, 1579, 0, 0, 0, 0, 1977, 0, 1562, 1563,
4941 0, 0, 0, 0, 0, 0, 0, 1582, 0, 0,
4942 0, 0, 0, 1564, 0, 0, 0, 0, 0, 0,
4943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4944 0, 0, 0, 0, 0, 0, 0, 0, 1443, 0,
4945 0, 0, 0, 0, 0, 0, 0, 0, 0, 1565,
4946 0, 0, 1566, 0, 0, 0, 0, 0, 0, 0,
4947 0, 0, 0, 0, 0, 0, 1567, 0, 0, 1568,
4948 0, 0, 1559, 0, 0, 0, 1582, 0, 1582, 0,
4949 0, 0, 1582, 0, 0, 0, 0, 0, 1560, 0,
4950 0, 1582, 0, 1561, 1582, 0, 1582, 0, 0, 0,
4951 1582, 0, 0, 1866, 1866, 0, 0, 1582, 1582, 0,
4952 0, 0, 0, 0, 0, 1582, 1562, 1563, 0, 0,
4953 0, 0, 0, 0, 1582, 0, 0, 0, 0, 0,
4954 0, 1564, 0, 0, 0, 0, 0, 0, 0, 1582,
4955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4956 0, 0, 0, 1545, 0, 0, 1546, 0, 0, 0,
4957 1547, 1548, 1569, 0, 1551, 1552, 1553, 1565, 0, 0,
4958 1566, 0, 0, 0, 0, 0, 0, 1443, 0, 0,
4959 0, 1554, 0, 0, 1567, 0, 0, 1568, 0, 0,
4960 0, 1556, 0, 0, 0, 0, 0, 0, 1557, 0,
4961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4963 0, 0, 0, 1558, 0, 0, 0, 0, 0, 0,
4964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4967 0, 0, 0, 0, 0, 0, 1570, 0, 0, 1571,
4968 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579, 0,
4969 1569, 0, 0, 2288, 0, 0, 0, 0, 0, 0,
4970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4971 0, 0, 0, 0, 0, 0, 0, 0, 0, 1866,
4972 1443, 0, 0, 0, 0, 0, 0, 1559, 0, 0,
4973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4974 0, 0, 0, 1560, 1582, 1582, 0, 0, 1561, 0,
4975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4976 0, 0, 1582, 0, 0, 0, 1582, 0, 1582, 1582,
4977 1582, 1562, 1563, 1582, 0, 0, 1582, 1582, 0, 0,
4978 0, 0, 0, 0, 1582, 0, 1564, 0, 0, 0,
4979 0, 0, 0, 0, 1570, 0, 0, 1571, 1572, 1573,
4980 0, 1574, 1575, 1576, 1577, 1578, 1579, 0, 0, 0,
4981 0, 2373, 0, 0, 0, 0, 0, 0, 0, 0,
4982 0, 0, 1565, 0, 1582, 1566, 0, 0, 0, 0,
4983 1866, 0, 0, 0, 0, 0, 0, 0, 0, 1567,
4984 0, 0, 1568, 1582, 0, 0, 0, 0, 0, 0,
4985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4987 1582, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4989 0, 0, 0, 0, 0, 0, 1866, 0, 0, 0,
4990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4992 0, 0, 0, 0, 0, 0, 0, 0, 1582, 1582,
4993 1582, 0, 0, 0, 0, 1569, 0, 0, 0, 0,
4994 0, 0, 0, 0, 0, 0, 1582, 0, 0, 0,
4995 0, 0, 0, 0, 0, 0, 0, 0, 1582, 0,
4996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5000 0, 0, 1582, 0, 0, 0, 0, 0, 0, 0,
5001 0, 0, 0, 0, 0, 0, 0, 0, 0, 1582,
5002 0, 0, 0, 0, 0, 0, 0, 0, 0, 1582,
5003 0, 0, 0, 0, 0, 0, 0, 0, 0, 1570,
5004 0, 0, 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577,
5005 1578, 1579, 1582, 0, 0, 0, 0, 0, 0, 0,
5006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5007 0, 0, 0, 0, 0, 0, 0, 1582, 0, 0,
5008 0, 0, 0, 0, 0, 109, 985, 629, 986, 987,
5009 988, 989, 990, 0, 0, 0, 0, 0, 0, 0,
5010 0, 0, 0, 0, 110, 111, 112, 113, 114, 115,
5011 116, 117, 0, 118, 119, 120, 0, 0, 0, 1582,
5012 0, 991, 0, 0, 121, 122, 123, 0, 124, 125,
5013 126, 127, 128, 129, 130, 131, 992, 133, 993, 994,
5014 0, 136, 137, 138, 139, 140, 141, 995, 599, 142,
5015 143, 996, 997, 146, 0, 147, 148, 149, 150, 600,
5016 0, 601, 0, 998, 154, 155, 156, 157, 158, 159,
5017 160, 161, 162, 1582, 163, 164, 165, 166, 167, 168,
5018 0, 169, 170, 171, 172, 173, 174, 175, 176, 177,
5019 178, 179, 999, 1000, 182, 1001, 183, 0, 184, 185,
5020 186, 187, 188, 189, 0, 190, 191, 192, 193, 194,
5021 0, 0, 195, 196, 761, 198, 199, 0, 200, 201,
5022 202, 0, 203, 204, 205, 0, 206, 207, 208, 209,
5023 1002, 211, 212, 213, 214, 215, 602, 1003, 217, 0,
5024 218, 219, 1004, 221, 0, 222, 0, 223, 224, 21,
5025 225, 226, 227, 228, 229, 230, 0, 231, 0, 1005,
5026 1006, 234, 0, 235, 236, 237, 238, 239, 240, 241,
5027 242, 243, 244, 245, 246, 0, 247, 248, 249, 250,
5028 251, 252, 253, 0, 254, 255, 256, 257, 258, 259,
5029 260, 261, 1007, 1008, 0, 1009, 0, 265, 266, 267,
5030 268, 269, 270, 271, 272, 273, 274, 275, 0, 0,
5031 276, 277, 278, 279, 0, 280, 281, 282, 283, 284,
5032 285, 286, 287, 1010, 289, 290, 291, 292, 293, 294,
5033 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
5034 305, 306, 1011, 308, 1012, 310, 311, 312, 313, 1013,
5035 314, 315, 316, 317, 1014, 604, 319, 1015, 321, 322,
5036 323, 0, 324, 325, 0, 0, 1016, 327, 328, 0,
5037 0, 329, 330, 331, 332, 333, 606, 335, 336, 337,
5038 338, 339, 340, 341, 342, 343, 344, 25, 26, 27,
5039 0, 345, 346, 607, 348, 349, 350, 351, 352, 353,
5040 354, 0, 355, 356, 357, 358, 359, 360, 0, 361,
5041 362, 363, 1017, 365, 366, 367, 368, 0, 369, 370,
5042 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
5043 381, 0, 382, 383, 384, 385, 386, 387, 1018, 389,
5044 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
5045 32, 0, 400, 401, 402, 403, 404, 405, 406, 407,
5046 408, 409, 410, 411, 412, 1019, 414, 0, 415, 416,
5047 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
5048 427, 428, 609, 430, 0, 431, 432, 37, 433, 434,
5049 435, 436, 437, 438, 439, 0, 1020, 1021, 0, 0,
5050 442, 443, 610, 445, 611, 1022, 447, 448, 612, 450,
5051 451, 452, 453, 454, 0, 0, 455, 456, 457, 39,
5052 458, 459, 460, 461, 0, 462, 463, 464, 465, 466,
5053 613, 1023, 0, 469, 470, 471, 472, 473, 474, 475,
5054 0, 0, 476, 0, 43, 477, 478, 479, 480, 481,
5055 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
5056 492, 493, 494, 495, 496, 497, 1024, 0, 44, 0,
5057 0, 0, 0, 1025, 1026, 1027, 0, 0, 0, 0,
5058 1028, 0, 1029, 3056, 0, 0, 0, 1030, 1031, 1032,
5059 1033, 109, 985, 629, 986, 987, 988, 989, 990, 0,
5060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5061 110, 111, 112, 113, 114, 115, 116, 117, 0, 118,
5062 119, 120, 0, 0, 0, 0, 0, 991, 0, 0,
5063 121, 122, 123, 0, 124, 125, 126, 127, 128, 129,
5064 130, 131, 992, 133, 993, 994, 0, 136, 137, 138,
5065 139, 140, 141, 995, 599, 142, 143, 996, 997, 146,
5066 0, 147, 148, 149, 150, 600, 0, 601, 0, 998,
5067 154, 155, 156, 157, 158, 159, 160, 161, 162, 0,
5068 163, 164, 165, 166, 167, 168, 0, 169, 170, 171,
5069 172, 173, 174, 175, 176, 177, 178, 179, 999, 1000,
5070 182, 1001, 183, 0, 184, 185, 186, 187, 188, 189,
5071 0, 190, 191, 192, 193, 194, 0, 0, 195, 196,
5072 761, 198, 199, 0, 200, 201, 202, 0, 203, 204,
5073 205, 0, 206, 207, 208, 209, 1002, 211, 212, 213,
5074 214, 215, 602, 1003, 217, 0, 218, 219, 1004, 221,
5075 0, 222, 0, 223, 224, 21, 225, 226, 227, 228,
5076 229, 230, 0, 231, 0, 1005, 1006, 234, 0, 235,
5077 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
5078 246, 0, 247, 248, 249, 250, 251, 252, 253, 0,
5079 254, 255, 256, 257, 258, 259, 260, 261, 1007, 1008,
5080 0, 1009, 0, 265, 266, 267, 268, 269, 270, 271,
5081 272, 273, 274, 275, 0, 0, 276, 277, 278, 279,
5082 0, 280, 281, 282, 283, 284, 285, 286, 287, 1010,
5083 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
5084 299, 300, 301, 302, 303, 304, 305, 306, 1011, 308,
5085 1012, 310, 311, 312, 313, 1013, 314, 315, 316, 317,
5086 1014, 604, 319, 1015, 321, 322, 323, 0, 324, 325,
5087 0, 0, 1016, 327, 328, 0, 0, 329, 330, 331,
5088 332, 333, 606, 335, 336, 337, 338, 339, 340, 341,
5089 342, 343, 344, 25, 26, 27, 0, 345, 346, 607,
5090 348, 349, 350, 351, 352, 353, 354, 0, 355, 356,
5091 357, 358, 359, 360, 0, 361, 362, 363, 1017, 365,
5092 366, 367, 368, 0, 369, 370, 371, 372, 373, 374,
5093 375, 376, 377, 378, 379, 380, 381, 0, 382, 383,
5094 384, 385, 386, 387, 1018, 389, 390, 391, 392, 393,
5095 394, 395, 396, 397, 398, 399, 32, 0, 400, 401,
5096 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
5097 412, 1019, 414, 0, 415, 416, 417, 418, 419, 420,
5098 421, 422, 423, 424, 425, 426, 427, 428, 609, 430,
5099 0, 431, 432, 37, 433, 434, 435, 436, 437, 438,
5100 439, 0, 1020, 1021, 0, 0, 442, 443, 610, 445,
5101 611, 1022, 447, 448, 612, 450, 451, 452, 453, 454,
5102 0, 0, 455, 456, 457, 39, 458, 459, 460, 461,
5103 0, 462, 463, 464, 465, 466, 613, 1023, 0, 469,
5104 470, 471, 472, 473, 474, 475, 0, 0, 476, 0,
5105 43, 477, 478, 479, 480, 481, 482, 483, 484, 485,
5106 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
5107 496, 497, 1024, 0, 44, 0, 0, 0, 0, 1025,
5108 1026, 1027, 0, 0, 0, 0, 1028, 0, 1029, 0,
5109 0, 0, 0, 1030, 1031, 1032, 1033, 1255, 985, 629,
5110 986, 987, 988, 989, 990, 0, 0, 0, 0, 0,
5111 0, 0, 0, 0, 0, 0, 110, 111, 112, 113,
5112 114, 115, 116, 117, 1256, 118, 119, 120, 0, 0,
5113 0, 1257, 0, 991, 0, 0, 1258, 122, 123, 0,
5114 124, 125, 126, 1259, 128, 129, 130, 131, 992, 1260,
5115 993, 994, 0, 136, 137, 138, 139, 140, 141, 995,
5116 599, 142, 143, 996, 997, 146, 0, 147, 148, 149,
5117 150, 600, 0, 1261, 0, 1262, 154, 155, 156, 157,
5118 158, 1263, 160, 161, 162, 0, 163, 164, 165, 166,
5119 167, 168, 0, 1264, 170, 171, 172, 173, 174, 175,
5120 176, 177, 178, 179, 999, 1000, 182, 1001, 183, 0,
5121 184, 185, 186, 187, 188, 189, 0, 190, 191, 192,
5122 193, 194, 1265, 0, 195, 196, 761, 198, 199, 0,
5123 200, 201, 202, 0, 203, 204, 205, 0, 206, 207,
5124 208, 209, 1002, 211, 212, 213, 214, 215, 602, 1003,
5125 217, 0, 218, 219, 1004, 221, 0, 222, 0, 223,
5126 1266, 0, 1267, 226, 227, 1268, 1269, 230, 0, 231,
5127 0, 1005, 1006, 234, 0, 235, 236, 237, 238, 239,
5128 240, 241, 1270, 243, 244, 245, 246, 0, 247, 248,
5129 249, 250, 251, 252, 253, 0, 254, 1271, 256, 257,
5130 258, 259, 260, 261, 1007, 1008, 0, 1009, 0, 265,
5131 1272, 1273, 268, 1274, 270, 271, 272, 273, 274, 275,
5132 0, 0, 276, 1275, 278, 1276, 0, 280, 281, 282,
5133 283, 284, 285, 286, 287, 1277, 289, 290, 291, 292,
5134 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
5135 303, 304, 305, 306, 1011, 1278, 1012, 310, 311, 312,
5136 313, 1013, 314, 315, 1279, 317, 1014, 604, 319, 1015,
5137 321, 322, 323, 0, 324, 325, 0, 0, 1016, 327,
5138 328, 0, 0, 329, 330, 1280, 332, 1281, 606, 335,
5139 336, 337, 338, 339, 340, 341, 342, 343, 344, 0,
5140 0, 0, 0, 345, 346, 607, 1282, 349, 350, 351,
5141 352, 353, 354, 0, 355, 356, 357, 358, 359, 360,
5142 0, 361, 362, 363, 1017, 365, 366, 367, 368, 0,
5143 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
5144 379, 380, 381, 0, 382, 383, 1283, 385, 386, 387,
5145 1018, 389, 390, 391, 392, 393, 394, 395, 396, 397,
5146 398, 399, 0, 1284, 400, 401, 402, 403, 404, 405,
5147 406, 407, 408, 409, 1285, 411, 412, 1019, 414, 0,
5148 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
5149 425, 426, 1286, 428, 609, 430, 0, 431, 432, 0,
5150 433, 1287, 435, 436, 437, 438, 439, 0, 1020, 1021,
5151 0, 0, 442, 443, 610, 445, 611, 1022, 447, 448,
5152 1288, 450, 451, 452, 453, 454, 0, 0, 455, 456,
5153 457, 0, 458, 459, 460, 461, 0, 462, 463, 464,
5154 465, 466, 467, 1023, 1289, 469, 1290, 471, 472, 473,
5155 474, 475, 0, 0, 476, 0, 0, 477, 478, 479,
5156 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
5157 490, 491, 492, 493, 494, 495, 496, 497, 1024, 0,
5158 0, 0, 0, 0, 0, 1025, 1026, 1027, 0, 0,
5159 0, 0, 1028, 0, 1029, 1291, 0, 0, 0, 1030,
5160 1031, 1032, 1033, 109, 985, 629, 986, 987, 988, 989,
5161 990, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5162 0, 0, 110, 111, 112, 113, 114, 115, 116, 117,
5163 0, 118, 119, 120, 0, 0, 0, 0, 0, 991,
5164 0, 0, 121, 122, 123, 0, 124, 125, 126, 127,
5165 128, 129, 130, 131, 992, 133, 993, 994, 1450, 136,
5166 137, 138, 139, 140, 141, 995, 599, 142, 143, 996,
5167 997, 146, 0, 147, 148, 149, 150, 600, 0, 601,
5168 0, 998, 154, 155, 156, 157, 158, 159, 160, 161,
5169 162, 0, 163, 164, 165, 166, 167, 168, 0, 169,
5170 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
5171 999, 1000, 182, 1001, 183, 0, 184, 185, 186, 187,
5172 188, 189, 0, 190, 191, 192, 193, 194, 0, 0,
5173 195, 196, 761, 198, 199, 0, 200, 201, 202, 0,
5174 203, 204, 205, 0, 206, 207, 208, 209, 1002, 211,
5175 212, 213, 214, 215, 602, 1003, 217, 0, 218, 219,
5176 1004, 221, 0, 222, 0, 223, 224, 1451, 225, 226,
5177 227, 228, 229, 230, 0, 231, 0, 1005, 1006, 234,
5178 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
5179 244, 245, 246, 0, 247, 248, 249, 250, 251, 252,
5180 253, 0, 254, 255, 256, 257, 258, 259, 260, 261,
5181 1007, 1008, 0, 1009, 0, 265, 266, 267, 268, 269,
5182 270, 271, 272, 273, 274, 275, 0, 1452, 276, 277,
5183 278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
5184 287, 1010, 289, 290, 291, 292, 293, 294, 295, 296,
5185 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
5186 1011, 308, 1012, 310, 311, 312, 313, 1013, 314, 315,
5187 316, 317, 1014, 604, 319, 1015, 321, 322, 323, 0,
5188 324, 325, 0, 0, 1016, 327, 328, 0, 0, 329,
5189 330, 331, 332, 333, 606, 335, 336, 337, 338, 339,
5190 340, 341, 342, 343, 344, 0, 0, 0, 0, 345,
5191 346, 607, 348, 349, 350, 351, 352, 353, 354, 0,
5192 355, 356, 357, 358, 359, 360, 0, 361, 362, 363,
5193 1017, 365, 366, 367, 368, 0, 369, 370, 371, 372,
5194 373, 374, 375, 376, 377, 378, 379, 380, 381, 0,
5195 382, 383, 384, 385, 386, 387, 1018, 389, 390, 391,
5196 392, 393, 394, 395, 396, 397, 398, 399, 0, 0,
5197 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
5198 410, 411, 412, 1019, 414, 0, 415, 416, 417, 418,
5199 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
5200 609, 430, 0, 431, 432, 0, 433, 434, 435, 436,
5201 437, 438, 439, 0, 1020, 1021, 0, 1453, 442, 443,
5202 610, 445, 611, 1022, 447, 448, 612, 450, 451, 452,
5203 453, 454, 0, 0, 455, 456, 457, 0, 458, 459,
5204 460, 461, 0, 462, 463, 464, 465, 466, 467, 1023,
5205 0, 469, 470, 471, 472, 473, 474, 475, 0, 0,
5206 476, 0, 0, 477, 478, 479, 480, 481, 482, 483,
5207 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
5208 494, 495, 496, 497, 1024, 0, 0, 0, 0, 0,
5209 0, 1025, 1026, 1027, 0, 0, 0, 0, 1028, 0,
5210 1029, 0, 0, 0, 0, 1030, 1031, 1032, 1033, 1255,
5211 985, 629, 986, 987, 988, 989, 990, 0, 0, 0,
5212 0, 0, 0, 0, 0, 0, 0, 0, 110, 111,
5213 112, 113, 114, 115, 116, 117, 0, 118, 119, 120,
5214 0, 0, 0, 1257, 0, 991, 0, 0, 1258, 122,
5215 123, 0, 124, 125, 126, 1259, 128, 129, 130, 131,
5216 992, 1260, 993, 994, 0, 136, 137, 138, 139, 140,
5217 141, 995, 599, 142, 143, 996, 997, 146, 0, 147,
5218 148, 149, 150, 600, 0, 1261, 0, 1262, 154, 155,
5219 156, 157, 158, 1263, 160, 161, 162, 0, 163, 164,
5220 165, 166, 167, 168, 0, 1264, 170, 171, 172, 173,
5221 174, 175, 176, 177, 178, 179, 999, 1000, 182, 1001,
5222 183, 0, 184, 185, 186, 187, 188, 189, 0, 190,
5223 191, 192, 193, 194, 0, 0, 195, 196, 761, 198,
5224 199, 0, 200, 201, 202, 0, 203, 204, 205, 0,
5225 206, 207, 208, 209, 1002, 211, 212, 213, 214, 215,
5226 602, 1003, 217, 0, 218, 219, 1004, 221, 0, 222,
5227 0, 223, 1266, 0, 1267, 226, 227, 1268, 1269, 230,
5228 0, 231, 0, 1005, 1006, 234, 0, 235, 236, 237,
5229 238, 239, 240, 241, 1270, 243, 244, 245, 246, 0,
5230 247, 248, 249, 250, 251, 252, 253, 0, 254, 1271,
5231 256, 257, 258, 259, 260, 261, 1007, 1008, 0, 1009,
5232 0, 265, 1272, 1273, 268, 1274, 270, 271, 272, 273,
5233 274, 275, 0, 0, 276, 1275, 278, 1276, 0, 280,
5234 281, 282, 283, 284, 285, 286, 287, 1277, 289, 290,
5235 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
5236 301, 302, 303, 304, 305, 306, 1011, 1278, 1012, 310,
5237 311, 312, 313, 1013, 314, 315, 1279, 317, 1014, 604,
5238 319, 1015, 321, 322, 323, 0, 324, 325, 0, 0,
5239 1016, 327, 328, 0, 0, 329, 330, 1280, 332, 1281,
5240 606, 335, 336, 337, 338, 339, 340, 341, 342, 343,
5241 344, 0, 0, 0, 0, 345, 346, 607, 1282, 349,
5242 350, 351, 352, 353, 354, 0, 355, 356, 357, 358,
5243 359, 360, 0, 361, 362, 363, 1017, 365, 366, 367,
5244 368, 0, 369, 370, 371, 372, 373, 374, 375, 376,
5245 377, 378, 379, 380, 381, 0, 382, 383, 1283, 385,
5246 386, 387, 1018, 389, 390, 391, 392, 393, 394, 395,
5247 396, 397, 398, 399, 0, 1284, 400, 401, 402, 403,
5248 404, 405, 406, 407, 408, 409, 1285, 411, 412, 1019,
5249 414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
5250 423, 424, 425, 426, 1286, 428, 609, 430, 0, 431,
5251 432, 0, 433, 1287, 435, 436, 437, 438, 439, 0,
5252 1020, 1021, 0, 0, 442, 443, 610, 445, 611, 1022,
5253 447, 448, 1288, 450, 451, 452, 453, 454, 0, 0,
5254 455, 456, 457, 0, 458, 459, 460, 461, 0, 462,
5255 463, 464, 465, 466, 467, 1023, 2186, 469, 1290, 471,
5256 472, 473, 474, 475, 0, 0, 476, 0, 0, 477,
5257 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
5258 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
5259 1024, 0, 0, 0, 0, 0, 0, 1025, 1026, 1027,
5260 0, 0, 0, 0, 1028, 0, 1029, 0, 0, 0,
5261 0, 1030, 1031, 1032, 1033, 1255, 985, 629, 986, 987,
5262 988, 989, 990, 0, 0, 0, 0, 0, 0, 0,
5263 0, 0, 0, 0, 110, 111, 112, 113, 114, 115,
5264 116, 117, 0, 118, 119, 120, 0, 0, 0, 1257,
5265 0, 991, 0, 0, 1258, 122, 123, 0, 124, 125,
5266 126, 1259, 128, 129, 130, 131, 992, 1260, 993, 994,
5267 0, 136, 137, 138, 139, 140, 141, 995, 599, 142,
5268 143, 996, 997, 146, 0, 147, 148, 149, 150, 600,
5269 0, 1261, 0, 1262, 154, 155, 156, 157, 158, 1263,
5270 160, 161, 162, 0, 163, 164, 165, 166, 167, 168,
5271 0, 1264, 170, 171, 172, 173, 174, 175, 176, 177,
5272 178, 179, 999, 1000, 182, 1001, 183, 0, 184, 185,
5273 186, 187, 188, 189, 0, 190, 191, 192, 193, 194,
5274 0, 0, 195, 196, 761, 198, 199, 0, 200, 201,
5275 202, 0, 203, 204, 205, 0, 206, 207, 208, 209,
5276 1002, 211, 212, 213, 214, 215, 602, 1003, 217, 0,
5277 218, 219, 1004, 221, 0, 222, 0, 223, 1266, 0,
5278 1267, 226, 227, 1268, 1269, 230, 0, 231, 0, 1005,
5279 1006, 234, 0, 235, 236, 237, 238, 239, 240, 241,
5280 1270, 243, 244, 245, 246, 0, 247, 248, 249, 250,
5281 251, 252, 253, 0, 254, 1271, 256, 257, 258, 259,
5282 260, 261, 1007, 1008, 0, 1009, 0, 265, 1272, 1273,
5283 268, 1274, 270, 271, 272, 273, 274, 275, 0, 0,
5284 276, 1275, 278, 1276, 0, 280, 281, 282, 283, 284,
5285 285, 286, 287, 1277, 289, 290, 291, 292, 293, 294,
5286 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
5287 305, 306, 1011, 1278, 1012, 310, 311, 312, 313, 1013,
5288 314, 315, 1279, 317, 1014, 604, 319, 1015, 321, 322,
5289 323, 0, 324, 325, 0, 0, 1016, 327, 328, 0,
5290 0, 329, 330, 1280, 332, 1281, 606, 335, 336, 337,
5291 338, 339, 340, 341, 342, 343, 344, 0, 0, 0,
5292 0, 345, 346, 607, 1282, 349, 350, 351, 352, 353,
5293 354, 0, 355, 356, 357, 358, 359, 360, 0, 361,
5294 362, 363, 1017, 365, 366, 367, 368, 0, 369, 370,
5295 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
5296 381, 0, 382, 383, 1283, 385, 386, 387, 1018, 389,
5297 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
5298 0, 1284, 400, 401, 402, 403, 404, 405, 406, 407,
5299 408, 409, 1285, 411, 412, 1019, 414, 0, 415, 416,
5300 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
5301 1286, 428, 609, 430, 0, 431, 432, 0, 433, 1287,
5302 435, 436, 437, 438, 439, 0, 1020, 1021, 0, 0,
5303 442, 443, 610, 445, 611, 1022, 447, 448, 1288, 450,
5304 451, 452, 453, 454, 0, 0, 455, 456, 457, 0,
5305 458, 459, 460, 461, 0, 462, 463, 464, 465, 466,
5306 467, 1023, 0, 469, 1290, 471, 472, 473, 474, 475,
5307 0, 0, 476, 0, 0, 477, 478, 479, 480, 481,
5308 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
5309 492, 493, 494, 495, 496, 497, 1024, 0, 0, 0,
5310 0, 0, 0, 1025, 1026, 1027, 0, 0, 0, 0,
5311 1028, 0, 1029, 2233, 0, 0, 0, 1030, 1031, 1032,
5312 1033, 109, 985, 629, 986, 987, 988, 989, 990, 0,
5313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5314 110, 111, 112, 113, 114, 115, 116, 117, -1055, 118,
5315 119, 120, 0, 0, 0, 0, -1055, 991, 0, 0,
5316 121, 122, 123, 0, 124, 125, 126, 127, 128, 129,
5317 130, 131, 992, 133, 993, 994, 0, 136, 137, 138,
5318 139, 140, 141, 995, 599, 142, 143, 996, 997, 146,
5319 0, 147, 148, 149, 150, 600, 0, 601, 0, 998,
5320 154, 155, 156, 157, 158, 159, 160, 161, 162, 0,
5321 163, 164, 165, 166, 167, 168, 0, 169, 170, 171,
5322 172, 173, 174, 175, 176, 177, 178, 179, 999, 1000,
5323 182, 1001, 183, 0, 184, 185, 186, 187, 188, 189,
5324 0, 190, 191, 192, 193, 194, 0, 0, 195, 196,
5325 761, 198, 199, 0, 200, 201, 202, 0, 203, 204,
5326 205, 0, 206, 207, 208, 209, 1002, 211, 212, 213,
5327 214, 215, 602, 1003, 217, 0, 218, 219, 1004, 221,
5328 0, 222, 0, 223, 224, 0, 225, 226, 227, 228,
5329 229, 230, 0, 231, 0, 1005, 1006, 234, 0, 235,
5330 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
5331 246, 0, 247, 248, 249, 250, 251, 252, 253, 0,
5332 254, 255, 256, 257, 258, 259, 260, 261, 1007, 1008,
5333 0, 1009, 0, 265, 266, 267, 268, 269, 270, 271,
5334 272, 273, 274, 275, 0, 0, 276, 277, 278, 279,
5335 0, 280, 281, 282, 283, 284, 285, 286, 287, 1010,
5336 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
5337 299, 300, 301, 302, 303, 304, 305, 306, 1011, 308,
5338 1012, 310, 311, 312, 313, 1013, 314, 315, 316, 317,
5339 1014, 604, 319, 1015, 321, 322, 323, 0, 324, 325,
5340 0, 0, 1016, 327, 328, 0, 0, 329, 330, 331,
5341 332, 333, 606, 335, 336, 337, 338, 339, 340, 341,
5342 342, 343, 344, 0, 0, 0, 0, 345, 346, 607,
5343 348, 349, 350, 351, 352, 353, 354, 0, 355, 356,
5344 357, 358, 359, 360, 0, 361, 362, 363, 1017, 365,
5345 366, 367, 368, 0, 369, 370, 371, 372, 373, 374,
5346 375, 376, 377, 378, 379, 380, 381, 0, 382, 383,
5347 384, 385, 386, 387, 1018, 389, 390, 391, 392, 393,
5348 394, 395, 396, 397, 398, 399, 0, 0, 400, 401,
5349 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
5350 412, 1019, 414, -1055, 415, 416, 417, 418, 419, 420,
5351 421, 422, 423, 424, 425, 426, 427, 428, 609, 430,
5352 0, 431, 432, 0, 433, 434, 435, 436, 437, 438,
5353 439, 0, 1020, 1021, 0, 0, 442, 443, 610, 445,
5354 611, 1022, 447, 448, 612, 450, 451, 452, 453, 454,
5355 0, 0, 455, 456, 457, 0, 458, 459, 460, 461,
5356 0, 462, 463, 464, 465, 466, 467, 1023, 0, 469,
5357 470, 471, 472, 473, 474, 475, 0, 0, 476, 0,
5358 0, 477, 478, 479, 480, 481, 482, 483, 484, 485,
5359 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
5360 496, 497, 1024, 0, 0, 0, 0, 0, 0, 1025,
5361 1026, 1027, 0, 0, 0, 0, 1028, 0, 1029, 0,
5362 0, 0, 0, 1030, 1031, 1032, 1033, 1255, 985, 629,
5363 986, 987, 988, 989, 990, 0, 0, 0, 0, 0,
5364 0, 0, 0, 0, 0, 0, 110, 111, 112, 113,
5365 114, 115, 116, 117, 0, 118, 119, 120, 0, 0,
5366 0, 1257, 0, 991, 0, 0, 1258, 122, 123, 0,
5367 124, 125, 126, 1259, 128, 129, 130, 131, 992, 1260,
5368 993, 994, 0, 136, 137, 138, 139, 140, 141, 995,
5369 599, 142, 143, 996, 997, 146, 0, 147, 148, 149,
5370 150, 600, 0, 1261, 0, 1262, 154, 155, 156, 157,
5371 158, 1263, 160, 161, 162, 0, 163, 164, 165, 166,
5372 167, 168, 0, 1264, 170, 171, 172, 173, 174, 175,
5373 176, 177, 178, 179, 999, 1000, 182, 1001, 183, 0,
5374 184, 185, 186, 187, 188, 189, 0, 190, 191, 192,
5375 193, 194, 0, 0, 195, 196, 761, 198, 199, 0,
5376 200, 201, 202, 0, 203, 204, 205, 0, 206, 207,
5377 208, 209, 1002, 211, 212, 213, 214, 215, 602, 1003,
5378 217, 0, 218, 219, 1004, 221, 0, 222, 0, 223,
5379 1266, 0, 1267, 226, 227, 1268, 1269, 230, 0, 231,
5380 0, 1005, 1006, 234, 0, 235, 236, 237, 238, 239,
5381 240, 241, 1270, 243, 244, 245, 246, 0, 247, 248,
5382 249, 250, 251, 252, 253, 0, 254, 1271, 256, 257,
5383 258, 259, 260, 261, 1007, 1008, 0, 1009, 0, 265,
5384 1272, 1273, 268, 1274, 270, 271, 272, 273, 274, 275,
5385 0, 0, 276, 1275, 278, 1276, 0, 280, 281, 282,
5386 283, 284, 285, 286, 287, 1277, 289, 290, 291, 292,
5387 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
5388 303, 304, 305, 306, 1011, 1278, 1012, 310, 311, 312,
5389 313, 1013, 314, 315, 1279, 317, 1014, 604, 319, 1015,
5390 321, 322, 323, 0, 324, 325, 0, 0, 1016, 327,
5391 328, 0, 0, 329, 330, 1280, 332, 1281, 606, 335,
5392 336, 337, 338, 339, 340, 341, 342, 343, 344, 0,
5393 0, 0, 0, 345, 346, 607, 1282, 349, 350, 351,
5394 352, 353, 354, 0, 355, 356, 357, 358, 359, 360,
5395 0, 361, 362, 363, 1017, 365, 366, 367, 368, 0,
5396 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
5397 379, 380, 381, 0, 382, 383, 1283, 385, 386, 387,
5398 1018, 389, 390, 391, 392, 393, 394, 395, 396, 397,
5399 398, 399, 0, 1284, 400, 401, 402, 403, 404, 405,
5400 406, 407, 408, 409, 1285, 411, 412, 1019, 414, 0,
5401 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
5402 425, 426, 1286, 428, 609, 430, 0, 431, 432, 0,
5403 433, 1287, 435, 436, 437, 438, 439, 0, 1020, 1021,
5404 0, 0, 442, 443, 610, 445, 611, 1022, 447, 448,
5405 1288, 450, 451, 452, 453, 454, 0, 0, 455, 456,
5406 457, 0, 458, 459, 460, 461, 0, 462, 463, 464,
5407 465, 466, 467, 1023, 0, 469, 1290, 471, 472, 473,
5408 474, 475, 0, 0, 476, 0, 0, 477, 478, 479,
5409 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
5410 490, 491, 492, 493, 494, 495, 496, 497, 1024, 0,
5411 0, 0, 0, 0, 0, 1025, 1026, 1027, 0, 0,
5412 0, 0, 1028, 0, 1029, 2930, 0, 0, 0, 1030,
5413 1031, 1032, 1033, 1255, 985, 629, 986, 987, 988, 989,
5414 990, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5415 0, 0, 110, 111, 112, 113, 114, 115, 116, 117,
5416 0, 118, 119, 120, 0, 0, 0, 1257, 0, 991,
5417 0, 0, 1258, 122, 123, 0, 124, 125, 126, 1259,
5418 128, 129, 130, 131, 992, 1260, 993, 994, 0, 136,
5419 137, 138, 139, 140, 141, 995, 599, 142, 143, 996,
5420 997, 146, 0, 147, 148, 149, 150, 600, 0, 1261,
5421 0, 1262, 154, 155, 156, 157, 158, 1263, 160, 161,
5422 162, 0, 163, 164, 165, 166, 167, 168, 0, 1264,
5423 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
5424 999, 1000, 182, 1001, 183, 0, 184, 185, 186, 187,
5425 188, 189, 0, 190, 191, 192, 193, 194, 0, 0,
5426 195, 196, 761, 198, 199, 0, 200, 201, 202, 0,
5427 203, 204, 205, 0, 206, 207, 208, 209, 1002, 211,
5428 212, 213, 214, 215, 602, 1003, 217, 0, 218, 219,
5429 1004, 221, 0, 222, 0, 223, 1266, 0, 1267, 226,
5430 227, 1268, 1269, 230, 0, 231, 0, 1005, 1006, 234,
5431 0, 235, 236, 237, 238, 239, 240, 241, 1270, 243,
5432 244, 245, 246, 0, 247, 248, 249, 250, 251, 252,
5433 253, 0, 254, 1271, 256, 257, 258, 259, 260, 261,
5434 1007, 1008, 0, 1009, 0, 265, 1272, 1273, 268, 1274,
5435 270, 271, 272, 273, 274, 275, 0, 0, 276, 1275,
5436 278, 1276, 0, 280, 281, 282, 283, 284, 285, 286,
5437 287, 1277, 289, 290, 291, 292, 293, 294, 295, 296,
5438 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
5439 1011, 1278, 1012, 310, 311, 312, 313, 1013, 314, 315,
5440 1279, 317, 1014, 604, 319, 1015, 321, 322, 323, 0,
5441 324, 325, 0, 0, 1016, 327, 328, 0, 0, 329,
5442 330, 1280, 332, 1281, 606, 335, 336, 337, 338, 339,
5443 340, 341, 342, 343, 344, 0, 0, 0, 0, 345,
5444 346, 607, 1282, 349, 350, 351, 352, 353, 354, 0,
5445 355, 356, 357, 358, 359, 360, 0, 361, 362, 363,
5446 1017, 365, 366, 367, 368, 0, 369, 370, 371, 372,
5447 373, 374, 375, 376, 377, 378, 379, 380, 381, 0,
5448 382, 383, 1283, 385, 386, 387, 1018, 389, 390, 391,
5449 392, 393, 394, 395, 396, 397, 398, 399, 0, 1284,
5450 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
5451 1285, 411, 412, 1019, 414, 0, 415, 416, 417, 418,
5452 419, 420, 421, 422, 423, 424, 425, 426, 1286, 428,
5453 609, 430, 0, 431, 432, 0, 433, 1287, 435, 436,
5454 437, 438, 439, 0, 1020, 1021, 0, 0, 442, 443,
5455 610, 445, 611, 1022, 447, 448, 1288, 450, 451, 452,
5456 453, 454, 0, 0, 455, 456, 457, 0, 458, 459,
5457 460, 461, 0, 462, 463, 464, 465, 466, 467, 1023,
5458 0, 469, 1290, 471, 472, 473, 474, 475, 0, 0,
5459 476, 0, 0, 477, 478, 479, 480, 481, 482, 483,
5460 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
5461 494, 495, 496, 497, 1024, 0, 0, 0, 0, 0,
5462 0, 1025, 1026, 1027, 0, 0, 0, 0, 1028, 0,
5463 1029, 0, 0, 0, 0, 1030, 1031, 1032, 1033, 109,
5464 985, 629, 986, 987, 0, 989, 990, 0, 0, 0,
5465 0, 0, 0, 0, 0, 0, 0, 0, 110, 111,
5466 112, 113, 114, 115, 116, 117, 0, 118, 119, 120,
5467 0, 0, 0, 0, 0, 991, 0, 0, 121, 122,
5468 123, 0, 124, 125, 126, 127, 128, 129, 130, 131,
5469 992, 133, 993, 994, 0, 136, 137, 138, 139, 140,
5470 141, 995, 599, 142, 143, 996, 997, 146, 0, 147,
5471 148, 149, 150, 600, 0, 601, 0, 153, 154, 155,
5472 156, 157, 158, 159, 160, 161, 162, 0, 163, 164,
5473 165, 166, 167, 168, 0, 169, 170, 171, 172, 173,
5474 174, 175, 176, 177, 178, 179, 999, 1000, 182, 0,
5475 183, 0, 184, 185, 186, 187, 188, 189, 0, 190,
5476 191, 192, 193, 194, 0, 0, 195, 196, 761, 198,
5477 199, 0, 200, 201, 202, 0, 203, 204, 205, 0,
5478 206, 207, 208, 209, 1002, 211, 212, 213, 214, 215,
5479 602, 1003, 217, 0, 218, 219, 1004, 221, 0, 222,
5480 0, 223, 224, 21, 225, 226, 227, 228, 229, 230,
5481 0, 231, 0, 1005, 1006, 234, 0, 235, 236, 237,
5482 238, 239, 240, 241, 242, 243, 244, 245, 246, 0,
5483 247, 248, 249, 250, 251, 252, 253, 0, 254, 255,
5484 256, 257, 258, 259, 260, 261, 1007, 1008, 0, 1009,
5485 0, 265, 266, 267, 268, 269, 270, 271, 272, 273,
5486 274, 275, 0, 0, 276, 277, 278, 279, 0, 280,
5487 281, 282, 283, 284, 285, 286, 287, 1010, 289, 290,
5488 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
5489 301, 302, 303, 304, 305, 306, 1011, 308, 1012, 310,
5490 311, 312, 313, 0, 314, 315, 316, 317, 1014, 604,
5491 319, 1015, 321, 322, 323, 0, 324, 325, 0, 0,
5492 326, 327, 328, 0, 0, 329, 330, 331, 332, 333,
5493 606, 335, 336, 337, 338, 339, 340, 341, 342, 343,
5494 344, 25, 26, 27, 0, 345, 346, 607, 348, 349,
5495 350, 351, 352, 353, 354, 0, 355, 356, 357, 358,
5496 359, 360, 0, 361, 362, 363, 1017, 365, 366, 367,
5497 368, 0, 369, 370, 371, 372, 373, 374, 375, 376,
5498 377, 378, 379, 380, 381, 0, 382, 383, 384, 385,
5499 386, 387, 1018, 389, 390, 391, 392, 393, 394, 395,
5500 396, 397, 398, 399, 32, 0, 400, 401, 402, 403,
5501 404, 405, 406, 407, 408, 409, 410, 411, 412, 1019,
5502 414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
5503 423, 424, 425, 426, 427, 428, 609, 430, 0, 431,
5504 432, 37, 433, 434, 435, 436, 437, 438, 439, 0,
5505 1020, 1021, 0, 0, 442, 443, 610, 445, 611, 1022,
5506 447, 448, 612, 450, 451, 452, 453, 454, 0, 0,
5507 455, 456, 457, 39, 458, 459, 460, 461, 0, 462,
5508 463, 464, 465, 466, 613, 1023, 0, 469, 470, 471,
5509 472, 473, 474, 475, 0, 0, 476, 0, 43, 477,
5510 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
5511 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
5512 0, 0, 44, 0, 0, 0, 109, 985, 629, 986,
5513 987, 988, 989, 990, 1028, 0, 1029, 0, 0, 0,
5514 0, 1030, 1031, 1032, 1033, 110, 111, 112, 113, 114,
5515 115, 116, 117, 1625, 118, 119, 120, 0, 0, 0,
5516 0, 0, 991, 0, 0, 121, 122, 123, 0, 124,
5517 125, 126, 127, 128, 129, 130, 131, 992, 133, 993,
5518 994, 0, 136, 137, 138, 139, 140, 141, 995, 599,
5519 142, 143, 996, 997, 146, 0, 147, 148, 149, 150,
5520 600, 0, 601, 0, 998, 154, 155, 156, 157, 158,
5521 159, 160, 161, 162, 0, 163, 164, 165, 166, 167,
5522 168, 0, 169, 170, 171, 172, 173, 174, 175, 176,
5523 177, 178, 179, 999, 1000, 182, 1001, 183, 0, 184,
5524 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
5525 194, 0, 0, 195, 196, 761, 198, 199, 0, 200,
5526 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
5527 209, 1002, 211, 212, 213, 214, 215, 602, 1003, 217,
5528 0, 218, 219, 1004, 221, 0, 222, 0, 223, 224,
5529 0, 225, 226, 227, 228, 229, 230, 0, 231, 0,
5530 1005, 1006, 234, 0, 235, 236, 237, 238, 239, 240,
5531 241, 242, 243, 244, 245, 246, 0, 247, 248, 249,
5532 250, 251, 252, 253, 0, 254, 255, 256, 257, 258,
5533 259, 260, 261, 1007, 1008, 0, 1009, 0, 265, 266,
5534 267, 268, 269, 270, 271, 272, 273, 274, 275, 0,
5535 0, 276, 277, 278, 279, 0, 280, 281, 282, 283,
5536 284, 285, 286, 287, 1010, 289, 290, 291, 292, 293,
5537 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
5538 304, 305, 306, 1011, 308, 1012, 310, 311, 312, 313,
5539 1013, 314, 315, 316, 317, 1014, 604, 319, 1015, 321,
5540 322, 323, 0, 324, 325, 0, 0, 1016, 327, 328,
5541 0, 0, 329, 330, 331, 332, 333, 606, 335, 336,
5542 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
5543 0, 0, 345, 346, 607, 348, 349, 350, 351, 352,
5544 353, 354, 0, 355, 356, 357, 358, 359, 360, 0,
5545 361, 362, 363, 1017, 365, 366, 367, 368, 0, 369,
5546 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
5547 380, 381, 0, 382, 383, 384, 385, 386, 387, 1018,
5548 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
5549 399, 0, 0, 400, 401, 402, 403, 404, 405, 406,
5550 407, 408, 409, 410, 411, 412, 1019, 414, 0, 415,
5551 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
5552 426, 427, 428, 609, 430, 0, 431, 432, 0, 433,
5553 434, 435, 436, 437, 438, 439, 0, 1020, 1021, 0,
5554 0, 442, 443, 610, 445, 611, 1022, 447, 448, 612,
5555 450, 451, 452, 453, 454, 0, 0, 455, 456, 457,
5556 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
5557 466, 467, 1023, 0, 469, 470, 471, 472, 473, 474,
5558 475, 0, 0, 476, 0, 0, 477, 478, 479, 480,
5559 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
5560 491, 492, 493, 494, 495, 496, 497, 1024, 0, 0,
5561 0, 0, 0, 0, 1025, 1026, 1027, 0, 0, 0,
5562 0, 1028, 0, 1029, 0, 0, 0, 0, 1030, 1031,
5563 1032, 1033, 109, 1640, 629, 986, 987, 988, 1641, 990,
5564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5565 0, 110, 111, 112, 113, 114, 115, 116, 117, 1642,
5566 118, 119, 120, 0, 0, 0, 0, 0, 991, 0,
5567 0, 121, 122, 123, 0, 124, 125, 126, 127, 128,
5568 129, 130, 131, 992, 133, 993, 994, 0, 136, 137,
5569 138, 139, 140, 141, 995, 599, 142, 143, 996, 997,
5570 146, 0, 147, 148, 149, 150, 600, 0, 601, 0,
5571 998, 154, 155, 156, 157, 158, 159, 160, 161, 162,
5572 0, 163, 164, 165, 166, 167, 168, 0, 169, 170,
5573 171, 172, 173, 174, 175, 176, 177, 178, 179, 999,
5574 1000, 182, 1001, 183, 0, 184, 185, 186, 187, 188,
5575 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
5576 196, 761, 198, 199, 0, 200, 201, 202, 0, 203,
5577 204, 205, 0, 206, 207, 208, 209, 1002, 211, 212,
5578 213, 214, 215, 602, 1003, 217, 0, 218, 219, 1004,
5579 221, 0, 222, 0, 223, 224, 0, 225, 226, 227,
5580 228, 229, 230, 0, 231, 0, 1005, 1006, 234, 0,
5581 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
5582 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
5583 0, 254, 255, 256, 257, 258, 259, 260, 261, 1007,
5584 1008, 0, 1009, 0, 265, 266, 267, 268, 269, 270,
5585 271, 272, 273, 274, 275, 0, 0, 276, 277, 278,
5586 279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
5587 1010, 289, 290, 291, 292, 293, 294, 295, 296, 297,
5588 298, 299, 300, 301, 302, 303, 304, 305, 306, 1011,
5589 308, 1012, 310, 311, 312, 313, 1013, 314, 315, 316,
5590 317, 1014, 604, 319, 1015, 321, 322, 323, 0, 324,
5591 325, 0, 0, 1016, 327, 328, 0, 0, 329, 330,
5592 331, 332, 333, 606, 335, 336, 337, 338, 339, 340,
5593 341, 342, 343, 344, 0, 0, 0, 0, 345, 346,
5594 607, 348, 349, 350, 351, 352, 353, 354, 0, 355,
5595 356, 357, 358, 359, 360, 0, 361, 362, 363, 1017,
5596 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
5597 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
5598 383, 384, 385, 386, 387, 1018, 389, 390, 391, 392,
5599 393, 394, 395, 396, 397, 398, 399, 0, 0, 400,
5600 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
5601 411, 412, 1019, 414, 0, 415, 416, 417, 418, 419,
5602 420, 421, 422, 423, 424, 425, 426, 427, 428, 609,
5603 430, 0, 431, 432, 0, 433, 434, 435, 436, 437,
5604 438, 439, 0, 1020, 1021, 0, 0, 442, 443, 610,
5605 445, 611, 1022, 447, 448, 612, 450, 451, 452, 453,
5606 454, 0, 0, 455, 456, 457, 0, 458, 459, 460,
5607 461, 0, 462, 463, 464, 465, 466, 467, 1023, 0,
5608 469, 470, 471, 472, 473, 474, 475, 0, 0, 476,
5609 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
5610 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
5611 495, 496, 497, 1024, 0, 0, 0, 0, 0, 0,
5612 1025, 1026, 1027, 0, 0, 0, 0, 1028, 0, 1029,
5613 0, 0, 0, 0, 1030, 1031, 1032, 1033, 109, 985,
5614 629, 986, 987, 988, 989, 990, 0, 0, 0, 0,
5615 0, 0, 0, 0, 0, 0, 0, 110, 111, 112,
5616 113, 114, 115, 116, 117, 0, 118, 119, 120, 0,
5617 0, 0, 0, 0, 991, 0, 0, 121, 122, 123,
5618 0, 124, 125, 126, 127, 128, 129, 130, 131, 992,
5619 133, 993, 994, 0, 136, 137, 138, 139, 140, 141,
5620 995, 599, 142, 143, 996, 997, 146, 0, 147, 148,
5621 149, 150, 600, 0, 601, 0, 998, 154, 155, 156,
5622 157, 158, 159, 160, 161, 162, 0, 163, 164, 165,
5623 166, 167, 168, 0, 169, 170, 171, 172, 173, 174,
5624 175, 176, 177, 178, 179, 999, 1000, 182, 1001, 183,
5625 0, 184, 185, 186, 187, 188, 189, 0, 190, 191,
5626 192, 193, 194, 0, 0, 195, 196, 761, 198, 199,
5627 0, 200, 201, 202, 0, 203, 204, 205, 0, 206,
5628 207, 208, 209, 1002, 211, 212, 213, 214, 215, 602,
5629 1003, 217, 0, 218, 219, 1004, 221, 0, 222, 0,
5630 223, 224, 1451, 225, 226, 227, 228, 229, 230, 0,
5631 231, 0, 1005, 1006, 234, 0, 235, 236, 237, 238,
5632 239, 240, 241, 242, 243, 244, 245, 246, 0, 247,
5633 248, 249, 250, 251, 252, 253, 0, 254, 255, 256,
5634 257, 258, 259, 260, 261, 1007, 1008, 0, 1009, 0,
5635 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
5636 275, 0, 0, 276, 277, 278, 279, 0, 280, 281,
5637 282, 283, 284, 285, 286, 287, 1010, 289, 290, 291,
5638 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
5639 302, 303, 304, 305, 306, 1011, 308, 1012, 310, 311,
5640 312, 313, 1013, 314, 315, 316, 317, 1014, 604, 319,
5641 1015, 321, 322, 323, 0, 324, 325, 0, 0, 1016,
5642 327, 328, 0, 0, 329, 330, 331, 332, 333, 606,
5643 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
5644 0, 0, 0, 0, 345, 346, 607, 348, 349, 350,
5645 351, 352, 353, 354, 0, 355, 356, 357, 358, 359,
5646 360, 0, 361, 362, 363, 1017, 365, 366, 367, 368,
5647 0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
5648 378, 379, 380, 381, 0, 382, 383, 384, 385, 386,
5649 387, 1018, 389, 390, 391, 392, 393, 394, 395, 396,
5650 397, 398, 399, 0, 0, 400, 401, 402, 403, 404,
5651 405, 406, 407, 408, 409, 410, 411, 412, 1019, 414,
5652 0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
5653 424, 425, 426, 427, 428, 609, 430, 0, 431, 432,
5654 0, 433, 434, 435, 436, 437, 438, 439, 0, 1020,
5655 1021, 0, 0, 442, 443, 610, 445, 611, 1022, 447,
5656 448, 612, 450, 451, 452, 453, 454, 0, 0, 455,
5657 456, 457, 0, 458, 459, 460, 461, 0, 462, 463,
5658 464, 465, 466, 467, 1023, 0, 469, 470, 471, 472,
5659 473, 474, 475, 0, 0, 476, 0, 0, 477, 478,
5660 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
5661 489, 490, 491, 492, 493, 494, 495, 496, 497, 1024,
5662 0, 0, 0, 0, 0, 0, 1025, 1026, 1027, 0,
5663 0, 0, 0, 1028, 0, 1029, 0, 0, 0, 0,
5664 1030, 1031, 1032, 1033, 109, 985, 629, 986, 987, 988,
5665 989, 990, 0, 0, 0, 0, 0, 0, 0, 0,
5666 0, 0, 0, 110, 111, 112, 113, 114, 115, 116,
5667 117, 0, 118, 119, 120, 0, 0, 0, 0, 0,
5668 991, 0, 0, 121, 122, 123, 0, 124, 125, 126,
5669 127, 128, 129, 130, 131, 992, 133, 993, 994, 0,
5670 136, 137, 138, 139, 140, 141, 995, 599, 142, 143,
5671 996, 997, 146, 0, 147, 148, 149, 150, 600, 0,
5672 601, 0, 998, 154, 155, 156, 157, 158, 159, 160,
5673 161, 162, 0, 163, 164, 165, 166, 167, 168, 0,
5674 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
5675 179, 999, 1000, 182, 1001, 183, 0, 184, 185, 186,
5676 187, 188, 189, 0, 190, 191, 192, 193, 194, 0,
5677 0, 195, 196, 761, 198, 199, 0, 200, 201, 202,
5678 0, 203, 204, 205, 0, 206, 207, 208, 209, 1002,
5679 211, 212, 213, 214, 215, 602, 1003, 217, 0, 218,
5680 219, 1004, 221, 0, 222, 0, 223, 224, 0, 225,
5681 226, 227, 228, 229, 230, 0, 231, 0, 1005, 1006,
5682 234, 0, 235, 236, 237, 238, 239, 240, 241, 242,
5683 243, 244, 245, 246, 0, 247, 248, 249, 250, 251,
5684 252, 253, 0, 254, 255, 256, 257, 258, 259, 260,
5685 261, 1007, 1008, 0, 1009, 0, 265, 266, 267, 268,
5686 269, 270, 271, 272, 273, 274, 275, 0, 0, 276,
5687 277, 278, 279, 0, 280, 281, 282, 283, 284, 285,
5688 286, 287, 1010, 289, 290, 291, 292, 293, 294, 295,
5689 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
5690 306, 1011, 308, 1012, 310, 311, 312, 313, 1013, 314,
5691 315, 316, 317, 1014, 604, 319, 1015, 321, 322, 323,
5692 0, 324, 325, 0, 0, 1016, 327, 328, 0, 0,
5693 329, 330, 331, 332, 333, 606, 335, 336, 337, 338,
5694 339, 340, 341, 342, 343, 344, 0, 0, 0, 0,
5695 345, 346, 607, 348, 349, 350, 351, 352, 353, 354,
5696 0, 355, 356, 357, 358, 359, 360, 0, 361, 362,
5697 363, 1017, 365, 366, 367, 368, 0, 369, 370, 371,
5698 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
5699 0, 382, 383, 384, 385, 386, 387, 1018, 389, 390,
5700 391, 392, 393, 394, 395, 396, 397, 398, 399, 0,
5701 0, 400, 401, 402, 403, 404, 405, 406, 407, 408,
5702 409, 410, 411, 412, 1019, 414, 0, 415, 416, 417,
5703 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
5704 428, 609, 430, 0, 431, 432, 0, 433, 434, 435,
5705 436, 437, 438, 439, 0, 1020, 1021, 0, 0, 442,
5706 443, 610, 445, 611, 1022, 447, 448, 612, 450, 451,
5707 452, 453, 454, 0, 0, 455, 456, 457, 0, 458,
5708 459, 460, 461, 0, 462, 463, 464, 465, 466, 467,
5709 1023, 0, 469, 470, 471, 472, 473, 474, 475, 0,
5710 0, 476, 0, 0, 477, 478, 479, 480, 481, 482,
5711 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
5712 493, 494, 495, 496, 497, 1024, 0, 0, 0, 0,
5713 0, 0, 1025, 1026, 1027, 0, 0, 0, 0, 1028,
5714 0, 1029, 1969, 0, 0, 0, 1030, 1031, 1032, 1033,
5715 109, 985, 629, 986, 987, 988, 989, 990, 0, 0,
5716 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
5717 111, 112, 113, 114, 115, 116, 117, 0, 118, 119,
5718 120, 0, 0, 0, 0, 0, 991, 0, 0, 121,
5719 122, 123, 0, 124, 125, 126, 127, 128, 129, 130,
5720 131, 992, 133, 993, 994, 0, 136, 137, 138, 139,
5721 140, 141, 995, 599, 142, 143, 996, 997, 146, 0,
5722 147, 148, 149, 150, 600, 0, 601, 0, 998, 154,
5723 155, 156, 157, 158, 159, 160, 161, 162, 0, 163,
5724 164, 165, 166, 167, 168, 0, 169, 170, 171, 172,
5725 173, 174, 175, 176, 177, 178, 179, 999, 1000, 182,
5726 1001, 183, 0, 184, 185, 186, 187, 188, 189, 0,
5727 190, 191, 192, 193, 194, 0, 0, 195, 196, 761,
5728 198, 199, 0, 200, 201, 202, 0, 203, 204, 205,
5729 0, 206, 207, 208, 209, 1002, 211, 212, 213, 214,
5730 215, 602, 1003, 217, 0, 218, 219, 1004, 221, 0,
5731 222, 0, 223, 224, 0, 225, 226, 227, 228, 229,
5732 230, 0, 231, 0, 1005, 1006, 234, 0, 235, 236,
5733 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
5734 0, 247, 248, 249, 250, 251, 252, 253, 0, 254,
5735 255, 256, 257, 258, 259, 260, 261, 1007, 1008, 0,
5736 1009, 0, 265, 266, 267, 268, 269, 270, 271, 272,
5737 273, 274, 275, 0, 0, 276, 277, 278, 279, 0,
5738 280, 281, 282, 283, 284, 285, 286, 287, 1010, 289,
5739 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
5740 300, 301, 302, 303, 304, 305, 306, 1011, 308, 1012,
5741 310, 311, 312, 313, 1013, 314, 315, 316, 317, 1014,
5742 604, 319, 1015, 321, 322, 323, 0, 324, 325, 0,
5743 0, 1016, 327, 328, 0, 0, 329, 330, 331, 332,
5744 333, 606, 335, 336, 337, 338, 339, 340, 341, 342,
5745 343, 344, 0, 0, 0, 0, 345, 346, 607, 348,
5746 349, 350, 351, 352, 353, 354, 0, 355, 356, 357,
5747 358, 359, 360, 0, 361, 362, 363, 1017, 365, 366,
5748 367, 368, 0, 369, 370, 371, 372, 373, 374, 375,
5749 376, 377, 378, 379, 380, 381, 0, 382, 383, 384,
5750 385, 386, 387, 1018, 389, 390, 391, 392, 393, 394,
5751 395, 396, 397, 398, 399, 0, 0, 400, 401, 402,
5752 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
5753 1019, 414, 0, 415, 416, 417, 418, 419, 420, 421,
5754 422, 423, 424, 425, 426, 427, 428, 609, 430, 0,
5755 431, 432, 2565, 433, 434, 435, 436, 437, 438, 439,
5756 0, 1020, 1021, 0, 0, 442, 443, 610, 445, 611,
5757 1022, 447, 448, 612, 450, 451, 452, 453, 454, 0,
5758 0, 455, 456, 457, 0, 458, 459, 460, 461, 0,
5759 462, 463, 464, 465, 466, 467, 1023, 0, 469, 470,
5760 471, 472, 473, 474, 475, 0, 0, 476, 0, 0,
5761 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
5762 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
5763 497, 1024, 0, 0, 0, 0, 0, 0, 1025, 1026,
5764 1027, 0, 0, 0, 0, 1028, 0, 1029, 0, 0,
5765 0, 0, 1030, 1031, 1032, 1033, 109, 985, 629, 986,
5766 987, 988, 989, 990, 0, 0, 0, 0, 0, 0,
5767 0, 0, 0, 0, 0, 110, 111, 112, 113, 114,
5768 115, 116, 117, 0, 118, 119, 120, 0, 0, 0,
5769 0, 0, 991, 0, 0, 121, 122, 123, 0, 124,
5770 125, 126, 127, 128, 129, 130, 131, 992, 133, 993,
5771 994, 0, 136, 137, 138, 139, 140, 141, 995, 599,
5772 142, 143, 996, 997, 146, 0, 147, 148, 149, 150,
5773 600, 0, 601, 0, 998, 154, 155, 156, 157, 158,
5774 159, 160, 161, 162, 0, 163, 164, 165, 166, 167,
5775 168, 0, 169, 170, 171, 172, 173, 174, 175, 176,
5776 177, 178, 179, 999, 1000, 182, 1001, 183, 0, 184,
5777 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
5778 194, 0, 0, 195, 196, 761, 198, 199, 0, 200,
5779 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
5780 209, 1002, 211, 212, 213, 214, 215, 602, 1003, 217,
5781 0, 218, 219, 1004, 221, 0, 222, 0, 223, 224,
5782 0, 225, 226, 227, 228, 229, 230, 0, 231, 0,
5783 1005, 1006, 234, 0, 235, 236, 237, 238, 239, 240,
5784 241, 242, 243, 244, 245, 246, 0, 247, 248, 249,
5785 250, 251, 252, 253, 0, 254, 255, 256, 257, 258,
5786 259, 260, 261, 1007, 1008, 0, 1009, 0, 265, 266,
5787 267, 268, 269, 270, 271, 272, 273, 274, 275, 0,
5788 0, 276, 277, 278, 279, 0, 280, 281, 282, 283,
5789 284, 285, 286, 287, 1010, 289, 290, 291, 292, 293,
5790 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
5791 304, 305, 306, 1011, 308, 1012, 310, 311, 312, 313,
5792 1013, 314, 315, 316, 317, 1014, 604, 319, 1015, 321,
5793 322, 323, 0, 324, 325, 0, 0, 1016, 327, 328,
5794 0, 0, 329, 330, 331, 332, 333, 606, 335, 336,
5795 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
5796 0, 0, 345, 346, 607, 348, 349, 350, 351, 352,
5797 353, 354, 0, 355, 356, 357, 358, 359, 360, 0,
5798 361, 362, 363, 1017, 365, 366, 367, 368, 0, 369,
5799 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
5800 380, 381, 0, 382, 383, 384, 385, 386, 387, 1018,
5801 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
5802 399, 0, 0, 400, 401, 402, 403, 404, 405, 406,
5803 407, 408, 409, 410, 411, 412, 1019, 414, 0, 415,
5804 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
5805 426, 427, 428, 609, 430, 0, 431, 432, 0, 433,
5806 434, 435, 436, 437, 438, 439, 0, 1020, 1021, 0,
5807 0, 442, 443, 610, 445, 611, 1022, 447, 448, 612,
5808 450, 451, 452, 453, 454, 0, 0, 455, 456, 457,
5809 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
5810 466, 467, 1023, 0, 469, 470, 471, 472, 473, 474,
5811 475, 0, 2673, 476, 0, 0, 477, 478, 479, 480,
5812 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
5813 491, 492, 493, 494, 495, 496, 497, 1024, 0, 0,
5814 0, 0, 0, 0, 1025, 1026, 1027, 0, 0, 0,
5815 0, 1028, 0, 1029, 0, 0, 0, 0, 1030, 1031,
5816 1032, 1033, 109, 985, 629, 986, 987, 988, 989, 990,
5817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5818 0, 110, 111, 112, 113, 114, 115, 116, 117, 2881,
5819 118, 119, 120, 0, 0, 0, 0, 0, 991, 0,
5820 0, 121, 122, 123, 0, 124, 125, 126, 127, 128,
5821 129, 130, 131, 992, 133, 993, 994, 0, 136, 137,
5822 138, 139, 140, 141, 995, 599, 142, 143, 996, 997,
5823 146, 0, 147, 148, 149, 150, 600, 0, 601, 0,
5824 998, 154, 155, 156, 157, 158, 159, 160, 161, 162,
5825 0, 163, 164, 165, 166, 167, 168, 0, 169, 170,
5826 2882, 172, 173, 174, 175, 176, 177, 178, 179, 999,
5827 1000, 182, 1001, 183, 0, 184, 185, 186, 187, 188,
5828 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
5829 196, 761, 198, 199, 0, 200, 201, 202, 0, 203,
5830 204, 205, 0, 206, 207, 208, 209, 1002, 211, 212,
5831 213, 214, 215, 602, 1003, 217, 0, 218, 219, 1004,
5832 221, 0, 222, 0, 223, 224, 0, 225, 226, 227,
5833 228, 229, 230, 0, 231, 0, 2883, 1006, 234, 0,
5834 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
5835 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
5836 0, 254, 255, 256, 257, 258, 259, 260, 261, 1007,
5837 1008, 0, 1009, 0, 265, 266, 267, 268, 269, 270,
5838 271, 272, 273, 274, 275, 0, 0, 276, 277, 278,
5839 279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
5840 1010, 289, 290, 291, 292, 293, 294, 295, 296, 297,
5841 298, 299, 300, 301, 302, 303, 304, 305, 306, 1011,
5842 308, 1012, 310, 311, 312, 313, 1013, 314, 315, 316,
5843 317, 1014, 604, 319, 1015, 321, 322, 323, 0, 324,
5844 325, 0, 0, 1016, 327, 328, 0, 0, 329, 330,
5845 331, 332, 333, 606, 335, 336, 337, 338, 339, 340,
5846 341, 342, 343, 344, 0, 0, 0, 0, 345, 346,
5847 607, 348, 349, 350, 351, 352, 353, 354, 0, 355,
5848 356, 357, 358, 359, 360, 0, 361, 362, 363, 1017,
5849 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
5850 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
5851 383, 384, 385, 386, 2884, 1018, 389, 390, 391, 392,
5852 393, 394, 395, 396, 397, 398, 399, 0, 0, 400,
5853 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
5854 411, 412, 1019, 414, 0, 415, 416, 417, 418, 419,
5855 420, 421, 422, 423, 424, 425, 426, 427, 428, 609,
5856 430, 0, 431, 432, 0, 433, 434, 435, 436, 437,
5857 438, 439, 0, 1020, 1021, 0, 0, 442, 443, 610,
5858 445, 611, 1022, 447, 448, 612, 450, 451, 452, 453,
5859 454, 0, 0, 455, 456, 457, 0, 458, 459, 460,
5860 461, 0, 462, 463, 464, 465, 466, 467, 1023, 0,
5861 469, 470, 471, 472, 473, 474, 475, 0, 0, 476,
5862 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
5863 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
5864 495, 496, 497, 1024, 0, 0, 0, 0, 0, 0,
5865 1025, 1026, 1027, 0, 0, 0, 0, 1028, 0, 2885,
5866 0, 0, 0, 0, 1030, 1031, 1032, 1033, 109, 985,
5867 629, 986, 987, 988, 989, 990, 0, 0, 0, 0,
5868 0, 0, 0, 0, 0, 0, 0, 110, 111, 112,
5869 113, 114, 115, 116, 117, 0, 118, 119, 120, 0,
5870 0, 0, 0, 0, 991, 0, 0, 121, 122, 123,
5871 0, 124, 125, 126, 127, 128, 129, 130, 131, 992,
5872 133, 993, 994, 0, 136, 137, 138, 139, 140, 141,
5873 995, 599, 142, 143, 996, 997, 146, 0, 147, 148,
5874 149, 150, 600, 0, 601, 0, 998, 154, 155, 156,
5875 157, 158, 159, 160, 161, 162, 0, 163, 164, 165,
5876 166, 167, 168, 0, 169, 170, 171, 172, 173, 174,
5877 175, 176, 177, 178, 179, 999, 1000, 182, 1001, 183,
5878 0, 184, 185, 186, 187, 188, 189, 0, 190, 191,
5879 192, 193, 194, 0, 0, 195, 196, 761, 198, 199,
5880 0, 200, 201, 202, 0, 203, 204, 205, 0, 206,
5881 207, 208, 209, 1002, 211, 212, 213, 214, 215, 602,
5882 1003, 217, 0, 218, 219, 1004, 221, 0, 222, 0,
5883 223, 224, 0, 225, 226, 227, 228, 229, 230, 0,
5884 231, 0, 1005, 1006, 234, 0, 235, 236, 237, 238,
5885 239, 240, 241, 242, 243, 244, 245, 246, 0, 247,
5886 248, 249, 250, 251, 252, 253, 0, 254, 255, 256,
5887 257, 258, 259, 260, 261, 1007, 1008, 0, 1009, 0,
5888 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
5889 275, 0, 0, 276, 277, 278, 279, 0, 280, 281,
5890 282, 283, 284, 285, 286, 287, 1010, 289, 290, 291,
5891 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
5892 302, 303, 304, 305, 306, 1011, 308, 1012, 310, 311,
5893 312, 313, 1013, 314, 315, 316, 317, 1014, 604, 319,
5894 1015, 321, 322, 323, 0, 324, 325, 0, 0, 1016,
5895 327, 328, 0, 0, 329, 330, 331, 332, 333, 606,
5896 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
5897 0, 0, 0, 0, 345, 346, 607, 348, 349, 350,
5898 351, 352, 353, 354, 0, 355, 356, 357, 358, 359,
5899 360, 0, 361, 362, 363, 1017, 365, 366, 367, 368,
5900 0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
5901 378, 379, 380, 381, 0, 382, 383, 384, 385, 386,
5902 387, 1018, 389, 390, 391, 392, 393, 394, 395, 396,
5903 397, 398, 399, 0, 0, 400, 401, 402, 403, 404,
5904 405, 406, 407, 408, 409, 410, 411, 412, 1019, 414,
5905 0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
5906 424, 425, 426, 427, 428, 609, 430, 0, 431, 432,
5907 3018, 433, 434, 435, 436, 437, 438, 439, 0, 1020,
5908 1021, 0, 0, 442, 443, 610, 445, 611, 1022, 447,
5909 448, 612, 450, 451, 452, 453, 454, 0, 0, 455,
5910 456, 457, 0, 458, 459, 460, 461, 0, 462, 463,
5911 464, 465, 466, 467, 1023, 0, 469, 470, 471, 472,
5912 473, 474, 475, 0, 0, 476, 0, 0, 477, 478,
5913 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
5914 489, 490, 491, 492, 493, 494, 495, 496, 497, 1024,
5915 0, 0, 0, 0, 0, 0, 1025, 1026, 1027, 0,
5916 0, 0, 0, 1028, 0, 1029, 0, 0, 0, 0,
5917 1030, 1031, 1032, 1033, 109, 985, 629, 986, 987, 988,
5918 989, 990, 0, 0, 0, 0, 0, 0, 0, 0,
5919 0, 0, 0, 110, 111, 112, 113, 114, 115, 116,
5920 117, 0, 118, 119, 120, 0, 0, 0, 0, 0,
5921 991, 0, 0, 121, 122, 123, 0, 124, 125, 126,
5922 127, 128, 129, 130, 131, 992, 133, 993, 994, 0,
5923 136, 137, 138, 139, 140, 141, 995, 599, 142, 143,
5924 996, 997, 146, 0, 147, 148, 149, 150, 600, 0,
5925 601, 0, 998, 154, 155, 156, 157, 158, 159, 160,
5926 161, 162, 0, 163, 164, 165, 166, 167, 168, 0,
5927 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
5928 179, 999, 1000, 182, 1001, 183, 0, 184, 185, 186,
5929 187, 188, 189, 0, 190, 191, 192, 193, 194, 0,
5930 0, 195, 196, 761, 198, 199, 0, 200, 201, 202,
5931 0, 203, 204, 205, 0, 206, 207, 208, 209, 1002,
5932 211, 212, 213, 214, 215, 602, 1003, 217, 0, 218,
5933 219, 1004, 221, 0, 222, 0, 223, 224, 0, 225,
5934 226, 227, 228, 229, 230, 0, 231, 0, 1005, 1006,
5935 234, 0, 235, 236, 237, 238, 239, 240, 241, 242,
5936 243, 244, 245, 246, 0, 247, 248, 249, 250, 251,
5937 252, 253, 0, 254, 255, 256, 257, 258, 259, 260,
5938 261, 1007, 1008, 0, 1009, 0, 265, 266, 267, 268,
5939 269, 270, 271, 272, 273, 274, 275, 0, 0, 276,
5940 277, 278, 279, 0, 280, 281, 282, 283, 284, 285,
5941 286, 287, 1010, 289, 290, 291, 292, 293, 294, 295,
5942 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
5943 306, 1011, 308, 1012, 310, 311, 312, 313, 1013, 314,
5944 315, 316, 317, 1014, 604, 319, 1015, 321, 322, 323,
5945 0, 324, 325, 0, 0, 1016, 327, 328, 0, 0,
5946 329, 330, 331, 332, 333, 606, 335, 336, 337, 338,
5947 339, 340, 341, 342, 343, 344, 0, 0, 0, 0,
5948 345, 346, 607, 348, 349, 350, 351, 352, 353, 354,
5949 0, 355, 356, 357, 358, 359, 360, 0, 361, 362,
5950 363, 1017, 365, 366, 367, 368, 0, 369, 370, 371,
5951 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
5952 0, 382, 383, 384, 385, 386, 387, 1018, 389, 390,
5953 391, 392, 393, 394, 395, 396, 397, 398, 399, 0,
5954 0, 400, 401, 402, 403, 404, 405, 406, 407, 408,
5955 409, 410, 411, 412, 1019, 414, 0, 415, 416, 417,
5956 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
5957 428, 609, 430, 0, 431, 432, 3150, 433, 434, 435,
5958 436, 437, 438, 439, 0, 1020, 1021, 0, 0, 442,
5959 443, 610, 445, 611, 1022, 447, 448, 612, 450, 451,
5960 452, 453, 454, 0, 0, 455, 456, 457, 0, 458,
5961 459, 460, 461, 0, 462, 463, 464, 465, 466, 467,
5962 1023, 0, 469, 470, 471, 472, 473, 474, 475, 0,
5963 0, 476, 0, 0, 477, 478, 479, 480, 481, 482,
5964 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
5965 493, 494, 495, 496, 497, 1024, 0, 0, 0, 0,
5966 0, 0, 1025, 1026, 1027, 0, 0, 0, 0, 1028,
5967 0, 1029, 0, 0, 0, 0, 1030, 1031, 1032, 1033,
5968 109, 985, 629, 986, 987, 988, 989, 990, 0, 0,
5969 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
5970 111, 112, 113, 114, 115, 116, 117, 0, 118, 119,
5971 120, 0, 0, 0, 0, 0, 991, 0, 0, 121,
5972 122, 123, 0, 124, 125, 126, 127, 128, 129, 130,
5973 131, 992, 133, 993, 994, 0, 136, 137, 138, 139,
5974 140, 141, 995, 599, 142, 143, 996, 997, 146, 0,
5975 147, 148, 149, 150, 600, 0, 601, 0, 998, 154,
5976 155, 156, 157, 158, 159, 160, 161, 162, 0, 163,
5977 164, 165, 166, 167, 168, 0, 169, 170, 171, 172,
5978 173, 174, 175, 176, 177, 178, 179, 999, 1000, 182,
5979 1001, 183, 0, 184, 185, 186, 187, 188, 189, 0,
5980 190, 191, 192, 193, 194, 0, 0, 195, 196, 761,
5981 198, 199, 0, 200, 201, 202, 0, 203, 204, 205,
5982 0, 206, 207, 208, 209, 1002, 211, 212, 213, 214,
5983 215, 602, 1003, 217, 0, 218, 219, 1004, 221, 0,
5984 222, 0, 223, 224, 0, 225, 226, 227, 228, 229,
5985 230, 0, 231, 0, 1005, 1006, 234, 0, 235, 236,
5986 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
5987 0, 247, 248, 249, 250, 251, 252, 253, 0, 254,
5988 255, 256, 257, 258, 259, 260, 261, 1007, 1008, 0,
5989 1009, 0, 265, 266, 267, 268, 269, 270, 271, 272,
5990 273, 274, 275, 0, 0, 276, 277, 278, 279, 0,
5991 280, 281, 282, 283, 284, 285, 286, 287, 1010, 289,
5992 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
5993 300, 301, 302, 303, 304, 305, 306, 1011, 308, 1012,
5994 310, 311, 312, 313, 1013, 314, 315, 316, 317, 1014,
5995 604, 319, 1015, 321, 322, 323, 0, 324, 325, 0,
5996 0, 1016, 327, 328, 0, 0, 329, 330, 331, 332,
5997 333, 606, 335, 336, 337, 338, 339, 340, 341, 342,
5998 343, 344, 0, 0, 0, 0, 345, 346, 607, 348,
5999 349, 350, 351, 352, 353, 354, 0, 355, 356, 357,
6000 358, 359, 360, 0, 361, 362, 363, 1017, 365, 366,
6001 367, 368, 0, 369, 370, 371, 372, 373, 374, 375,
6002 376, 377, 378, 379, 380, 381, 0, 382, 383, 384,
6003 385, 386, 387, 1018, 389, 390, 391, 392, 393, 394,
6004 395, 396, 397, 398, 399, 0, 0, 400, 401, 402,
6005 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
6006 1019, 414, 0, 415, 416, 417, 418, 419, 420, 421,
6007 422, 423, 424, 425, 426, 427, 428, 609, 430, 0,
6008 431, 432, 0, 433, 434, 435, 436, 437, 438, 439,
6009 0, 1020, 1021, 0, 0, 442, 443, 610, 445, 611,
6010 1022, 447, 448, 612, 450, 451, 452, 453, 454, 0,
6011 0, 455, 456, 457, 0, 458, 459, 460, 461, 0,
6012 462, 463, 464, 465, 466, 467, 1023, 0, 469, 470,
6013 471, 472, 473, 474, 475, 0, 0, 476, 0, 0,
6014 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
6015 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
6016 497, 1024, 0, 0, 0, 0, 0, 0, 1025, 1026,
6017 1027, 0, 0, 0, 0, 1028, 0, 1029, 0, 0,
6018 0, 0, 1030, 1031, 1032, 1033, 109, 985, 629, 986,
6019 987, 988, 989, 990, 0, 0, 0, 0, 0, 0,
6020 0, 0, 0, 0, 0, 110, 111, 112, 113, 114,
6021 115, 116, 117, 0, 118, 119, 120, 0, 0, 0,
6022 0, 0, 991, 0, 0, 121, 122, 123, 0, 124,
6023 125, 126, 127, 128, 129, 130, 131, 992, 133, 993,
6024 994, 0, 136, 137, 138, 139, 140, 141, 995, 599,
6025 142, 143, 996, 997, 146, 0, 147, 148, 149, 150,
6026 600, 0, 601, 0, 998, 154, 155, 156, 157, 158,
6027 159, 160, 161, 162, 0, 163, 164, 165, 166, 167,
6028 168, 0, 169, 170, 171, 172, 173, 174, 175, 176,
6029 177, 178, 179, 999, 1000, 182, 1001, 183, 0, 184,
6030 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
6031 194, 0, 0, 195, 196, 761, 198, 199, 0, 200,
6032 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
6033 209, 1002, 211, 212, 213, 214, 215, 602, 1003, 217,
6034 0, 218, 219, 1004, 221, 0, 222, 0, 223, 224,
6035 0, 225, 226, 227, 228, 229, 230, 0, 231, 0,
6036 1005, 1006, 234, 0, 235, 236, 237, 238, 239, 240,
6037 241, 242, 243, 244, 245, 246, 0, 247, 248, 249,
6038 250, 251, 252, 253, 0, 254, 255, 256, 257, 258,
6039 259, 260, 261, 1007, 1008, 0, 1009, 0, 265, 266,
6040 267, 268, 269, 270, 271, 272, 273, 274, 275, 0,
6041 0, 276, 277, 278, 279, 0, 280, 281, 282, 283,
6042 284, 285, 286, 287, 1010, 289, 290, 291, 292, 293,
6043 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
6044 304, 305, 306, 1011, 308, 1012, 310, 311, 312, 313,
6045 1013, 314, 315, 316, 317, 1014, 604, 319, 1015, 321,
6046 322, 323, 0, 324, 325, 0, 0, 1016, 327, 328,
6047 0, 0, 329, 330, 331, 332, 333, 606, 335, 336,
6048 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
6049 0, 0, 345, 346, 607, 348, 349, 350, 351, 352,
6050 353, 354, 0, 355, 356, 357, 358, 359, 360, 0,
6051 361, 362, 363, 1017, 365, 366, 367, 368, 0, 369,
6052 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
6053 380, 381, 0, 382, 383, 384, 385, 386, 387, 1018,
6054 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
6055 399, 0, 0, 400, 401, 402, 403, 404, 405, 406,
6056 407, 408, 409, 410, 411, 412, 1019, 414, 0, 415,
6057 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
6058 426, 427, 428, 609, 430, 0, 431, 432, 0, 433,
6059 434, 435, 436, 437, 438, 439, 0, 1020, 1021, 0,
6060 0, 442, 443, 610, 445, 611, 1022, 447, 448, 612,
6061 450, 451, 452, 453, 454, 0, 0, 455, 456, 457,
6062 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
6063 466, 467, 1023, 0, 469, 470, 471, 472, 473, 474,
6064 475, 0, 0, 476, 0, 0, 477, 478, 479, 480,
6065 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
6066 491, 492, 493, 494, 495, 496, 497, 1024, 0, 0,
6067 0, 0, 0, 0, 1645, 1646, 1027, 0, 0, 0,
6068 0, 1028, 0, 1029, 0, 0, 0, 0, 1030, 1031,
6069 1032, 1033, 109, 2099, 629, 986, 987, 988, 989, 990,
6070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6071 0, 110, 111, 112, 113, 114, 115, 116, 117, 0,
6072 118, 119, 120, 0, 0, 0, 0, 0, 991, 0,
6073 0, 121, 122, 123, 0, 124, 125, 126, 127, 128,
6074 129, 130, 131, 992, 133, 993, 994, 0, 136, 137,
6075 138, 139, 140, 141, 995, 599, 142, 143, 996, 997,
6076 146, 0, 147, 148, 149, 150, 600, 0, 601, 0,
6077 998, 154, 155, 156, 157, 158, 159, 160, 161, 162,
6078 0, 163, 164, 165, 166, 167, 168, 0, 169, 170,
6079 171, 172, 173, 174, 175, 176, 177, 178, 179, 999,
6080 1000, 182, 1001, 183, 0, 184, 185, 186, 187, 188,
6081 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
6082 196, 761, 198, 199, 0, 200, 201, 202, 0, 203,
6083 204, 205, 0, 206, 207, 208, 209, 1002, 211, 212,
6084 213, 214, 215, 602, 1003, 217, 0, 218, 219, 1004,
6085 221, 0, 222, 0, 223, 224, 0, 225, 226, 227,
6086 228, 229, 230, 0, 231, 0, 1005, 1006, 234, 0,
6087 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
6088 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
6089 0, 254, 255, 256, 257, 258, 259, 260, 261, 1007,
6090 1008, 0, 1009, 0, 265, 266, 267, 268, 269, 270,
6091 271, 272, 273, 274, 275, 0, 0, 276, 277, 278,
6092 279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
6093 1010, 289, 290, 291, 292, 293, 294, 295, 296, 297,
6094 298, 299, 300, 301, 302, 303, 304, 305, 306, 1011,
6095 308, 1012, 310, 311, 312, 313, 1013, 314, 315, 316,
6096 317, 1014, 604, 319, 1015, 321, 322, 323, 0, 324,
6097 325, 0, 0, 1016, 327, 328, 0, 0, 329, 330,
6098 331, 332, 333, 606, 335, 336, 337, 338, 339, 340,
6099 341, 342, 343, 344, 0, 0, 0, 0, 345, 346,
6100 607, 348, 349, 350, 351, 352, 353, 354, 0, 355,
6101 356, 357, 358, 359, 360, 0, 361, 362, 363, 1017,
6102 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
6103 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
6104 383, 384, 385, 386, 387, 1018, 389, 390, 391, 392,
6105 393, 394, 395, 396, 397, 398, 399, 0, 0, 400,
6106 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
6107 411, 412, 1019, 414, 0, 415, 416, 417, 418, 419,
6108 420, 421, 422, 423, 424, 425, 426, 427, 428, 609,
6109 430, 0, 431, 432, 0, 433, 434, 435, 436, 437,
6110 438, 439, 0, 1020, 1021, 0, 0, 442, 443, 610,
6111 445, 611, 1022, 447, 448, 612, 450, 451, 452, 453,
6112 454, 0, 0, 455, 456, 457, 0, 458, 459, 460,
6113 461, 0, 462, 463, 464, 465, 466, 467, 1023, 0,
6114 469, 470, 471, 472, 473, 474, 475, 0, 0, 476,
6115 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
6116 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
6117 495, 496, 497, 1024, 0, 0, 0, 0, 0, 0,
6118 1025, 1026, 1027, 0, 0, 0, 0, 1028, 0, 1029,
6119 0, 0, 0, 0, 1030, 1031, 1032, 1033, 109, 985,
6120 629, 986, 987, 988, 989, 990, 0, 0, 0, 0,
6121 0, 0, 0, 0, 0, 0, 0, 110, 111, 112,
6122 113, 114, 115, 116, 117, 0, 118, 119, 120, 0,
6123 0, 0, 0, 0, 991, 0, 0, 121, 122, 123,
6124 0, 124, 125, 126, 127, 128, 129, 130, 131, 992,
6125 133, 993, 994, 0, 136, 137, 138, 139, 140, 141,
6126 995, 599, 142, 143, 996, 997, 146, 0, 147, 148,
6127 149, 150, 600, 0, 601, 0, 998, 154, 155, 156,
6128 157, 158, 159, 160, 161, 162, 0, 163, 164, 165,
6129 166, 167, 168, 0, 169, 170, 171, 172, 173, 174,
6130 175, 176, 177, 178, 179, 999, 1000, 182, 1001, 183,
6131 0, 184, 185, 186, 187, 188, 189, 0, 190, 191,
6132 192, 193, 194, 0, 0, 195, 196, 761, 198, 199,
6133 0, 200, 201, 202, 0, 203, 204, 205, 0, 206,
6134 207, 208, 209, 1002, 211, 212, 213, 214, 215, 602,
6135 1003, 217, 0, 218, 219, 1004, 221, 0, 222, 0,
6136 223, 224, 0, 225, 226, 227, 228, 229, 230, 0,
6137 231, 0, 1005, 1006, 234, 0, 235, 236, 237, 238,
6138 239, 240, 241, 242, 243, 244, 245, 246, 0, 247,
6139 248, 249, 250, 251, 252, 253, 0, 254, 255, 256,
6140 257, 258, 259, 260, 261, 1007, 1008, 0, 1009, 0,
6141 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
6142 275, 0, 0, 276, 277, 278, 279, 0, 280, 281,
6143 282, 283, 284, 285, 286, 287, 1010, 289, 290, 291,
6144 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
6145 302, 303, 304, 305, 306, 1011, 308, 1012, 310, 311,
6146 312, 313, 1013, 314, 315, 316, 317, 1014, 604, 319,
6147 1015, 321, 322, 323, 0, 324, 325, 0, 0, 1016,
6148 327, 328, 0, 0, 329, 330, 331, 332, 333, 606,
6149 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
6150 0, 0, 0, 0, 345, 346, 607, 348, 349, 350,
6151 351, 352, 353, 354, 0, 355, 356, 357, 358, 359,
6152 360, 0, 361, 362, 363, 1017, 365, 366, 367, 368,
6153 0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
6154 378, 379, 380, 381, 0, 382, 383, 384, 385, 386,
6155 387, 1018, 389, 390, 391, 392, 393, 394, 395, 396,
6156 397, 398, 399, 0, 0, 400, 401, 402, 403, 404,
6157 405, 406, 407, 408, 409, 410, 411, 412, 1019, 414,
6158 0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
6159 424, 425, 426, 427, 428, 609, 430, 0, 431, 432,
6160 0, 433, 434, 435, 436, 437, 438, 439, 0, 1020,
6161 1021, 0, 0, 442, 443, 610, 445, 611, 1022, 447,
6162 448, 612, 450, 451, 452, 453, 454, 0, 0, 455,
6163 456, 457, 0, 458, 459, 460, 461, 0, 462, 463,
6164 464, 465, 466, 467, 1023, 0, 469, 470, 471, 472,
6165 473, 474, 475, 0, 0, 476, 0, 0, 477, 478,
6166 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
6167 489, 490, 491, 492, 493, 494, 495, 496, 497, 1024,
6168 0, 0, 0, 0, 0, 0, 1025, 1026, 1027, 0,
6169 0, 0, 0, 1028, 0, 2381, 0, 0, 0, 0,
6170 1030, 1031, 1032, 1033, 109, 985, 629, 986, 987, 988,
6171 989, 990, 0, 0, 0, 0, 0, 0, 0, 0,
6172 0, 0, 0, 110, 111, 112, 113, 114, 115, 116,
6173 117, 0, 118, 119, 120, 0, 0, 0, 0, 0,
6174 991, 0, 0, 121, 122, 123, 0, 124, 125, 126,
6175 127, 128, 129, 130, 131, 992, 133, 993, 994, 0,
6176 136, 137, 138, 139, 140, 141, 995, 599, 142, 143,
6177 996, 997, 146, 0, 147, 148, 149, 150, 600, 0,
6178 601, 0, 998, 154, 155, 156, 157, 158, 159, 160,
6179 161, 162, 0, 163, 164, 165, 166, 167, 168, 0,
6180 169, 170, 2882, 172, 173, 174, 175, 176, 177, 178,
6181 179, 999, 1000, 182, 1001, 183, 0, 184, 185, 186,
6182 187, 188, 189, 0, 190, 191, 192, 193, 194, 0,
6183 0, 195, 196, 761, 198, 199, 0, 200, 201, 202,
6184 0, 203, 204, 205, 0, 206, 207, 208, 209, 1002,
6185 211, 212, 213, 214, 215, 602, 1003, 217, 0, 218,
6186 219, 1004, 221, 0, 222, 0, 223, 224, 0, 225,
6187 226, 227, 228, 229, 230, 0, 231, 0, 2883, 1006,
6188 234, 0, 235, 236, 237, 238, 239, 240, 241, 242,
6189 243, 244, 245, 246, 0, 247, 248, 249, 250, 251,
6190 252, 253, 0, 254, 255, 256, 257, 258, 259, 260,
6191 261, 1007, 1008, 0, 1009, 0, 265, 266, 267, 268,
6192 269, 270, 271, 272, 273, 274, 275, 0, 0, 276,
6193 277, 278, 279, 0, 280, 281, 282, 283, 284, 285,
6194 286, 287, 1010, 289, 290, 291, 292, 293, 294, 295,
6195 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
6196 306, 1011, 308, 1012, 310, 311, 312, 313, 1013, 314,
6197 315, 316, 317, 1014, 604, 319, 1015, 321, 322, 323,
6198 0, 324, 325, 0, 0, 1016, 327, 328, 0, 0,
6199 329, 330, 331, 332, 333, 606, 335, 336, 337, 338,
6200 339, 340, 341, 342, 343, 344, 0, 0, 0, 0,
6201 345, 346, 607, 348, 349, 350, 351, 352, 353, 354,
6202 0, 355, 356, 357, 358, 359, 360, 0, 361, 362,
6203 363, 1017, 365, 366, 367, 368, 0, 369, 370, 371,
6204 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
6205 0, 382, 383, 384, 385, 386, 2884, 1018, 389, 390,
6206 391, 392, 393, 394, 395, 396, 397, 398, 399, 0,
6207 0, 400, 401, 402, 403, 404, 405, 406, 407, 408,
6208 409, 410, 411, 412, 1019, 414, 0, 415, 416, 417,
6209 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
6210 428, 609, 430, 0, 431, 432, 0, 433, 434, 435,
6211 436, 437, 438, 439, 0, 1020, 1021, 0, 0, 442,
6212 443, 610, 445, 611, 1022, 447, 448, 612, 450, 451,
6213 452, 453, 454, 0, 0, 455, 456, 457, 0, 458,
6214 459, 460, 461, 0, 462, 463, 464, 465, 466, 467,
6215 1023, 0, 469, 470, 471, 472, 473, 474, 475, 0,
6216 0, 476, 0, 0, 477, 478, 479, 480, 481, 482,
6217 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
6218 493, 494, 495, 496, 497, 1024, 0, 0, 0, 0,
6219 0, 0, 1025, 1026, 1027, 0, 0, 0, 0, 1028,
6220 0, 2885, 0, 0, 0, 0, 1030, 1031, 1032, 1033,
6221 109, 985, 629, 986, 987, 988, 989, 990, 0, 0,
6222 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
6223 111, 112, 113, 114, 115, 116, 117, 0, 118, 119,
6224 120, 0, 0, 0, 0, 0, 991, 0, 0, 121,
6225 122, 123, 0, 124, 125, 126, 127, 128, 129, 130,
6226 3319, 992, 133, 993, 994, 0, 136, 137, 138, 139,
6227 140, 141, 995, 599, 142, 143, 996, 997, 146, 0,
6228 147, 148, 149, 150, 600, 0, 601, 0, 998, 154,
6229 155, 156, 157, 158, 159, 160, 161, 162, 0, 163,
6230 164, 165, 166, 167, 168, 0, 169, 170, 171, 3320,
6231 173, 174, 175, 176, 177, 178, 179, 999, 1000, 182,
6232 1001, 183, 0, 184, 185, 186, 187, 188, 189, 0,
6233 190, 191, 192, 193, 194, 0, 0, 195, 196, 761,
6234 198, 199, 0, 200, 201, 202, 0, 203, 204, 205,
6235 0, 206, 207, 208, 209, 1002, 211, 212, 213, 214,
6236 215, 602, 1003, 217, 0, 218, 219, 1004, 221, 0,
6237 222, 0, 223, 224, 0, 225, 226, 227, 228, 229,
6238 230, 0, 231, 0, 1005, 1006, 234, 0, 235, 236,
6239 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
6240 0, 247, 248, 249, 250, 251, 252, 253, 0, 254,
6241 255, 256, 257, 258, 259, 260, 261, 1007, 1008, 0,
6242 1009, 0, 265, 266, 267, 268, 269, 270, 271, 272,
6243 273, 274, 275, 0, 0, 276, 277, 278, 279, 0,
6244 280, 281, 282, 283, 284, 285, 286, 287, 1010, 289,
6245 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
6246 300, 301, 302, 303, 304, 305, 306, 1011, 308, 1012,
6247 310, 311, 312, 313, 1013, 314, 315, 316, 317, 1014,
6248 604, 319, 1015, 321, 322, 323, 0, 324, 325, 0,
6249 0, 1016, 327, 328, 0, 0, 329, 330, 331, 332,
6250 333, 606, 335, 336, 337, 338, 339, 340, 341, 342,
6251 343, 344, 0, 0, 0, 0, 345, 346, 607, 348,
6252 349, 350, 351, 352, 353, 354, 0, 355, 356, 357,
6253 358, 359, 360, 0, 361, 362, 363, 1017, 365, 366,
6254 367, 368, 0, 369, 370, 371, 372, 373, 374, 375,
6255 376, 377, 378, 379, 380, 381, 0, 382, 383, 384,
6256 385, 386, 387, 1018, 389, 390, 391, 392, 393, 394,
6257 395, 396, 397, 398, 399, 0, 0, 400, 401, 402,
6258 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
6259 1019, 414, 0, 415, 416, 417, 418, 419, 420, 421,
6260 422, 423, 424, 425, 426, 427, 428, 609, 430, 0,
6261 431, 432, 0, 433, 434, 435, 436, 437, 438, 439,
6262 0, 1020, 1021, 0, 0, 442, 443, 610, 445, 611,
6263 1022, 447, 448, 612, 450, 451, 3321, 453, 454, 0,
6264 0, 455, 456, 457, 0, 458, 459, 460, 461, 0,
6265 462, 463, 464, 465, 466, 467, 1023, 0, 469, 470,
6266 471, 472, 473, 474, 475, 0, 0, 476, 0, 0,
6267 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
6268 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
6269 497, 1024, 0, 0, 0, 0, 0, 0, 1025, 1026,
6270 1027, 0, 0, 0, 0, 1028, 0, 1029, 0, 0,
6271 0, 0, 1030, 1031, 1032, 1033, 109, 985, 629, 986,
6272 987, 988, 989, 990, 0, 0, 0, 0, 0, 0,
6273 0, 0, 0, 0, 0, 110, 111, 112, 113, 114,
6274 115, 116, 117, 0, 118, 119, 120, 0, 0, 0,
6275 0, 0, 991, 0, 0, 121, 122, 123, 0, 124,
6276 125, 126, 127, 128, 129, 130, 131, 992, 133, 993,
6277 994, 0, 136, 137, 138, 139, 140, 141, 995, 599,
6278 142, 143, 996, 997, 146, 0, 147, 148, 149, 150,
6279 600, 0, 601, 0, 998, 154, 155, 156, 157, 158,
6280 159, 160, 161, 162, 0, 163, 164, 165, 166, 167,
6281 168, 0, 169, 170, 171, 3320, 173, 174, 175, 176,
6282 177, 178, 179, 999, 1000, 182, 1001, 183, 0, 184,
6283 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
6284 194, 0, 0, 195, 196, 761, 198, 199, 0, 200,
6285 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
6286 209, 1002, 211, 212, 213, 214, 215, 602, 1003, 217,
6287 0, 218, 219, 1004, 221, 0, 222, 0, 223, 224,
6288 0, 225, 226, 227, 228, 229, 230, 0, 231, 0,
6289 1005, 1006, 234, 0, 235, 236, 237, 238, 239, 240,
6290 241, 242, 243, 244, 245, 246, 0, 247, 248, 249,
6291 250, 251, 252, 253, 0, 254, 255, 256, 257, 258,
6292 259, 260, 261, 1007, 1008, 0, 1009, 0, 265, 266,
6293 267, 268, 269, 270, 271, 272, 273, 274, 275, 0,
6294 0, 276, 277, 278, 279, 0, 280, 281, 282, 283,
6295 284, 285, 286, 287, 1010, 289, 290, 291, 292, 293,
6296 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
6297 304, 305, 306, 1011, 308, 1012, 310, 311, 312, 313,
6298 1013, 314, 315, 316, 317, 1014, 604, 319, 1015, 321,
6299 322, 323, 0, 324, 325, 0, 0, 1016, 327, 328,
6300 0, 0, 329, 330, 331, 332, 333, 606, 335, 336,
6301 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
6302 0, 0, 345, 346, 607, 348, 349, 350, 351, 352,
6303 353, 354, 0, 355, 356, 357, 358, 359, 360, 0,
6304 361, 362, 363, 1017, 365, 366, 367, 368, 0, 369,
6305 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
6306 380, 381, 0, 382, 383, 384, 385, 386, 387, 1018,
6307 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
6308 399, 0, 0, 400, 401, 402, 403, 404, 405, 406,
6309 407, 408, 409, 410, 411, 412, 1019, 414, 0, 415,
6310 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
6311 426, 427, 428, 609, 430, 0, 431, 432, 0, 433,
6312 434, 435, 436, 437, 438, 439, 0, 1020, 1021, 0,
6313 0, 442, 443, 610, 445, 611, 1022, 447, 448, 612,
6314 450, 451, 3321, 453, 454, 0, 0, 455, 456, 457,
6315 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
6316 466, 467, 1023, 0, 469, 470, 471, 472, 473, 474,
6317 475, 0, 0, 476, 0, 0, 477, 478, 479, 480,
6318 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
6319 491, 492, 493, 494, 495, 496, 497, 1024, 0, 0,
6320 0, 0, 0, 0, 1025, 1026, 1027, 0, 0, 0,
6321 0, 1028, 0, 1029, 0, 0, 0, 0, 1030, 1031,
6322 1032, 1033, 109, 985, 629, 986, 987, 988, 989, 990,
6323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6324 0, 110, 111, 112, 113, 114, 115, 116, 117, 0,
6325 118, 119, 120, 0, 0, 0, 0, 0, 991, 0,
6326 0, 121, 122, 123, 0, 124, 125, 126, 127, 128,
6327 129, 130, 131, 992, 133, 993, 994, 0, 136, 137,
6328 138, 139, 140, 141, 995, 599, 142, 143, 996, 997,
6329 146, 0, 147, 148, 149, 150, 600, 0, 601, 0,
6330 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
6331 0, 163, 164, 165, 166, 167, 168, 0, 169, 170,
6332 171, 172, 173, 174, 175, 176, 177, 178, 179, 999,
6333 1000, 182, 0, 183, 0, 184, 185, 186, 187, 188,
6334 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
6335 196, 761, 198, 199, 0, 200, 201, 202, 0, 203,
6336 204, 205, 0, 206, 207, 208, 209, 1002, 211, 212,
6337 213, 214, 215, 602, 1003, 217, 0, 218, 219, 1004,
6338 221, 0, 222, 0, 223, 224, 0, 225, 226, 227,
6339 228, 229, 230, 0, 231, 0, 1005, 1006, 234, 0,
6340 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
6341 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
6342 0, 254, 255, 256, 257, 258, 259, 260, 261, 1007,
6343 1008, 0, 1009, 0, 265, 266, 267, 268, 269, 270,
6344 271, 272, 273, 274, 275, 0, 0, 276, 277, 278,
6345 279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
6346 1010, 289, 290, 291, 292, 293, 294, 295, 296, 297,
6347 298, 299, 300, 301, 302, 303, 304, 305, 306, 1011,
6348 308, 1012, 310, 311, 312, 313, 0, 314, 315, 316,
6349 317, 1014, 604, 319, 1015, 321, 322, 323, 0, 324,
6350 325, 0, 0, 1016, 327, 328, 0, 0, 329, 330,
6351 331, 332, 333, 606, 335, 336, 337, 338, 339, 340,
6352 341, 342, 343, 344, 0, 0, 0, 0, 345, 346,
6353 607, 348, 349, 350, 351, 352, 353, 354, 0, 355,
6354 356, 357, 358, 359, 360, 0, 361, 362, 363, 1017,
6355 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
6356 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
6357 383, 384, 385, 386, 387, 1018, 389, 390, 391, 392,
6358 393, 394, 395, 396, 397, 398, 399, 0, 0, 400,
6359 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
6360 411, 412, 1019, 414, 0, 415, 416, 417, 418, 419,
6361 420, 421, 422, 423, 424, 425, 426, 427, 428, 609,
6362 430, 0, 431, 432, 0, 433, 434, 435, 436, 437,
6363 438, 439, 0, 1020, 1021, 0, 0, 442, 443, 610,
6364 445, 611, 1022, 447, 448, 612, 450, 451, 452, 453,
6365 454, 0, 0, 455, 456, 457, 0, 458, 459, 460,
6366 461, 0, 462, 463, 464, 465, 466, 467, 1023, 0,
6367 469, 470, 471, 472, 473, 474, 475, 0, 0, 476,
6368 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
6369 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
6370 495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
6371 1437, 1438, 0, 0, 0, 0, 0, 1028, 0, 1029,
6372 0, 0, 0, 0, 1030, 1031, 1032, 1033, 109, 985,
6373 629, 986, 987, 988, 989, 990, 0, 0, 0, 0,
6374 0, 0, 0, 0, 0, 0, 0, 110, 111, 112,
6375 113, 114, 115, 116, 117, 0, 118, 119, 120, 0,
6376 0, 0, 0, 0, 991, 0, 0, 121, 122, 123,
6377 0, 124, 125, 126, 127, 128, 129, 130, -1948, 992,
6378 133, 993, 994, 0, 136, 137, 138, 139, 140, 141,
6379 995, 599, 142, 143, 996, 997, 146, 0, 147, 148,
6380 149, 150, 600, 0, 601, 0, 998, 154, 155, 156,
6381 157, 158, 159, 160, 161, 162, 0, 163, 164, 165,
6382 166, 167, 168, 0, 169, 170, 171, 3320, 173, 174,
6383 175, 176, 177, 178, 179, 999, 1000, 182, 1001, 183,
6384 0, 184, 185, 186, 187, 188, 189, 0, 190, 191,
6385 192, 193, 194, 0, 0, 195, 196, 761, 198, 199,
6386 0, 200, 201, 202, 0, 203, 204, 205, 0, 206,
6387 207, 208, 209, 1002, 211, 212, 213, 214, 215, 602,
6388 1003, 217, 0, 218, 219, 1004, 221, 0, 222, 0,
6389 223, 224, 0, 225, 226, 227, 228, -1948, 230, 0,
6390 231, 0, 1005, 1006, 234, 0, 235, 236, 237, 238,
6391 239, 240, 241, -1948, 243, 244, 245, 246, 0, 247,
6392 248, 249, 250, 251, 252, 253, 0, 254, 255, 256,
6393 257, 258, 259, 260, 261, 1007, 1008, 0, 1009, 0,
6394 265, 0, 0, 268, 269, 270, 271, 272, 273, 274,
6395 275, 0, 0, 276, 277, 278, -1948, 0, 280, 281,
6396 282, 283, 284, 285, 286, 287, 1010, 289, 290, 291,
6397 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
6398 302, 303, 304, 305, 306, 1011, 308, 1012, 310, 311,
6399 312, 313, 0, 314, 315, 0, 317, 1014, 604, 319,
6400 1015, 321, 322, 323, 0, 324, 325, 0, 0, 1016,
6401 327, 328, 0, 0, 329, 330, 331, 332, 333, 606,
6402 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
6403 0, 0, 0, 0, 345, 346, 607, 348, 349, 350,
6404 351, 352, 353, 354, 0, 355, 356, 357, 358, 359,
6405 360, 0, 361, 362, 363, 1017, 365, 366, 367, 368,
6406 0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
6407 378, 379, 380, 381, 0, 382, 383, 384, 385, 386,
6408 387, 1018, 389, 390, 391, 392, 393, 394, 395, 396,
6409 397, 398, 399, 0, 0, 400, 401, 402, 403, 404,
6410 405, 406, 407, 408, 409, -1948, 411, 412, 1019, 414,
6411 0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
6412 424, 425, 426, 427, 428, 609, 430, 0, 431, 432,
6413 0, 433, 434, 435, 436, 437, 438, 439, 0, 1020,
6414 1021, 0, 0, 442, 443, 610, 445, 611, 1022, 447,
6415 448, 612, 450, 451, 3321, 453, 454, 0, 0, 455,
6416 456, 457, 0, 458, 459, 460, 461, 0, 462, 463,
6417 464, 465, 466, 467, 1023, 0, 469, 470, 471, 472,
6418 473, 474, 475, 0, 0, 476, 0, 0, 477, 478,
6419 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
6420 489, 490, 491, 492, 493, 494, 495, 496, 497, -1948,
6421 0, 0, 0, 0, 0, 0, 1025, 1026, 1027, 0,
6422 0, 0, 0, 1028, 0, 1029, 0, 0, 0, 0,
6423 1030, 1031, 1032, 1033, 109, 985, 629, 986, 987, 0,
6424 989, 990, 0, 0, 0, 0, 0, 0, 0, 0,
6425 0, 0, 0, 110, 111, 112, 113, 114, 115, 116,
6426 117, 0, 118, 119, 120, 0, 0, 0, 0, 0,
6427 991, 0, 0, 121, 122, 123, 0, 124, 125, 126,
6428 127, 128, 129, 130, 131, 992, 133, 993, 994, 0,
6429 136, 137, 138, 139, 140, 141, 995, 599, 142, 143,
6430 996, 997, 146, 0, 147, 148, 149, 150, 600, 0,
6431 601, 0, 153, 154, 155, 156, 157, 158, 159, 160,
6432 161, 162, 0, 163, 164, 165, 166, 167, 168, 0,
6433 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
6434 179, 999, 1000, 182, 0, 183, 0, 184, 185, 186,
6435 187, 188, 189, 0, 190, 191, 192, 193, 194, 0,
6436 0, 195, 196, 761, 198, 199, 0, 200, 201, 202,
6437 0, 203, 204, 205, 0, 206, 207, 208, 209, 1002,
6438 211, 212, 213, 214, 215, 602, 1003, 217, 0, 218,
6439 219, 1004, 221, 0, 222, 0, 223, 224, 0, 225,
6440 226, 227, 228, 229, 230, 0, 231, 0, 1005, 1006,
6441 234, 0, 235, 236, 237, 238, 239, 240, 241, 242,
6442 243, 244, 245, 246, 0, 247, 248, 249, 250, 251,
6443 252, 253, 0, 254, 255, 256, 257, 258, 259, 260,
6444 261, 1007, 1008, 0, 1009, 0, 265, 266, 267, 268,
6445 269, 270, 271, 272, 273, 274, 275, 0, 0, 276,
6446 277, 278, 279, 0, 280, 281, 282, 283, 284, 285,
6447 286, 287, 1010, 289, 290, 291, 292, 293, 294, 295,
6448 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
6449 306, 1011, 308, 1012, 310, 311, 312, 313, 0, 314,
6450 315, 316, 317, 1014, 604, 319, 1015, 321, 322, 323,
6451 0, 324, 325, 0, 0, 326, 327, 328, 0, 0,
6452 329, 330, 331, 332, 333, 606, 335, 336, 337, 338,
6453 339, 340, 341, 342, 343, 344, 0, 0, 0, 0,
6454 345, 346, 607, 348, 349, 350, 351, 352, 353, 354,
6455 0, 355, 356, 357, 358, 359, 360, 0, 361, 362,
6456 363, 1017, 365, 366, 367, 368, 0, 369, 370, 371,
6457 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
6458 0, 382, 383, 384, 385, 386, 387, 2085, 2086, 390,
6459 391, 392, 393, 394, 395, 396, 397, 398, 399, 0,
6460 0, 400, 401, 402, 403, 404, 405, 406, 407, 408,
6461 409, 410, 411, 412, 1019, 414, 0, 415, 416, 417,
6462 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
6463 428, 609, 430, 0, 431, 432, 0, 433, 434, 435,
6464 436, 437, 438, 439, 0, 1020, 1021, 0, 0, 442,
6465 443, 610, 445, 611, 1022, 447, 448, 612, 450, 451,
6466 452, 453, 454, 0, 0, 455, 456, 457, 0, 458,
6467 459, 460, 461, 0, 462, 463, 464, 465, 466, 467,
6468 1023, 0, 469, 470, 471, 472, 473, 474, 475, 0,
6469 0, 476, 0, 0, 477, 478, 479, 480, 481, 482,
6470 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
6471 493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
6472 0, 0, 2087, 2088, 0, 0, 0, 0, 0, 1028,
6473 0, 1029, 0, 0, 0, 0, 1030, 1031, 1032, 1033,
6474 109, 985, 629, 986, 987, 988, 989, 990, 0, 0,
6475 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
6476 111, 112, 113, 114, 115, 116, 117, 0, 118, 119,
6477 120, 0, 0, 0, 0, 0, 991, 0, 0, 121,
6478 122, 123, 0, 124, 125, 126, 127, 128, 129, 130,
6479 131, 992, 133, 993, 994, 0, 136, 137, 138, 139,
6480 140, 141, 995, 599, 142, 143, 996, 997, 146, 0,
6481 147, 148, 149, 150, 600, 0, 601, 0, 153, 154,
6482 155, 156, 157, 158, 159, 160, 161, 162, 0, 163,
6483 164, 165, 166, 167, 168, 0, 169, 170, 171, 172,
6484 173, 174, 175, 176, 177, 178, 179, 999, 1000, 182,
6485 0, 183, 0, 184, 185, 186, 187, 188, 189, 0,
6486 190, 191, 192, 193, 194, 0, 0, 195, 196, 761,
6487 198, 199, 0, 200, 201, 202, 0, 203, 204, 205,
6488 0, 206, 207, 208, 209, 1002, 211, 212, 213, 214,
6489 215, 602, 1003, 217, 0, 218, 219, 1004, 221, 0,
6490 222, 0, 223, 224, 0, 225, 226, 227, 228, 229,
6491 230, 0, 231, 0, 1005, 1006, 234, 0, 235, 236,
6492 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
6493 0, 247, 248, 249, 250, 251, 252, 253, 0, 254,
6494 255, 256, 257, 258, 259, 260, 261, 1007, 1008, 0,
6495 1009, 0, 265, 0, 267, 268, 269, 270, 271, 272,
6496 273, 274, 275, 0, 0, 276, 277, 278, 279, 0,
6497 280, 281, 282, 283, 284, 285, 286, 287, 1010, 289,
6498 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
6499 300, 301, 302, 303, 304, 305, 306, 1011, 308, 1012,
6500 310, 311, 312, 313, 0, 314, 315, 316, 317, 1014,
6501 604, 319, 1015, 321, 322, 323, 0, 324, 325, 0,
6502 0, 1016, 327, 328, 0, 0, 329, 330, 331, 332,
6503 333, 606, 335, 336, 337, 338, 339, 340, 341, 342,
6504 343, 344, 0, 0, 0, 0, 345, 346, 607, 348,
6505 349, 350, 351, 352, 353, 354, 0, 355, 356, 357,
6506 358, 359, 360, 0, 361, 362, 363, 1017, 365, 366,
6507 367, 368, 0, 369, 370, 371, 372, 373, 374, 375,
6508 376, 377, 378, 379, 380, 381, 0, 382, 383, 384,
6509 385, 386, 387, 1018, 389, 390, 391, 392, 393, 394,
6510 395, 396, 397, 398, 399, 0, 0, 400, 401, 402,
6511 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
6512 1019, 414, 0, 415, 416, 417, 418, 419, 420, 421,
6513 422, 423, 424, 425, 426, 427, 428, 609, 430, 0,
6514 431, 432, 0, 433, 434, 435, 436, 437, 438, 439,
6515 0, 1020, 1021, 0, 0, 442, 443, 610, 445, 611,
6516 1022, 447, 448, 612, 450, 451, 452, 453, 454, 0,
6517 0, 455, 456, 457, 0, 458, 459, 460, 461, 0,
6518 462, 463, 464, 465, 466, 467, 1023, 0, 469, 470,
6519 471, 472, 473, 474, 475, 0, 0, 476, 0, 0,
6520 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
6521 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
6522 497, 0, 0, 0, 0, 0, 0, 0, 1437, 1438,
6523 0, 0, 0, 0, 0, 1028, 0, 1029, 0, 0,
6524 0, 0, 1030, 1031, 1032, 1033, 109, 985, 629, 986,
6525 987, 0, 989, 990, 0, 0, 0, 0, 0, 0,
6526 0, 0, 0, 0, 0, 110, 111, 112, 113, 114,
6527 115, 116, 117, 0, 118, 119, 120, 0, 0, 0,
6528 0, 0, 991, 0, 0, 121, 122, 123, 0, 124,
6529 125, 126, 127, 128, 129, 130, 131, 992, 133, 993,
6530 994, 0, 136, 137, 138, 139, 140, 141, 995, 599,
6531 142, 143, 996, 997, 146, 0, 147, 148, 149, 150,
6532 600, 0, 601, 0, 153, 154, 155, 156, 157, 158,
6533 159, 160, 161, 162, 0, 163, 164, 165, 166, 167,
6534 168, 0, 169, 170, 171, 172, 173, 174, 175, 176,
6535 177, 178, 179, 999, 1000, 182, 0, 183, 0, 184,
6536 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
6537 194, 0, 0, 195, 196, 761, 198, 199, 0, 200,
6538 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
6539 209, 1002, 211, 212, 213, 214, 215, 602, 1003, 217,
6540 0, 218, 219, 1004, 221, 0, 222, 0, 223, 224,
6541 0, 225, 226, 227, 228, 229, 230, 0, 231, 0,
6542 1005, 1006, 234, 0, 235, 236, 237, 238, 239, 240,
6543 241, 242, 243, 244, 245, 246, 0, 247, 248, 249,
6544 250, 251, 252, 253, 0, 254, 255, 256, 257, 258,
6545 259, 260, 261, 1007, 1008, 0, 1009, 0, 265, 266,
6546 267, 268, 269, 270, 271, 272, 273, 274, 275, 0,
6547 0, 276, 277, 278, 279, 0, 280, 281, 282, 283,
6548 284, 285, 286, 287, 1010, 289, 290, 291, 292, 293,
6549 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
6550 304, 305, 306, 1011, 308, 1012, 310, 311, 312, 313,
6551 0, 314, 315, 316, 317, 1014, 604, 319, 1015, 321,
6552 322, 323, 0, 324, 325, 0, 0, 326, 327, 328,
6553 0, 0, 329, 330, 331, 332, 333, 606, 335, 336,
6554 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
6555 0, 0, 345, 346, 607, 348, 349, 350, 351, 352,
6556 353, 354, 0, 355, 356, 357, 358, 359, 360, 0,
6557 361, 362, 363, 1017, 365, 366, 367, 368, 0, 369,
6558 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
6559 380, 381, 0, 382, 383, 384, 385, 386, 387, 1018,
6560 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
6561 399, 0, 0, 400, 401, 402, 403, 404, 405, 406,
6562 407, 408, 409, 410, 411, 412, 1019, 414, 0, 415,
6563 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
6564 426, 427, 428, 609, 430, 0, 431, 432, 0, 433,
6565 434, 435, 436, 437, 438, 439, 0, 1020, 1021, 0,
6566 0, 442, 443, 610, 445, 611, 1022, 447, 448, 612,
6567 450, 451, 452, 453, 454, 0, 0, 455, 456, 457,
6568 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
6569 466, 467, 1023, 0, 469, 470, 471, 472, 473, 474,
6570 475, 0, 0, 476, 0, 0, 477, 478, 479, 480,
6571 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
6572 491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
6573 0, 0, 0, 109, 985, 629, 986, 987, 988, 989,
6574 990, 1028, 0, 1029, 0, 0, 0, 0, 1030, 1031,
6575 1032, 1033, 110, 111, 112, 113, 114, 115, 116, 117,
6576 0, 118, 119, 120, 0, 0, 0, 0, 0, 991,
6577 0, 0, 121, 122, 123, 0, 124, 125, 126, 127,
6578 128, 129, 130, 0, 992, 133, 993, 994, 0, 136,
6579 137, 138, 139, 140, 141, 995, 599, 142, 143, 996,
6580 997, 146, 0, 147, 148, 149, 150, 600, 0, 601,
6581 0, 998, 154, 155, 156, 157, 158, 159, 160, 161,
6582 162, 0, 163, 164, 165, 166, 167, 168, 0, 169,
6583 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
6584 999, 1000, 182, 1001, 183, 0, 184, 185, 186, 187,
6585 188, 189, 0, 190, 191, 192, 193, 194, 0, 0,
6586 195, 196, 761, 198, 199, 0, 200, 201, 202, 0,
6587 203, 0, 205, 0, 206, 207, 208, 209, 1002, 211,
6588 212, 213, 214, 215, 602, 1003, 217, 0, 218, 219,
6589 1004, 221, 0, 222, 0, 223, 224, 0, 225, 226,
6590 227, 228, 0, 230, 0, 231, 0, 1005, 1006, 234,
6591 0, 235, 236, 237, 238, 239, 240, 241, 0, 243,
6592 244, 245, 246, 0, 247, 248, 249, 250, 251, 252,
6593 253, 0, 254, 255, 256, 257, 258, 259, 260, 261,
6594 1007, 1008, 0, 1009, 0, 265, 0, 0, 268, 269,
6595 270, 271, 272, 273, 274, 275, 0, 0, 276, 277,
6596 278, 0, 0, 280, 281, 282, 283, 284, 285, 286,
6597 287, 1010, 289, 290, 291, 292, 293, 294, 295, 296,
6598 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
6599 1011, 308, 1012, 310, 311, 312, 313, 0, 314, 315,
6600 0, 317, 1014, 604, 319, 1015, 321, 322, 323, 0,
6601 324, 325, 0, 0, 1016, 327, 328, 0, 0, 329,
6602 330, 331, 332, 333, 606, 335, 336, 337, 338, 339,
6603 340, 341, 342, 343, 344, 0, 0, 0, 0, 345,
6604 346, 607, 348, 349, 350, 351, 352, 353, 354, 0,
6605 355, 356, 357, 358, 359, 360, 0, 361, 362, 363,
6606 1017, 365, 366, 367, 368, 0, 369, 370, 371, 372,
6607 373, 374, 375, 376, 377, 378, 379, 380, 381, 0,
6608 382, 383, 384, 385, 386, 387, 1018, 389, 390, 391,
6609 392, 393, 394, 395, 396, 397, 398, 399, 0, 0,
6610 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
6611 0, 411, 412, 1019, 414, 0, 415, 416, 417, 418,
6612 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
6613 609, 430, 0, 431, 432, 0, 433, 434, 435, 436,
6614 437, 438, 439, 0, 1020, 1021, 0, 0, 442, 443,
6615 610, 445, 611, 1022, 447, 448, 612, 450, 451, 452,
6616 453, 454, 0, 0, 455, 456, 457, 0, 458, 459,
6617 460, 461, 0, 462, 463, 464, 465, 466, 467, 1023,
6618 0, 469, 470, 471, 472, 473, 474, 475, 0, 0,
6619 476, 0, 0, 477, 478, 479, 480, 481, 482, 483,
6620 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
6621 494, 495, 496, 497, 0, 0, 0, 0, 0, 0,
6622 0, 1025, 1026, 1027, 0, 0, 0, 0, 1028, 0,
6623 1029, 0, 0, 0, 0, 1030, 1031, 1032, 1033, 109,
6624 985, 629, 986, 987, 0, 989, 0, 0, 0, 0,
6625 0, 0, 0, 0, 0, 0, 0, 0, 110, 111,
6626 112, 113, 114, 115, 116, 117, 0, 118, 119, 120,
6627 0, 0, 0, 0, 0, 991, 0, 0, 121, 122,
6628 123, 0, 124, 125, 126, 127, 128, 129, 130, 131,
6629 992, 133, 993, 994, 0, 136, 137, 138, 139, 140,
6630 141, 995, 0, 142, 143, 996, 997, 146, 0, 147,
6631 148, 149, 150, 151, 0, 152, 0, 153, 154, 155,
6632 156, 157, 158, 159, 160, 161, 162, 0, 163, 164,
6633 165, 166, 167, 168, 0, 169, 170, 171, 172, 173,
6634 174, 175, 176, 177, 178, 179, 999, 1000, 182, 0,
6635 183, 0, 184, 185, 186, 187, 188, 189, 0, 190,
6636 191, 192, 193, 194, 0, 0, 195, 196, 761, 198,
6637 199, 0, 200, 201, 202, 0, 203, 204, 205, 0,
6638 206, 207, 208, 209, 1002, 211, 212, 213, 214, 215,
6639 216, 1003, 217, 0, 218, 219, 1004, 221, 0, 222,
6640 0, 223, 224, 0, 225, 226, 227, 228, 229, 230,
6641 0, 231, 2902, 1005, 1006, 234, 0, 235, 236, 237,
6642 238, 239, 240, 241, 242, 243, 244, 245, 246, 0,
6643 247, 248, 249, 250, 251, 252, 253, 0, 254, 255,
6644 256, 257, 258, 259, 260, 261, 1007, 1008, 0, 1009,
6645 0, 265, 266, 267, 268, 269, 270, 271, 272, 273,
6646 274, 275, 0, 0, 276, 277, 278, 279, 0, 280,
6647 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
6648 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
6649 301, 302, 303, 304, 305, 306, 1011, 308, 1012, 310,
6650 311, 312, 313, 0, 314, 315, 316, 317, 1014, 318,
6651 319, 1015, 321, 322, 323, 0, 324, 325, 0, 0,
6652 326, 327, 328, 0, 0, 329, 330, 331, 332, 333,
6653 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
6654 344, 0, 0, 0, 0, 345, 346, 347, 348, 349,
6655 350, 351, 352, 353, 354, 0, 355, 356, 357, 358,
6656 359, 360, 0, 361, 362, 363, 1017, 365, 366, 367,
6657 368, 0, 369, 370, 371, 372, 373, 374, 375, 376,
6658 377, 378, 379, 380, 381, 0, 382, 383, 384, 385,
6659 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
6660 396, 397, 398, 399, 0, 0, 400, 401, 402, 403,
6661 404, 405, 406, 407, 408, 409, 410, 411, 412, 1019,
6662 414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
6663 423, 424, 425, 426, 427, 428, 429, 430, 0, 431,
6664 432, 0, 433, 434, 435, 436, 437, 438, 439, 0,
6665 1020, 1021, 0, 0, 442, 443, 444, 445, 446, 1022,
6666 447, 448, 449, 450, 451, 452, 453, 454, 0, 0,
6667 455, 456, 457, 0, 458, 459, 460, 461, 0, 462,
6668 463, 464, 465, 466, 467, 1023, 0, 469, 470, 471,
6669 472, 473, 474, 475, 0, 0, 476, 0, 0, 477,
6670 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
6671 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
6672 0, 0, 0, 0, 109, 985, 629, 986, 987, 0,
6673 989, 0, 0, 0, 1028, 0, 2622, 0, 0, 0,
6674 0, 1030, 1031, 110, 111, 112, 113, 114, 115, 116,
6675 117, 0, 118, 119, 120, 0, 0, 0, 0, 0,
6676 991, 0, 0, 121, 122, 123, 0, 124, 125, 126,
6677 127, 128, 129, 130, 131, 992, 133, 993, 994, 0,
6678 136, 137, 138, 139, 140, 141, 995, 0, 142, 143,
6679 996, 997, 146, 0, 147, 148, 149, 150, 151, 0,
6680 152, 0, 153, 154, 155, 156, 157, 158, 159, 160,
6681 161, 162, 0, 163, 164, 165, 166, 167, 168, 0,
6682 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
6683 179, 999, 1000, 182, 0, 183, 0, 184, 185, 186,
6684 187, 188, 189, 0, 190, 191, 192, 193, 194, 0,
6685 0, 195, 196, 761, 198, 199, 0, 200, 201, 202,
6686 0, 203, 204, 205, 0, 206, 207, 208, 209, 1002,
6687 211, 212, 213, 214, 215, 216, 1003, 217, 0, 218,
6688 219, 1004, 221, 0, 222, 0, 223, 224, 0, 225,
6689 226, 227, 228, 229, 230, 0, 231, 0, 1005, 1006,
6690 234, 0, 235, 236, 237, 238, 239, 240, 241, 242,
6691 243, 244, 245, 246, 0, 247, 248, 249, 250, 251,
6692 252, 253, 0, 254, 255, 256, 257, 258, 259, 260,
6693 261, 1007, 1008, 0, 1009, 0, 265, 266, 267, 268,
6694 269, 270, 271, 272, 273, 274, 275, 0, 0, 276,
6695 277, 278, 279, 0, 280, 281, 282, 283, 284, 285,
6696 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
6697 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
6698 306, 1011, 308, 1012, 310, 311, 312, 313, 0, 314,
6699 315, 316, 317, 1014, 318, 319, 1015, 321, 322, 323,
6700 0, 324, 325, 0, 0, 326, 327, 328, 0, 0,
6701 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
6702 339, 340, 341, 342, 343, 344, 0, 0, 0, 0,
6703 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
6704 0, 355, 356, 357, 358, 359, 360, 0, 361, 362,
6705 363, 1017, 365, 366, 367, 368, 0, 369, 370, 371,
6706 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
6707 0, 382, 383, 384, 385, 386, 387, 388, 389, 390,
6708 391, 392, 393, 394, 395, 396, 397, 398, 399, 0,
6709 0, 400, 401, 402, 403, 404, 405, 406, 407, 408,
6710 409, 410, 411, 412, 1019, 414, 0, 415, 416, 417,
6711 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
6712 428, 429, 430, 0, 431, 432, 0, 433, 434, 435,
6713 436, 437, 438, 439, 0, 1020, 1021, 0, 0, 442,
6714 443, 444, 445, 446, 1022, 447, 448, 449, 450, 451,
6715 452, 453, 454, 0, 0, 455, 456, 457, 0, 458,
6716 459, 460, 461, 0, 462, 463, 464, 465, 466, 467,
6717 1023, 0, 469, 470, 471, 472, 473, 474, 475, 0,
6718 0, 476, 0, 0, 477, 478, 479, 480, 481, 482,
6719 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
6720 493, 494, 495, 496, 497, 0, 0, 0, 0, 505,
6721 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028,
6722 0, 2622, 0, 0, 0, 0, 1030, 1031, 110, 111,
6723 112, 113, 114, 115, 116, 117, 0, 118, 119, 120,
6724 0, 0, 0, 0, 0, 0, 947, 0, 0, 122,
6725 123, 0, 124, 125, 126, 0, 128, 129, 130, 131,
6726 132, 0, 134, 135, 0, 136, 137, 138, 139, 140,
6727 141, 0, 0, 142, 143, 144, 145, 146, 0, 147,
6728 148, 149, 150, 151, 0, 0, 0, 153, 154, 155,
6729 156, 157, 158, 0, 160, 161, 162, 0, 163, 164,
6730 165, 166, 167, 168, 0, 0, 170, 171, 172, 173,
6731 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
6732 183, 0, 184, 185, 186, 187, 188, 189, 0, 190,
6733 191, 192, 193, 194, 0, 0, 195, 196, 197, 198,
6734 199, 0, 200, 201, 202, 0, 203, 204, 205, -498,
6735 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
6736 216, 0, 217, -498, 218, 219, 220, 221, -498, 222,
6737 0, 223, 0, 0, 0, 226, 227, 506, 0, 230,
6738 0, 231, 0, 232, 233, 234, 0, 235, 236, 237,
6739 238, 239, 240, 241, 0, 243, 244, 245, 246, 0,
6740 247, 248, 249, 250, 251, 252, 253, 0, 254, 0,
6741 256, 257, 258, 259, 260, 261, 262, 263, -498, 264,
6742 0, 265, 0, 0, 268, 0, 270, 271, 272, 273,
6743 274, 275, 0, 0, 276, 0, 278, 0, -498, 280,
6744 281, 282, 283, 284, 285, 286, 287, 507, 289, 290,
6745 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
6746 301, 302, 303, 304, 305, 306, 307, 0, 309, 310,
6747 311, 312, 313, 0, 314, 315, 0, 317, 0, 318,
6748 319, 320, 321, 322, 323, -498, 324, 325, 0, 0,
6749 326, 327, 328, 0, -498, 329, 330, 0, 332, 0,
6750 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
6751 344, 0, 0, 0, 0, 345, 346, 347, 0, 349,
6752 350, 351, 352, 353, 354, 0, 355, 356, 357, 358,
6753 359, 360, 0, 361, 362, 363, 364, 365, 366, 367,
6754 368, 0, 369, 370, 371, 372, 373, 374, 375, 376,
6755 377, 378, 379, 380, 381, 0, 382, 383, 0, 385,
6756 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
6757 396, 397, 398, 399, 0, 0, 400, 401, 402, 403,
6758 404, 405, 406, 407, 408, 409, 0, 411, 412, 413,
6759 414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
6760 423, 424, 425, 426, 508, 428, 429, 430, 0, 431,
6761 432, 0, 433, 0, 435, 436, 437, 438, 439, 0,
6762 440, 441, 0, 0, 442, 443, 444, 445, 446, 0,
6763 447, 448, 449, 450, 451, 452, 453, 454, -498, 0,
6764 455, 456, 457, 0, 458, 459, 460, 461, 0, 462,
6765 463, 464, 465, 466, 467, 468, 0, 469, 0, 471,
6766 472, 473, 474, 475, 0, 0, 476, 0, 0, 477,
6767 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
6768 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
6769 505, 0, 527, 0, 0, 0, 0, 0, 0, 0,
6770 0, 0, 0, 0, 0, 0, 0, 1097, 0, 110,
6771 111, 112, 113, 114, 115, 116, 117, 0, 118, 119,
6772 120, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6773 122, 123, 0, 124, 125, 126, 0, 128, 129, 130,
6774 131, 132, 0, 134, 135, 0, 136, 137, 138, 139,
6775 140, 141, 0, 0, 142, 143, 144, 145, 146, 0,
6776 147, 148, 149, 150, 151, 0, 0, 0, 153, 154,
6777 155, 156, 157, 158, 0, 160, 161, 162, 0, 163,
6778 164, 165, 166, 167, 168, 0, 0, 170, 171, 172,
6779 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
6780 0, 183, 0, 184, 185, 186, 187, 188, 189, 0,
6781 190, 191, 192, 193, 194, 0, 0, 195, 196, 197,
6782 198, 199, 0, 200, 201, 202, 0, 203, 204, 205,
6783 0, 206, 207, 208, 209, 210, 211, 212, 213, 214,
6784 215, 216, 0, 217, 0, 218, 219, 220, 221, 0,
6785 222, 0, 223, 0, 0, 0, 226, 227, 506, 0,
6786 230, 0, 231, 0, 232, 233, 234, 0, 235, 236,
6787 237, 238, 239, 240, 241, 0, 243, 244, 245, 246,
6788 0, 247, 248, 249, 250, 251, 252, 253, 0, 254,
6789 0, 256, 257, 258, 259, 260, 261, 262, 263, 0,
6790 264, 0, 265, 0, 0, 268, 0, 270, 271, 272,
6791 273, 274, 275, 0, 0, 276, 0, 278, 0, 0,
6792 280, 281, 282, 283, 284, 285, 286, 287, 507, 289,
6793 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
6794 300, 301, 302, 303, 304, 305, 306, 307, 0, 309,
6795 310, 311, 312, 313, 0, 314, 315, 0, 317, 0,
6796 318, 319, 320, 321, 322, 323, 0, 324, 325, 0,
6797 0, 326, 327, 328, 0, 0, 329, 330, 0, 332,
6798 0, 334, 335, 336, 337, 338, 339, 340, 341, 342,
6799 343, 344, 0, 0, 0, 0, 345, 346, 347, 0,
6800 349, 350, 351, 352, 353, 354, 0, 355, 356, 357,
6801 358, 359, 360, 0, 361, 362, 363, 364, 365, 366,
6802 367, 368, 0, 369, 370, 371, 372, 373, 374, 375,
6803 376, 377, 378, 379, 380, 381, 0, 382, 383, 0,
6804 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
6805 395, 396, 397, 398, 399, 0, 0, 400, 401, 402,
6806 403, 404, 405, 406, 407, 408, 409, 0, 411, 412,
6807 413, 414, 0, 415, 416, 417, 418, 419, 420, 421,
6808 422, 423, 424, 425, 426, 508, 428, 429, 430, 0,
6809 431, 432, 0, 433, 0, 435, 436, 437, 438, 439,
6810 0, 440, 441, 0, 0, 442, 443, 444, 445, 446,
6811 0, 447, 448, 449, 450, 451, 452, 453, 454, 0,
6812 0, 455, 456, 457, 0, 458, 459, 460, 461, 0,
6813 462, 463, 464, 465, 466, 467, 468, 0, 469, 0,
6814 471, 472, 473, 474, 475, 0, 0, 476, 0, 0,
6815 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
6816 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
6817 497, 831, 0, 0, 0, 0, 0, 0, 0, 0,
6818 0, 0, 0, 0, 0, 0, 0, 2356, 3071, 0,
6819 110, 111, 112, 113, 114, 115, 116, 117, 0, 118,
6820 119, 120, 3, 4, 0, 832, 0, 0, 0, 0,
6821 833, 122, 123, 0, 124, 125, 126, 834, 128, 129,
6822 130, 835, 836, 837, 838, 839, 0, 136, 137, 138,
6823 139, 140, 141, 0, 0, 142, 143, 840, 841, 146,
6824 0, 147, 148, 149, 150, 842, 0, 843, 0, 844,
6825 154, 155, 156, 157, 158, 845, 160, 161, 162, 0,
6826 163, 164, 165, 166, 167, 168, 0, 846, 170, 171,
6827 172, 173, 174, 175, 176, 177, 178, 179, 847, 848,
6828 182, 0, 183, 0, 184, 185, 186, 187, 188, 189,
6829 0, 190, 191, 192, 193, 194, 0, 0, 195, 196,
6830 197, 198, 199, 0, 200, 201, 202, 0, 203, 204,
6831 205, 0, 206, 207, 208, 209, 849, 211, 212, 213,
6832 214, 215, 850, 0, 217, 0, 218, 219, 851, 221,
6833 0, 222, 0, 223, 852, 21, 853, 226, 227, 854,
6834 855, 230, 0, 231, 0, 856, 857, 234, 0, 235,
6835 236, 237, 238, 239, 240, 241, 858, 243, 244, 245,
6836 246, 0, 247, 248, 249, 250, 251, 252, 253, 0,
6837 254, 859, 860, 257, 258, 259, 260, 261, 861, 862,
6838 0, 863, 0, 265, 864, 865, 268, 866, 270, 271,
6839 272, 273, 274, 275, 0, 0, 276, 867, 278, 868,
6840 0, 280, 281, 282, 283, 284, 285, 286, 287, 869,
6841 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
6842 299, 300, 301, 302, 303, 304, 305, 306, 870, 871,
6843 872, 310, 311, 312, 873, 0, 314, 315, 874, 317,
6844 0, 875, 319, 876, 321, 322, 323, 0, 324, 325,
6845 0, 0, 326, 327, 328, 0, 0, 329, 877, 878,
6846 332, 879, 880, 335, 336, 337, 338, 339, 340, 341,
6847 342, 343, 344, 25, 26, 27, 0, 345, 346, 881,
6848 882, 349, 350, 883, 352, 353, 354, 0, 355, 356,
6849 357, 358, 359, 360, 0, 361, 362, 363, 884, 365,
6850 366, 367, 368, 0, 369, 370, 371, 372, 373, 374,
6851 375, 376, 377, 378, 379, 380, 381, 0, 382, 383,
6852 885, 385, 386, 387, 886, 389, 390, 391, 392, 393,
6853 394, 395, 396, 397, 398, 399, 32, 887, 400, 401,
6854 402, 403, 404, 405, 888, 407, 408, 409, 889, 411,
6855 412, 890, 414, 0, 415, 416, 417, 418, 419, 420,
6856 421, 422, 423, 424, 425, 426, 891, 428, 892, 430,
6857 0, 431, 432, 37, 433, 893, 435, 436, 437, 438,
6858 439, 0, 894, 895, 0, 0, 442, 443, 896, 445,
6859 897, 0, 447, 448, 898, 450, 451, 452, 453, 454,
6860 0, 0, 455, 456, 457, 39, 458, 459, 460, 461,
6861 0, 462, 463, 464, 465, 466, 899, 900, 0, 469,
6862 901, 471, 472, 473, 474, 475, 0, 0, 476, 0,
6863 43, 477, 478, 479, 480, 481, 482, 902, 903, 904,
6864 905, 906, 907, 908, 909, 910, 911, 912, 494, 495,
6865 496, 497, 0, 109, 44, 527, 0, 0, 0, 0,
6866 0, 0, 0, 0, 0, 0, 0, 0, 45, 0,
6867 0, 0, 110, 111, 112, 113, 114, 115, 116, 117,
6868 0, 118, 119, 120, 0, 0, 0, 0, 0, 0,
6869 0, 0, 121, 122, 123, 0, 124, 125, 126, 127,
6870 128, 129, 130, 131, 132, 133, 134, 135, 0, 136,
6871 137, 138, 139, 140, 141, 0, 599, 142, 143, 144,
6872 145, 146, 0, 147, 148, 149, 150, 600, 0, 601,
6873 0, 153, 154, 155, 156, 157, 158, 159, 160, 161,
6874 162, 0, 163, 164, 165, 166, 167, 168, 0, 169,
6875 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
6876 180, 181, 182, 0, 183, 0, 184, 185, 186, 187,
6877 188, 189, 0, 190, 191, 192, 193, 194, 0, 0,
6878 195, 196, 197, 198, 199, 0, 200, 201, 202, 0,
6879 203, 204, 205, 0, 206, 207, 208, 209, 210, 211,
6880 212, 213, 214, 215, 602, 0, 217, 0, 218, 219,
6881 220, 221, 0, 222, 0, 223, 224, 21, 225, 226,
6882 227, 228, 229, 230, 0, 231, 0, 232, 233, 234,
6883 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
6884 244, 245, 246, 0, 247, 248, 249, 250, 251, 252,
6885 253, 0, 254, 255, 256, 257, 258, 259, 260, 261,
6886 262, 263, 0, 264, 0, 265, 266, 267, 268, 269,
6887 270, 271, 272, 273, 274, 275, 603, 0, 276, 277,
6888 278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
6889 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
6890 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
6891 307, 308, 309, 310, 311, 312, 313, 0, 314, 315,
6892 316, 317, 0, 604, 319, 320, 321, 322, 323, 0,
6893 324, 325, 0, 605, 326, 327, 328, 0, 0, 329,
6894 330, 331, 332, 333, 606, 335, 336, 337, 338, 339,
6895 340, 341, 342, 343, 344, 25, 26, 27, 0, 345,
6896 346, 607, 348, 349, 350, 351, 352, 353, 354, 0,
6897 355, 356, 357, 358, 359, 360, 0, 361, 362, 363,
6898 364, 365, 366, 367, 368, 0, 369, 370, 371, 372,
6899 373, 374, 375, 376, 377, 378, 379, 380, 381, 0,
6900 382, 383, 384, 385, 386, 387, 388, 608, 390, 391,
6901 392, 393, 394, 395, 396, 397, 398, 399, 32, 0,
6902 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
6903 410, 411, 412, 413, 414, 0, 415, 416, 417, 418,
6904 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
6905 609, 430, 0, 431, 432, 37, 433, 434, 435, 436,
6906 437, 438, 439, 0, 440, 441, 0, 0, 442, 443,
6907 610, 445, 611, 0, 447, 448, 612, 450, 451, 452,
6908 453, 454, 0, 0, 455, 456, 457, 39, 458, 459,
6909 460, 461, 0, 462, 463, 464, 465, 466, 613, 468,
6910 0, 469, 470, 471, 472, 473, 474, 475, 0, 0,
6911 476, 0, 43, 477, 478, 479, 480, 481, 482, 483,
6912 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
6913 494, 495, 496, 497, 0, 0, 44, 831, 1397, 629,
6914 0, 0, 0, 989, 0, 0, 0, 0, 0, 0,
6915 614, 0, 0, 0, 0, 0, 110, 111, 112, 113,
6916 114, 115, 116, 117, 0, 118, 119, 120, 0, 0,
6917 0, 832, 0, 0, 0, 0, 833, 122, 123, 0,
6918 124, 125, 126, 834, 128, 129, 130, 835, 836, 837,
6919 838, 839, 0, 136, 137, 138, 139, 140, 141, 0,
6920 0, 142, 143, 840, 841, 146, 0, 147, 148, 149,
6921 150, 842, 0, 843, 0, 844, 154, 155, 156, 157,
6922 158, 845, 160, 161, 162, 0, 163, 164, 165, 166,
6923 167, 168, 0, 846, 170, 171, 172, 173, 174, 175,
6924 176, 177, 178, 179, 847, 848, 182, 0, 183, 0,
6925 184, 185, 186, 187, 188, 189, 0, 190, 191, 192,
6926 193, 194, 0, 0, 195, 196, 197, 198, 199, 0,
6927 200, 201, 202, 0, 203, 204, 205, 0, 206, 207,
6928 208, 209, 849, 211, 212, 213, 214, 215, 850, 1398,
6929 217, 0, 218, 219, 851, 221, 0, 222, 0, 223,
6930 852, 0, 853, 226, 227, 854, 855, 230, 0, 231,
6931 0, 856, 857, 234, 0, 235, 236, 237, 238, 239,
6932 240, 241, 858, 243, 244, 245, 246, 0, 247, 248,
6933 249, 250, 251, 252, 253, 0, 254, 859, 860, 257,
6934 258, 259, 260, 261, 861, 862, 0, 863, 0, 265,
6935 864, 865, 268, 866, 270, 271, 272, 273, 274, 275,
6936 0, 0, 276, 867, 278, 868, 0, 280, 281, 282,
6937 283, 284, 285, 286, 287, 869, 289, 290, 291, 292,
6938 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
6939 303, 304, 305, 306, 870, 871, 872, 310, 311, 312,
6940 873, 0, 314, 315, 874, 317, 0, 875, 319, 876,
6941 321, 322, 323, 0, 324, 325, 1399, 0, 326, 327,
6942 328, 0, 0, 329, 877, 878, 332, 879, 880, 335,
6943 336, 337, 338, 339, 340, 341, 342, 343, 344, 0,
6944 0, 0, 0, 345, 346, 881, 882, 349, 350, 883,
6945 352, 353, 354, 0, 355, 356, 357, 358, 359, 360,
6946 0, 361, 362, 363, 884, 365, 366, 367, 368, 0,
6947 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
6948 379, 380, 381, 0, 382, 383, 885, 385, 386, 387,
6949 886, 389, 390, 391, 392, 393, 394, 395, 396, 397,
6950 398, 399, 0, 887, 400, 401, 402, 403, 404, 405,
6951 888, 407, 408, 409, 889, 411, 412, 890, 414, 0,
6952 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
6953 425, 426, 891, 428, 892, 430, 0, 431, 432, 0,
6954 433, 893, 435, 436, 437, 438, 439, 0, 894, 895,
6955 0, 0, 442, 443, 896, 445, 897, 1400, 447, 448,
6956 898, 450, 451, 452, 453, 454, 0, 0, 455, 456,
6957 457, 0, 458, 459, 460, 461, 0, 462, 463, 464,
6958 465, 466, 1243, 900, 0, 469, 901, 471, 472, 473,
6959 474, 475, 0, 0, 476, 0, 0, 477, 478, 479,
6960 480, 481, 482, 902, 903, 904, 905, 906, 907, 908,
6961 909, 910, 911, 912, 494, 495, 496, 497, 109, 0,
6962 527, 0, 0, 0, 0, 1401, 1402, 2270, 0, 0,
6963 0, 0, 0, 0, 2271, 0, 0, 110, 111, 112,
6964 113, 114, 115, 116, 117, 0, 118, 119, 120, 0,
6965 0, 0, 0, 0, 0, 0, 0, 121, 122, 123,
6966 0, 124, 125, 126, 127, 128, 129, 130, 131, 132,
6967 133, 134, 135, 0, 136, 137, 138, 139, 140, 141,
6968 0, 599, 142, 143, 144, 145, 146, 0, 147, 148,
6969 149, 150, 600, 0, 601, 0, 153, 154, 155, 156,
6970 157, 158, 159, 160, 161, 162, 0, 163, 164, 165,
6971 166, 167, 168, 0, 169, 170, 171, 172, 173, 174,
6972 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
6973 0, 184, 185, 186, 187, 188, 189, 0, 190, 191,
6974 192, 193, 194, 0, 0, 195, 196, 197, 198, 199,
6975 0, 200, 201, 202, 0, 203, 204, 205, 0, 206,
6976 207, 208, 209, 210, 211, 212, 213, 214, 215, 602,
6977 0, 217, 0, 218, 219, 220, 221, 0, 222, 0,
6978 223, 224, 0, 225, 226, 227, 228, 229, 230, 0,
6979 231, 0, 232, 233, 234, 0, 235, 236, 237, 238,
6980 239, 240, 241, 242, 243, 244, 245, 246, 0, 247,
6981 248, 249, 250, 251, 252, 253, 0, 254, 255, 256,
6982 257, 258, 259, 260, 261, 262, 263, 0, 264, 0,
6983 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
6984 275, 603, 0, 276, 277, 278, 279, 0, 280, 281,
6985 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
6986 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
6987 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
6988 312, 313, 0, 314, 315, 316, 317, 0, 604, 319,
6989 320, 321, 322, 323, 0, 324, 325, 0, 605, 326,
6990 327, 328, 0, 0, 329, 330, 331, 332, 333, 606,
6991 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
6992 0, 0, 0, 0, 345, 346, 607, 348, 349, 350,
6993 351, 352, 353, 354, 0, 355, 356, 357, 358, 359,
6994 360, 0, 361, 362, 363, 364, 365, 366, 367, 368,
6995 0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
6996 378, 379, 380, 381, 0, 382, 383, 384, 385, 386,
6997 387, 388, 608, 390, 391, 392, 393, 394, 395, 396,
6998 397, 398, 399, 0, 0, 400, 401, 402, 403, 404,
6999 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
7000 0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
7001 424, 425, 426, 427, 428, 609, 430, 0, 431, 432,
7002 0, 433, 434, 435, 436, 437, 438, 439, 0, 440,
7003 441, 0, 0, 442, 443, 610, 445, 611, 0, 447,
7004 448, 612, 450, 451, 452, 453, 454, 0, 0, 455,
7005 456, 457, 0, 458, 459, 460, 461, 0, 462, 463,
7006 464, 465, 466, 613, 468, 0, 469, 470, 471, 472,
7007 473, 474, 475, 0, 0, 476, 0, 0, 477, 478,
7008 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
7009 489, 490, 491, 492, 493, 494, 495, 496, 497, 109,
7010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7011 0, 0, 0, 0, 0, 614, 0, 0, 110, 111,
7012 112, 113, 114, 115, 116, 117, 0, 118, 119, 120,
7013 0, 0, 0, 0, 0, 0, 0, 0, 121, 122,
7014 123, 0, 124, 125, 126, 127, 128, 129, 130, 131,
7015 132, 133, 134, 135, 0, 136, 137, 138, 139, 140,
7016 141, 0, 599, 142, 143, 144, 145, 146, 0, 147,
7017 148, 149, 150, 600, 0, 601, 0, 153, 154, 155,
7018 156, 157, 158, 159, 160, 161, 162, 0, 163, 164,
7019 165, 166, 167, 168, 0, 169, 170, 171, 172, 173,
7020 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
7021 183, 0, 184, 185, 186, 187, 188, 189, 0, 190,
7022 191, 192, 193, 194, 0, 0, 195, 196, 197, 198,
7023 199, 0, 200, 201, 202, 0, 203, 204, 205, 0,
7024 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
7025 602, 0, 217, 0, 218, 219, 220, 221, 0, 222,
7026 0, 223, 224, 0, 225, 226, 227, 228, 229, 230,
7027 0, 231, 0, 232, 233, 234, 0, 235, 236, 237,
7028 238, 239, 240, 241, 242, 243, 244, 245, 246, 0,
7029 247, 248, 249, 250, 251, 252, 253, 0, 254, 255,
7030 256, 257, 258, 259, 260, 261, 262, 263, 0, 264,
7031 0, 265, 266, 267, 268, 269, 270, 271, 272, 273,
7032 274, 275, 0, 0, 276, 277, 278, 279, 0, 280,
7033 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
7034 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
7035 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
7036 311, 312, 313, 0, 314, 315, 316, 317, 0, 604,
7037 319, 320, 321, 322, 323, 0, 324, 325, 0, 0,
7038 326, 327, 328, 0, 0, 329, 330, 331, 332, 333,
7039 606, 335, 336, 337, 338, 339, 340, 341, 342, 343,
7040 344, 0, 0, 0, 0, 345, 346, 607, 348, 349,
7041 350, 351, 352, 353, 354, 0, 355, 356, 357, 358,
7042 359, 360, 0, 361, 362, 363, 364, 365, 366, 367,
7043 368, 0, 369, 370, 371, 372, 373, 374, 375, 376,
7044 377, 378, 379, 380, 381, 0, 382, 383, 384, 385,
7045 386, 387, 388, 608, 390, 391, 392, 393, 394, 395,
7046 396, 397, 398, 399, 0, 0, 400, 401, 402, 403,
7047 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
7048 414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
7049 423, 424, 425, 426, 427, 428, 609, 430, 0, 431,
7050 432, 0, 433, 434, 435, 436, 437, 438, 439, 0,
7051 440, 441, 0, 0, 442, 443, 610, 445, 611, 0,
7052 447, 448, 612, 450, 451, 452, 453, 454, 0, 0,
7053 455, 456, 457, 0, 458, 459, 460, 461, 0, 462,
7054 463, 464, 465, 466, 467, 468, 0, 469, 470, 471,
7055 472, 473, 474, 475, 0, 0, 476, 0, 0, 477,
7056 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
7057 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
7058 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7059 0, 0, 0, 0, 0, 0, 45, 0, 0, 110,
7060 111, 112, 113, 114, 115, 116, 117, 0, 118, 119,
7061 120, 0, 0, 0, 0, 0, 0, 0, 0, 121,
7062 122, 123, 0, 124, 125, 126, 127, 128, 129, 130,
7063 131, 132, 133, 134, 135, 0, 136, 137, 138, 139,
7064 140, 141, 0, 599, 142, 143, 144, 145, 146, 0,
7065 147, 148, 149, 150, 600, 0, 601, 0, 153, 154,
7066 155, 156, 157, 158, 159, 160, 161, 162, 0, 163,
7067 164, 165, 166, 167, 168, 0, 169, 170, 171, 172,
7068 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
7069 0, 183, 0, 184, 185, 186, 187, 188, 189, 0,
7070 190, 191, 192, 193, 194, 0, 0, 195, 196, 197,
7071 198, 199, 0, 200, 201, 202, 0, 203, 204, 205,
7072 0, 206, 207, 208, 209, 210, 211, 212, 213, 214,
7073 215, 602, 0, 217, 0, 218, 219, 220, 221, 0,
7074 222, 0, 223, 224, 0, 225, 226, 227, 228, 229,
7075 230, 0, 231, 0, 232, 233, 234, 0, 235, 236,
7076 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
7077 0, 247, 248, 249, 250, 251, 252, 253, 0, 254,
7078 255, 256, 257, 258, 259, 260, 261, 262, 263, 0,
7079 264, 0, 265, 266, 267, 268, 269, 270, 271, 272,
7080 273, 274, 275, 0, 0, 276, 277, 278, 279, 0,
7081 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
7082 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
7083 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
7084 310, 311, 312, 313, 0, 314, 315, 316, 317, 0,
7085 604, 319, 320, 321, 322, 323, 0, 324, 325, 0,
7086 0, 326, 327, 328, 0, 0, 329, 330, 331, 332,
7087 333, 606, 335, 336, 337, 338, 339, 340, 341, 342,
7088 343, 344, 0, 0, 0, 0, 345, 346, 607, 348,
7089 349, 350, 351, 352, 353, 354, 0, 355, 356, 357,
7090 358, 359, 360, 0, 361, 362, 363, 364, 365, 366,
7091 367, 368, 0, 369, 370, 371, 372, 373, 374, 375,
7092 376, 377, 378, 379, 380, 381, 0, 382, 383, 384,
7093 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
7094 395, 396, 397, 398, 399, 0, 0, 400, 401, 402,
7095 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
7096 413, 414, 0, 415, 416, 417, 418, 419, 420, 421,
7097 422, 423, 424, 425, 426, 427, 428, 609, 430, 0,
7098 431, 432, 0, 433, 434, 435, 436, 437, 438, 439,
7099 0, 440, 441, 0, 0, 442, 443, 610, 445, 611,
7100 0, 447, 448, 612, 450, 451, 452, 453, 454, 0,
7101 0, 455, 456, 457, 0, 458, 459, 460, 461, 0,
7102 462, 463, 464, 465, 466, 467, 468, 0, 469, 470,
7103 471, 472, 473, 474, 475, 0, 0, 476, 0, 0,
7104 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
7105 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
7106 497, 505, 0, 0, 0, 0, 0, 0, 0, 0,
7107 0, 0, 0, 0, 0, 0, 0, 3153, 0, 0,
7108 110, 111, 112, 113, 114, 115, 116, 117, 696, 118,
7109 119, 120, 0, 0, 0, 0, 0, 0, 0, 0,
7110 0, 122, 123, 0, 124, 125, 126, 0, 128, 129,
7111 130, 131, 132, 0, 134, 135, 0, 136, 137, 138,
7112 139, 140, 141, 0, 0, 142, 143, 144, 145, 146,
7113 0, 147, 148, 149, 150, 151, 0, 0, 0, 153,
7114 154, 155, 156, 157, 158, 0, 160, 161, 162, 0,
7115 163, 164, 165, 166, 167, 168, 0, 0, 170, 171,
7116 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
7117 182, 0, 183, 0, 184, 185, 186, 187, 188, 189,
7118 0, 190, 191, 192, 193, 194, 0, 0, 195, 196,
7119 197, 198, 199, 0, 200, 201, 202, 0, 203, 204,
7120 205, 0, 206, 207, 208, 209, 210, 211, 212, 213,
7121 214, 215, 216, 0, 217, 0, 218, 219, 220, 221,
7122 0, 222, 0, 223, 0, 21, 0, 226, 227, 506,
7123 0, 230, 0, 231, 0, 232, 233, 234, 0, 235,
7124 236, 237, 238, 239, 240, 241, 0, 243, 244, 245,
7125 246, 0, 247, 248, 249, 250, 251, 252, 253, 0,
7126 254, 0, 256, 257, 258, 259, 260, 261, 262, 263,
7127 0, 264, 0, 265, 0, 0, 268, 0, 270, 271,
7128 272, 273, 274, 275, 0, 0, 276, 0, 278, 0,
7129 0, 280, 281, 282, 283, 284, 285, 286, 287, 507,
7130 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
7131 299, 300, 301, 302, 303, 304, 305, 306, 307, 0,
7132 309, 310, 311, 312, 313, 0, 314, 315, 0, 317,
7133 0, 318, 319, 320, 321, 322, 323, 0, 324, 325,
7134 0, 0, 326, 327, 328, 0, 0, 329, 330, 0,
7135 332, 0, 334, 335, 336, 337, 338, 339, 340, 341,
7136 342, 343, 344, 25, 26, 27, 0, 345, 346, 347,
7137 0, 349, 350, 351, 352, 353, 354, 0, 355, 356,
7138 357, 358, 359, 360, 0, 361, 362, 363, 364, 365,
7139 366, 367, 368, 0, 369, 370, 371, 372, 373, 374,
7140 375, 376, 377, 378, 379, 380, 381, 0, 382, 383,
7141 0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
7142 394, 395, 396, 397, 398, 399, 32, 0, 400, 401,
7143 402, 403, 404, 405, 406, 407, 408, 409, 0, 411,
7144 412, 413, 414, 0, 415, 416, 417, 418, 419, 420,
7145 421, 422, 423, 424, 425, 426, 508, 428, 429, 430,
7146 0, 431, 432, 37, 433, 0, 435, 436, 437, 438,
7147 439, 0, 697, 441, 0, 0, 698, 443, 444, 445,
7148 446, 0, 447, 448, 449, 450, 451, 452, 453, 454,
7149 0, 0, 455, 456, 457, 39, 458, 459, 460, 461,
7150 0, 462, 463, 464, 465, 466, 613, 468, 0, 469,
7151 0, 471, 472, 473, 474, 475, 0, 0, 476, 0,
7152 43, 477, 478, 479, 480, 481, 482, 483, 484, 485,
7153 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
7154 496, 497, 505, 0, 44, 0, 0, 0, 0, 0,
7155 0, 0, 0, 0, 0, 0, 0, 0, 45, 0,
7156 0, 110, 111, 112, 113, 114, 115, 116, 117, 0,
7157 118, 119, 120, 0, 0, 0, 0, 0, 0, 0,
7158 0, 0, 122, 123, 0, 124, 125, 126, 0, 128,
7159 129, 130, 131, 132, 0, 134, 135, 0, 136, 137,
7160 138, 139, 140, 141, 0, 0, 142, 143, 144, 145,
7161 146, 0, 147, 148, 149, 150, 151, 0, 0, 0,
7162 153, 154, 155, 156, 157, 158, 0, 160, 161, 162,
7163 0, 163, 164, 165, 166, 167, 168, 0, 0, 170,
7164 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
7165 181, 182, 0, 183, 0, 184, 185, 186, 187, 188,
7166 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
7167 196, 197, 198, 199, 0, 200, 201, 202, 0, 203,
7168 204, 205, 0, 206, 207, 208, 209, 210, 211, 212,
7169 213, 214, 215, 216, 0, 217, 0, 218, 219, 220,
7170 221, 0, 222, 0, 223, 0, 21, 0, 226, 227,
7171 506, 0, 230, 0, 231, 0, 232, 233, 234, 0,
7172 235, 236, 237, 238, 239, 240, 241, 0, 243, 244,
7173 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
7174 0, 254, 0, 256, 257, 258, 259, 260, 261, 262,
7175 263, 0, 264, 0, 265, 0, 0, 268, 0, 270,
7176 271, 272, 273, 274, 275, 0, 0, 276, 0, 278,
7177 0, 0, 280, 281, 282, 283, 284, 285, 286, 287,
7178 507, 289, 290, 291, 292, 293, 294, 295, 296, 297,
7179 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
7180 0, 309, 310, 311, 312, 313, 0, 314, 315, 0,
7181 317, 0, 318, 319, 320, 321, 322, 323, 0, 324,
7182 325, 0, 0, 326, 327, 328, 0, 0, 329, 330,
7183 0, 332, 0, 334, 335, 336, 337, 338, 339, 340,
7184 341, 342, 343, 344, 25, 26, 27, 0, 345, 346,
7185 347, 0, 349, 350, 351, 352, 353, 354, 0, 355,
7186 356, 357, 358, 359, 360, 0, 361, 362, 363, 364,
7187 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
7188 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
7189 383, 0, 385, 386, 387, 388, 389, 390, 391, 392,
7190 393, 394, 395, 396, 397, 398, 399, 32, 0, 400,
7191 401, 402, 403, 404, 405, 406, 407, 408, 409, 0,
7192 411, 412, 413, 414, 0, 415, 416, 417, 418, 419,
7193 420, 421, 422, 423, 424, 425, 426, 508, 428, 429,
7194 430, 0, 431, 432, 37, 433, 0, 435, 436, 437,
7195 438, 439, 0, 440, 441, 0, 0, 442, 443, 444,
7196 445, 446, 0, 447, 448, 449, 450, 451, 452, 453,
7197 454, 0, 0, 455, 456, 457, 39, 458, 459, 460,
7198 461, 0, 462, 463, 464, 465, 466, 613, 468, 0,
7199 469, 0, 471, 472, 473, 474, 475, 0, 0, 476,
7200 0, 43, 477, 478, 479, 480, 481, 482, 483, 484,
7201 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
7202 495, 496, 497, 0, 505, 44, 527, 0, 0, 0,
7203 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,
7204 0, 0, 0, 110, 111, 112, 113, 114, 115, 116,
7205 117, 0, 118, 119, 120, 0, 0, 0, 0, 0,
7206 0, 0, 0, 0, 122, 123, 0, 124, 125, 126,
7207 0, 128, 129, 130, 131, 132, 0, 134, 135, 0,
7208 136, 137, 138, 139, 140, 141, 0, 0, 142, 143,
7209 144, 145, 146, 0, 147, 148, 149, 150, 151, 0,
7210 0, 0, 153, 154, 155, 156, 157, 158, 0, 160,
7211 161, 162, 0, 163, 164, 165, 166, 167, 168, 0,
7212 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
7213 179, 180, 181, 182, 0, 183, 0, 184, 185, 186,
7214 187, 188, 189, 0, 190, 191, 192, 193, 194, 0,
7215 0, 195, 196, 197, 198, 199, 0, 200, 201, 202,
7216 0, 203, 204, 205, 0, 206, 207, 208, 209, 210,
7217 211, 212, 213, 214, 215, 216, 0, 217, 0, 218,
7218 219, 220, 221, 0, 222, 0, 223, 0, 0, 0,
7219 226, 227, 506, 0, 230, 0, 231, 0, 232, 233,
7220 234, 0, 235, 236, 237, 238, 239, 240, 241, 0,
7221 243, 244, 245, 246, 0, 247, 248, 249, 250, 251,
7222 252, 253, 0, 254, 0, 256, 257, 258, 259, 260,
7223 261, 262, 263, 0, 264, 0, 265, 0, 0, 268,
7224 0, 270, 271, 272, 273, 274, 275, 0, 0, 276,
7225 0, 278, 0, 0, 280, 281, 282, 283, 284, 285,
7226 286, 287, 507, 289, 290, 291, 292, 293, 294, 295,
7227 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
7228 306, 307, 0, 309, 310, 311, 312, 313, 0, 314,
7229 315, 0, 317, 0, 318, 319, 320, 321, 322, 323,
7230 0, 324, 325, 0, 0, 326, 327, 328, 0, 0,
7231 329, 330, 0, 332, 0, 334, 335, 336, 337, 338,
7232 339, 340, 341, 342, 343, 344, 0, 0, 0, 0,
7233 345, 346, 347, 0, 349, 350, 351, 352, 353, 354,
7234 0, 355, 356, 357, 358, 359, 360, 0, 361, 362,
7235 363, 364, 365, 366, 367, 368, 0, 369, 370, 371,
7236 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
7237 0, 382, 383, 0, 385, 386, 387, 388, 389, 390,
7238 391, 392, 393, 394, 395, 396, 397, 398, 399, 0,
7239 0, 400, 401, 402, 403, 404, 405, 406, 407, 408,
7240 409, 0, 411, 412, 413, 414, 0, 415, 416, 417,
7241 418, 419, 420, 421, 422, 423, 424, 425, 426, 508,
7242 428, 429, 430, 0, 431, 432, 0, 433, 0, 435,
7243 436, 437, 438, 439, 0, 440, 441, 0, 0, 442,
7244 443, 444, 445, 446, 0, 447, 448, 449, 450, 451,
7245 452, 453, 454, 0, 0, 455, 456, 457, 0, 458,
7246 459, 460, 461, 0, 462, 463, 464, 465, 466, 467,
7247 468, 0, 469, 0, 471, 472, 473, 474, 475, 0,
7248 0, 476, 0, 0, 477, 478, 479, 480, 481, 482,
7249 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
7250 493, 494, 495, 496, 497, 505, 0, 527, 0, 0,
7251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7252 0, 932, 0, 0, 110, 111, 112, 113, 114, 115,
7253 116, 117, 0, 118, 119, 120, 0, 0, 0, 0,
7254 0, 0, 0, 0, 0, 122, 123, 0, 124, 125,
7255 126, 0, 128, 129, 130, 131, 132, 0, 134, 135,
7256 0, 136, 137, 138, 139, 140, 141, 0, 0, 142,
7257 143, 144, 145, 146, 0, 147, 148, 149, 150, 151,
7258 0, 0, 0, 153, 154, 155, 156, 157, 158, 0,
7259 160, 161, 162, 0, 163, 164, 165, 166, 167, 168,
7260 0, 0, 170, 171, 172, 173, 174, 175, 176, 177,
7261 178, 179, 180, 181, 182, 0, 183, 0, 184, 185,
7262 186, 187, 188, 189, 0, 190, 191, 192, 193, 194,
7263 0, 0, 195, 196, 197, 198, 199, 0, 200, 201,
7264 202, 0, 203, 204, 205, 0, 206, 207, 208, 209,
7265 210, 211, 212, 213, 214, 215, 216, 0, 217, 0,
7266 218, 219, 220, 221, 0, 222, 0, 223, 0, 0,
7267 0, 226, 227, 506, 0, 230, 0, 231, 0, 232,
7268 233, 234, 0, 235, 236, 237, 238, 239, 240, 241,
7269 0, 243, 244, 245, 246, 0, 247, 248, 249, 250,
7270 251, 252, 253, 0, 254, 0, 256, 257, 258, 259,
7271 260, 261, 262, 263, 0, 264, 0, 265, 0, 0,
7272 268, 0, 270, 271, 272, 273, 274, 275, 0, 0,
7273 276, 0, 278, 0, 0, 280, 281, 282, 283, 284,
7274 285, 286, 287, 507, 289, 290, 291, 292, 293, 294,
7275 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
7276 305, 306, 307, 0, 309, 310, 311, 312, 313, 0,
7277 314, 315, 0, 317, 0, 318, 319, 320, 321, 322,
7278 323, 0, 324, 325, 0, 0, 326, 327, 328, 0,
7279 0, 329, 330, 0, 332, 0, 334, 335, 336, 337,
7280 338, 339, 340, 341, 342, 343, 344, 0, 0, 0,
7281 0, 345, 346, 347, 0, 349, 350, 351, 352, 353,
7282 354, 0, 355, 356, 357, 358, 359, 360, 0, 361,
7283 362, 363, 364, 365, 366, 367, 368, 0, 369, 370,
7284 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
7285 381, 0, 382, 383, 0, 385, 386, 387, 388, 389,
7286 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
7287 0, 0, 400, 401, 402, 403, 404, 405, 406, 407,
7288 408, 409, 0, 411, 412, 413, 414, 0, 415, 416,
7289 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
7290 508, 428, 429, 430, 0, 431, 432, 0, 433, 0,
7291 435, 436, 437, 438, 439, 0, 440, 441, 0, 0,
7292 442, 443, 444, 445, 446, 0, 447, 448, 449, 450,
7293 451, 452, 453, 454, 0, 0, 455, 456, 457, 0,
7294 458, 459, 460, 461, 0, 462, 463, 464, 465, 466,
7295 467, 468, 0, 469, 0, 471, 472, 473, 474, 475,
7296 0, 0, 476, 0, 0, 477, 478, 479, 480, 481,
7297 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
7298 492, 493, 494, 495, 496, 497, 505, 0, 527, 0,
7299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7300 0, 0, 1491, 0, 0, 110, 111, 112, 113, 114,
7301 115, 116, 117, 0, 118, 119, 120, 0, 0, 0,
7302 0, 0, 0, 0, 0, 0, 122, 123, 0, 124,
7303 125, 126, 0, 128, 129, 130, 131, 132, 0, 134,
7304 135, 0, 136, 137, 138, 139, 140, 141, 0, 0,
7305 142, 143, 144, 145, 146, 0, 147, 148, 149, 150,
7306 151, 0, 0, 0, 153, 154, 155, 156, 157, 158,
7307 0, 160, 161, 162, 0, 163, 164, 165, 166, 167,
7308 168, 0, 0, 170, 171, 172, 173, 174, 175, 176,
7309 177, 178, 179, 180, 181, 182, 0, 183, 0, 184,
7310 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
7311 194, 0, 0, 195, 196, 197, 198, 199, 0, 200,
7312 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
7313 209, 210, 211, 212, 213, 214, 215, 216, 0, 217,
7314 0, 218, 219, 220, 221, 0, 222, 0, 223, 0,
7315 0, 0, 226, 227, 506, 0, 230, 0, 231, 0,
7316 232, 233, 234, 0, 235, 236, 237, 238, 239, 240,
7317 241, 0, 243, 244, 245, 246, 0, 247, 248, 249,
7318 250, 251, 252, 253, 0, 254, 0, 256, 257, 258,
7319 259, 260, 261, 262, 263, 0, 264, 0, 265, 0,
7320 0, 268, 0, 270, 271, 272, 273, 274, 275, 0,
7321 0, 276, 0, 278, 0, 0, 280, 281, 282, 283,
7322 284, 285, 286, 287, 507, 289, 290, 291, 292, 293,
7323 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
7324 304, 305, 306, 307, 0, 309, 310, 311, 312, 313,
7325 0, 314, 315, 0, 317, 0, 318, 319, 320, 321,
7326 322, 323, 0, 324, 325, 0, 0, 326, 327, 328,
7327 0, 0, 329, 330, 0, 332, 0, 334, 335, 336,
7328 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
7329 0, 0, 345, 346, 347, 0, 349, 350, 351, 352,
7330 353, 354, 0, 355, 356, 357, 358, 359, 360, 0,
7331 361, 362, 363, 364, 365, 366, 367, 368, 0, 369,
7332 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
7333 380, 381, 0, 382, 383, 0, 385, 386, 387, 388,
7334 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
7335 399, 0, 0, 400, 401, 402, 403, 404, 405, 406,
7336 407, 408, 409, 0, 411, 412, 413, 414, 0, 415,
7337 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
7338 426, 508, 428, 429, 430, 0, 431, 432, 0, 433,
7339 0, 435, 436, 437, 438, 439, 0, 440, 441, 0,
7340 0, 442, 443, 444, 445, 446, 0, 447, 448, 449,
7341 450, 451, 452, 453, 454, 0, 0, 455, 456, 457,
7342 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
7343 466, 467, 468, 0, 469, 0, 471, 472, 473, 474,
7344 475, 0, 0, 476, 0, 0, 477, 478, 479, 480,
7345 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
7346 491, 492, 493, 494, 495, 496, 497, 505, 0, 527,
7347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7348 0, 0, 0, 2111, 0, 0, 110, 111, 112, 113,
7349 114, 115, 116, 117, 0, 118, 119, 120, 0, 0,
7350 0, 0, 0, 0, 0, 0, 0, 122, 123, 0,
7351 124, 125, 126, 0, 128, 129, 130, 131, 132, 0,
7352 134, 135, 0, 136, 137, 138, 139, 140, 141, 0,
7353 0, 142, 143, 144, 145, 146, 0, 147, 148, 149,
7354 150, 151, 0, 0, 0, 153, 154, 155, 156, 157,
7355 158, 0, 160, 161, 162, 0, 163, 164, 165, 166,
7356 167, 168, 0, 0, 170, 171, 172, 173, 174, 175,
7357 176, 177, 178, 179, 180, 181, 182, 0, 183, 0,
7358 184, 185, 186, 187, 188, 189, 0, 190, 191, 192,
7359 193, 194, 0, 0, 195, 196, 197, 198, 199, 0,
7360 200, 201, 202, 0, 203, 204, 205, 0, 206, 207,
7361 208, 209, 210, 211, 212, 213, 214, 215, 216, 0,
7362 217, 0, 218, 219, 220, 221, 0, 222, 0, 223,
7363 0, 0, 0, 226, 227, 506, 0, 230, 0, 231,
7364 0, 232, 233, 234, 0, 235, 236, 237, 238, 239,
7365 240, 241, 0, 243, 244, 245, 246, 0, 247, 248,
7366 249, 250, 251, 252, 253, 0, 254, 0, 256, 257,
7367 258, 259, 260, 261, 262, 263, 0, 264, 0, 265,
7368 0, 0, 268, 0, 270, 271, 272, 273, 274, 275,
7369 0, 0, 276, 0, 278, 0, 0, 280, 281, 282,
7370 283, 284, 285, 286, 287, 507, 289, 290, 291, 292,
7371 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
7372 303, 304, 305, 306, 307, 0, 309, 310, 311, 312,
7373 313, 0, 314, 315, 0, 317, 0, 318, 319, 320,
7374 321, 322, 323, 0, 324, 325, 0, 0, 326, 327,
7375 328, 0, 0, 329, 330, 0, 332, 0, 334, 335,
7376 336, 337, 338, 339, 340, 341, 342, 343, 344, 0,
7377 0, 0, 0, 345, 346, 347, 0, 349, 350, 351,
7378 352, 353, 354, 0, 355, 356, 357, 358, 359, 360,
7379 0, 361, 362, 363, 364, 365, 366, 367, 368, 0,
7380 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
7381 379, 380, 381, 0, 382, 383, 0, 385, 386, 387,
7382 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
7383 398, 399, 0, 0, 400, 401, 402, 403, 404, 405,
7384 406, 407, 408, 409, 0, 411, 412, 413, 414, 0,
7385 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
7386 425, 426, 508, 428, 429, 430, 0, 431, 432, 0,
7387 433, 0, 435, 436, 437, 438, 439, 0, 440, 441,
7388 0, 0, 442, 443, 444, 445, 446, 0, 447, 448,
7389 449, 450, 451, 452, 453, 454, 0, 0, 455, 456,
7390 457, 0, 458, 459, 460, 461, 0, 462, 463, 464,
7391 465, 466, 467, 468, 0, 469, 0, 471, 472, 473,
7392 474, 475, 0, 0, 476, 0, 0, 477, 478, 479,
7393 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
7394 490, 491, 492, 493, 494, 495, 496, 497, 505, 0,
7395 527, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7396 0, 0, 0, 0, 2356, 0, 0, 110, 111, 112,
7397 113, 114, 115, 116, 117, 0, 118, 119, 120, 0,
7398 0, 0, 0, 0, 0, 0, 0, 0, 122, 123,
7399 0, 124, 125, 126, 0, 128, 129, 130, 131, 132,
7400 0, 134, 135, 0, 136, 137, 138, 139, 140, 141,
7401 0, 0, 142, 143, 144, 145, 146, 0, 147, 148,
7402 149, 150, 151, 0, 0, 0, 153, 154, 155, 156,
7403 157, 158, 0, 160, 161, 162, 0, 163, 164, 165,
7404 166, 167, 168, 0, 0, 170, 171, 172, 173, 174,
7405 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
7406 0, 184, 185, 186, 187, 188, 189, 0, 190, 191,
7407 192, 193, 194, 0, 0, 195, 196, 197, 198, 199,
7408 0, 200, 201, 202, 0, 203, 204, 205, 0, 206,
7409 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
7410 0, 217, 0, 218, 219, 220, 221, 0, 222, 0,
7411 223, 0, 0, 0, 226, 227, 506, 0, 230, 0,
7412 231, 0, 232, 233, 234, 0, 235, 236, 237, 238,
7413 239, 240, 241, 0, 243, 244, 245, 246, 0, 247,
7414 248, 249, 250, 251, 252, 253, 0, 254, 0, 256,
7415 257, 258, 259, 260, 261, 262, 263, 0, 264, 0,
7416 265, 0, 0, 268, 0, 270, 271, 272, 273, 274,
7417 275, 0, 0, 276, 0, 278, 0, 0, 280, 281,
7418 282, 283, 284, 285, 286, 287, 507, 289, 290, 291,
7419 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
7420 302, 303, 304, 305, 306, 307, 0, 309, 310, 311,
7421 312, 313, 0, 314, 315, 0, 317, 0, 318, 319,
7422 320, 321, 322, 323, 0, 324, 325, 0, 0, 326,
7423 327, 328, 0, 0, 329, 330, 0, 332, 0, 334,
7424 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
7425 0, 0, 0, 0, 345, 346, 347, 0, 349, 350,
7426 351, 352, 353, 354, 0, 355, 356, 357, 358, 359,
7427 360, 0, 361, 362, 363, 364, 365, 366, 367, 368,
7428 0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
7429 378, 379, 380, 381, 0, 382, 383, 0, 385, 386,
7430 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
7431 397, 398, 399, 0, 0, 400, 401, 402, 403, 404,
7432 405, 406, 407, 408, 409, 0, 411, 412, 413, 414,
7433 0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
7434 424, 425, 426, 508, 428, 429, 430, 0, 431, 432,
7435 0, 433, 0, 435, 436, 437, 438, 439, 0, 440,
7436 441, 0, 0, 442, 443, 444, 445, 446, 0, 447,
7437 448, 449, 450, 451, 452, 453, 454, 0, 0, 455,
7438 456, 457, 0, 458, 459, 460, 461, 0, 462, 463,
7439 464, 465, 466, 467, 468, 0, 469, 0, 471, 472,
7440 473, 474, 475, 0, 0, 476, 0, 0, 477, 478,
7441 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
7442 489, 490, 491, 492, 493, 494, 495, 496, 497, 505,
7443 0, 527, 0, 0, 0, 0, 0, 0, 0, 0,
7444 0, 0, 0, 0, 0, 2463, 0, 0, 110, 111,
7445 112, 113, 114, 115, 116, 117, 0, 118, 119, 120,
7446 0, 0, 0, 0, 0, 0, 0, 0, 0, 122,
7447 123, 0, 124, 125, 126, 0, 128, 129, 130, 131,
7448 132, 0, 134, 135, 0, 136, 137, 138, 139, 140,
7449 141, 0, 0, 142, 143, 144, 145, 146, 0, 147,
7450 148, 149, 150, 151, 0, 0, 0, 153, 154, 155,
7451 156, 157, 158, 0, 160, 161, 162, 0, 163, 164,
7452 165, 166, 167, 168, 0, 0, 170, 171, 172, 173,
7453 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
7454 183, 0, 184, 185, 186, 187, 188, 189, 0, 190,
7455 191, 192, 193, 194, 0, 0, 195, 196, 197, 198,
7456 199, 0, 200, 201, 202, 0, 203, 204, 205, 0,
7457 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
7458 216, 0, 217, 0, 218, 219, 220, 221, 0, 222,
7459 0, 223, 0, 0, 0, 226, 227, 506, 0, 230,
7460 0, 231, 0, 232, 233, 234, 0, 235, 236, 237,
7461 238, 239, 240, 241, 0, 243, 244, 245, 246, 0,
7462 247, 248, 249, 250, 251, 252, 253, 0, 254, 0,
7463 256, 257, 258, 259, 260, 261, 262, 263, 0, 264,
7464 0, 265, 0, 0, 268, 0, 270, 271, 272, 273,
7465 274, 275, 0, 0, 276, 0, 278, 0, 0, 280,
7466 281, 282, 283, 284, 285, 286, 287, 507, 289, 290,
7467 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
7468 301, 302, 303, 304, 305, 306, 307, 0, 309, 310,
7469 311, 312, 313, 0, 314, 315, 0, 317, 0, 318,
7470 319, 320, 321, 322, 323, 0, 324, 325, 0, 0,
7471 326, 327, 328, 0, 0, 329, 330, 0, 332, 0,
7472 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
7473 344, 0, 0, 0, 0, 345, 346, 347, 0, 349,
7474 350, 351, 352, 353, 354, 0, 355, 356, 357, 358,
7475 359, 360, 0, 361, 362, 363, 364, 365, 366, 367,
7476 368, 0, 369, 370, 371, 372, 373, 374, 375, 376,
7477 377, 378, 379, 380, 381, 0, 382, 383, 0, 385,
7478 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
7479 396, 397, 398, 399, 0, 0, 400, 401, 402, 403,
7480 404, 405, 406, 407, 408, 409, 0, 411, 412, 413,
7481 414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
7482 423, 424, 425, 426, 508, 428, 429, 430, 0, 431,
7483 432, 0, 433, 0, 435, 436, 437, 438, 439, 0,
7484 440, 441, 0, 0, 442, 443, 444, 445, 446, 0,
7485 447, 448, 449, 450, 451, 452, 453, 454, 0, 0,
7486 455, 456, 457, 0, 458, 459, 460, 461, 0, 462,
7487 463, 464, 465, 466, 467, 468, 0, 469, 0, 471,
7488 472, 473, 474, 475, 0, 0, 476, 0, 0, 477,
7489 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
7490 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
7491 505, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7492 0, 0, 0, 0, 0, 0, 3065, 0, 0, 110,
7493 111, 112, 113, 114, 115, 116, 117, 0, 118, 119,
7494 120, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7495 122, 123, 0, 124, 125, 126, 0, 128, 129, 130,
7496 131, 132, 0, 134, 135, 0, 136, 137, 138, 139,
7497 140, 141, 0, 0, 142, 143, 144, 145, 146, 0,
7498 147, 148, 149, 150, 151, 0, 0, 0, 153, 154,
7499 155, 156, 157, 158, 0, 160, 161, 162, 0, 163,
7500 164, 165, 166, 167, 168, 0, 0, 170, 171, 172,
7501 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
7502 0, 183, 0, 184, 185, 186, 187, 188, 189, 0,
7503 190, 191, 192, 193, 194, 0, 0, 195, 196, 197,
7504 198, 199, 0, 200, 201, 202, 0, 203, 204, 205,
7505 0, 206, 207, 208, 209, 210, 211, 212, 213, 214,
7506 215, 216, 0, 217, 0, 218, 219, 220, 221, 0,
7507 222, 0, 223, 0, 0, 0, 226, 227, 506, 0,
7508 230, 0, 231, 0, 232, 233, 234, 0, 235, 236,
7509 237, 238, 239, 240, 241, 0, 243, 244, 245, 246,
7510 0, 247, 248, 249, 250, 251, 252, 253, 0, 254,
7511 0, 256, 257, 258, 259, 260, 261, 262, 263, 0,
7512 264, 0, 265, 0, 0, 268, 0, 270, 271, 272,
7513 273, 274, 275, 0, 0, 276, 0, 278, 0, 0,
7514 280, 281, 282, 283, 284, 285, 286, 287, 507, 289,
7515 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
7516 300, 301, 302, 303, 304, 305, 306, 307, 0, 309,
7517 310, 311, 312, 313, 0, 314, 315, 0, 317, 0,
7518 318, 319, 320, 321, 322, 323, 0, 324, 325, 0,
7519 0, 326, 327, 328, 0, 0, 329, 330, 0, 332,
7520 0, 334, 335, 336, 337, 338, 339, 340, 341, 342,
7521 343, 344, 0, 0, 0, 0, 345, 346, 347, 0,
7522 349, 350, 351, 352, 353, 354, 0, 355, 356, 357,
7523 358, 359, 360, 0, 361, 362, 363, 364, 365, 366,
7524 367, 368, 0, 369, 370, 371, 372, 373, 374, 375,
7525 376, 377, 378, 379, 380, 381, 0, 382, 383, 0,
7526 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
7527 395, 396, 397, 398, 399, 0, 0, 400, 401, 402,
7528 403, 404, 405, 406, 407, 408, 409, 0, 411, 412,
7529 413, 414, 0, 415, 416, 417, 418, 419, 420, 421,
7530 422, 423, 424, 425, 426, 508, 428, 429, 430, 0,
7531 431, 432, 0, 433, 0, 435, 436, 437, 438, 439,
7532 0, 440, 441, 0, 0, 442, 443, 444, 445, 446,
7533 0, 447, 448, 449, 450, 451, 452, 453, 454, 0,
7534 0, 455, 456, 457, 0, 458, 459, 460, 461, 0,
7535 462, 463, 464, 465, 466, 467, 468, 0, 469, 0,
7536 471, 472, 473, 474, 475, 0, 0, 476, 0, 0,
7537 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
7538 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
7539 497, 505, 0, 0, 0, 0, 0, 0, 0, 0,
7540 0, 0, 0, 0, 0, 0, 0, 1971, 0, 0,
7541 110, 111, 112, 113, 114, 115, 116, 117, 0, 118,
7542 119, 120, 0, 0, 0, 0, 0, 0, 0, 0,
7543 0, 122, 123, 0, 124, 125, 126, 0, 128, 129,
7544 130, 131, 132, 0, 134, 135, 0, 136, 137, 138,
7545 139, 140, 141, 0, 0, 142, 143, 144, 145, 146,
7546 0, 147, 148, 149, 150, 151, 0, 0, 0, 153,
7547 154, 155, 156, 157, 158, 0, 160, 161, 162, 0,
7548 163, 164, 165, 166, 167, 168, 0, 0, 170, 171,
7549 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
7550 182, 0, 183, 0, 184, 185, 186, 187, 188, 189,
7551 0, 190, 191, 192, 193, 194, 0, 0, 195, 196,
7552 197, 198, 199, 0, 200, 201, 202, 0, 203, 204,
7553 205, 0, 206, 207, 208, 209, 210, 211, 212, 213,
7554 214, 215, 216, 0, 217, 0, 218, 219, 220, 221,
7555 0, 222, 0, 223, 0, 0, 0, 226, 227, 506,
7556 0, 230, 0, 231, 0, 232, 233, 234, 0, 235,
7557 236, 237, 238, 239, 240, 241, 0, 243, 244, 245,
7558 246, 0, 247, 248, 249, 250, 251, 252, 253, 0,
7559 254, 0, 256, 257, 258, 259, 260, 261, 262, 263,
7560 0, 264, 0, 265, 0, 0, 268, 0, 270, 271,
7561 272, 273, 274, 275, 0, 0, 276, 0, 278, 0,
7562 0, 280, 281, 282, 283, 284, 285, 286, 287, 507,
7563 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
7564 299, 300, 301, 302, 303, 304, 305, 306, 307, 0,
7565 309, 310, 311, 312, 313, 0, 314, 315, 0, 317,
7566 0, 318, 319, 320, 321, 322, 323, 0, 324, 325,
7567 0, 0, 326, 327, 328, 0, 0, 329, 330, 0,
7568 332, 0, 334, 335, 336, 337, 338, 339, 340, 341,
7569 342, 343, 344, 0, 0, 0, 0, 345, 346, 347,
7570 0, 349, 350, 351, 352, 353, 354, 0, 355, 356,
7571 357, 358, 359, 360, 0, 361, 362, 363, 364, 365,
7572 366, 367, 368, 0, 369, 370, 371, 372, 373, 374,
7573 375, 376, 377, 378, 379, 380, 381, 0, 382, 383,
7574 0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
7575 394, 395, 396, 397, 398, 399, 0, 0, 400, 401,
7576 402, 403, 404, 405, 406, 407, 408, 409, 0, 411,
7577 412, 413, 414, 0, 415, 416, 417, 418, 419, 420,
7578 421, 422, 423, 424, 425, 426, 508, 428, 429, 430,
7579 0, 431, 432, 0, 433, 0, 435, 436, 437, 438,
7580 439, 0, 440, 441, 0, 0, 442, 443, 444, 445,
7581 446, 0, 447, 448, 449, 450, 451, 452, 453, 454,
7582 0, 0, 455, 456, 457, 0, 458, 459, 460, 461,
7583 0, 462, 463, 464, 465, 466, 467, 468, 0, 469,
7584 0, 471, 472, 473, 474, 475, 0, 0, 476, 0,
7585 0, 477, 478, 479, 480, 481, 482, 483, 484, 485,
7586 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
7587 496, 497, 505, 0, 0, 0, 0, 0, 0, 0,
7588 0, 0, 0, 0, 0, 0, 0, 0, 2071, 0,
7589 0, 110, 111, 112, 113, 114, 115, 116, 117, 0,
7590 118, 119, 120, 0, 0, 0, 0, 0, 0, 0,
7591 0, 0, 122, 123, 0, 124, 125, 126, 0, 128,
7592 129, 130, 131, 132, 0, 134, 135, 0, 136, 137,
7593 138, 139, 140, 141, 0, 0, 142, 143, 144, 145,
7594 146, 0, 147, 148, 149, 150, 151, 0, 0, 0,
7595 153, 154, 155, 156, 157, 158, 0, 160, 161, 162,
7596 0, 163, 164, 165, 166, 167, 168, 0, 0, 170,
7597 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
7598 181, 182, 0, 183, 0, 184, 185, 186, 187, 188,
7599 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
7600 196, 197, 198, 199, 0, 200, 201, 202, 0, 203,
7601 204, 205, 0, 206, 207, 208, 209, 210, 211, 212,
7602 213, 214, 215, 216, 0, 217, 0, 218, 219, 220,
7603 221, 0, 222, 0, 223, 0, 0, 0, 226, 227,
7604 506, 0, 230, 0, 231, 0, 232, 233, 234, 0,
7605 235, 236, 237, 238, 239, 240, 241, 0, 243, 244,
7606 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
7607 0, 254, 0, 256, 257, 258, 259, 260, 261, 262,
7608 263, 0, 264, 0, 265, 0, 0, 268, 0, 270,
7609 271, 272, 273, 274, 275, 0, 0, 276, 0, 278,
7610 0, 0, 280, 281, 282, 283, 284, 285, 286, 287,
7611 507, 289, 290, 291, 292, 293, 294, 295, 296, 297,
7612 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
7613 0, 309, 310, 311, 312, 313, 0, 314, 315, 0,
7614 317, 0, 318, 319, 320, 321, 322, 323, 0, 324,
7615 325, 0, 0, 326, 327, 328, 0, 0, 329, 330,
7616 0, 332, 0, 334, 335, 336, 337, 338, 339, 340,
7617 341, 342, 343, 344, 0, 0, 0, 0, 345, 346,
7618 347, 0, 349, 350, 351, 352, 353, 354, 0, 355,
7619 356, 357, 358, 359, 360, 0, 361, 362, 363, 364,
7620 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
7621 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
7622 383, 0, 385, 386, 387, 388, 389, 390, 391, 392,
7623 393, 394, 395, 396, 397, 398, 399, 0, 0, 400,
7624 401, 402, 403, 404, 405, 406, 407, 408, 409, 0,
7625 411, 412, 413, 414, 0, 415, 416, 417, 418, 419,
7626 420, 421, 422, 423, 424, 425, 426, 508, 428, 429,
7627 430, 0, 431, 432, 0, 433, 0, 435, 436, 437,
7628 438, 439, 0, 440, 441, 0, 0, 442, 443, 444,
7629 445, 446, 0, 447, 448, 449, 450, 451, 452, 453,
7630 454, 0, 0, 455, 456, 457, 0, 458, 459, 460,
7631 461, 0, 462, 463, 464, 465, 466, 467, 468, 0,
7632 469, 0, 471, 472, 473, 474, 475, 0, 0, 476,
7633 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
7634 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
7635 495, 496, 497, 0, 2768, 1397, 629, 0, 0, 1951,
7636 989, 0, 0, 0, 0, 0, 1952, 1953, 0, 2935,
7637 1954, 1955, 1956, 110, 111, 112, 113, 114, 115, 116,
7638 117, 1176, 118, 119, 120, 1177, 1178, 1179, 2769, 1180,
7639 1181, 1182, 1183, 2770, 122, 123, 1184, 124, 125, 126,
7640 2771, 128, 129, 130, 0, 749, 2772, 751, 752, 1185,
7641 136, 137, 138, 139, 140, 141, 1186, 1187, 142, 143,
7642 753, 754, 146, 1188, 147, 148, 149, 150, 0, 1189,
7643 2773, 1190, 2774, 154, 155, 156, 157, 158, 2775, 160,
7644 161, 162, 1191, 163, 164, 165, 166, 167, 168, 1192,
7645 2776, 170, 171, 172, 173, 174, 175, 176, 177, 178,
7646 179, 759, 760, 182, 1193, 183, 1194, 184, 185, 186,
7647 187, 188, 189, 1195, 190, 191, 192, 193, 194, 1196,
7648 1197, 195, 196, 761, 198, 199, 1198, 200, 201, 202,
7649 1199, 203, 204, 205, 1200, 206, 207, 208, 209, 0,
7650 211, 212, 213, 214, 215, 0, 1201, 217, 1202, 218,
7651 219, 762, 221, 1203, 222, 1204, 223, 2777, 1205, 2778,
7652 226, 227, 2779, 2780, 230, 1206, 231, 1207, 0, 0,
7653 234, 1208, 235, 236, 237, 238, 239, 240, 241, 2781,
7654 243, 244, 245, 246, 1209, 247, 248, 249, 250, 251,
7655 252, 253, 1210, 254, 2782, 0, 257, 258, 259, 260,
7656 261, 769, 770, 1211, 771, 1212, 265, 2783, 2784, 268,
7657 2785, 270, 271, 272, 273, 274, 275, 1213, 1214, 276,
7658 2786, 278, 2787, 1215, 280, 281, 282, 283, 284, 285,
7659 286, 287, 2788, 289, 290, 291, 292, 293, 294, 295,
7660 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
7661 306, 778, 2789, 780, 310, 311, 312, 2790, 1216, 314,
7662 315, 2791, 317, 1217, 0, 319, 782, 321, 322, 323,
7663 1218, 324, 325, 1219, 1220, 2792, 327, 328, 1221, 1222,
7664 329, 0, 2793, 332, 2794, 0, 335, 336, 337, 338,
7665 339, 340, 341, 342, 343, 344, 1223, 1224, 1225, 1226,
7666 345, 346, 0, 2795, 349, 350, 0, 352, 353, 354,
7667 1227, 355, 356, 357, 358, 359, 360, 1228, 361, 362,
7668 363, 786, 365, 366, 367, 368, 1229, 369, 370, 371,
7669 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
7670 1230, 382, 383, 2796, 385, 386, 387, 788, 389, 390,
7671 391, 392, 393, 394, 395, 396, 397, 398, 399, 1231,
7672 2797, 400, 401, 402, 403, 404, 405, 2798, 407, 408,
7673 409, 2799, 411, 412, 792, 414, 1232, 415, 416, 417,
7674 418, 419, 420, 421, 422, 423, 424, 425, 426, 2800,
7675 428, 0, 430, 1233, 431, 432, 1234, 433, 2801, 435,
7676 436, 437, 438, 439, 1235, 795, 796, 1236, 1237, 442,
7677 443, 0, 445, 0, 1238, 447, 448, 2802, 450, 451,
7678 452, 453, 454, 2803, 1240, 455, 456, 457, 1241, 458,
7679 459, 460, 461, 1242, 462, 463, 464, 465, 466, 0,
7680 799, 1244, 469, 2804, 471, 472, 473, 474, 475, 1245,
7681 1246, 476, 1247, 1248, 477, 478, 479, 480, 481, 482,
7682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7683 0, 494, 495, 496, 497, 0, 505, 0, 1957, 1958,
7684 1959, 1951, 2805, 2806, 1962, 1963, 1964, 1965, 1952, 1953,
7685 0, 0, 1954, 1955, 1956, 110, 111, 112, 113, 114,
7686 115, 116, 117, 0, 118, 119, 120, 0, 0, 0,
7687 0, 0, 0, 0, 0, 0, 122, 123, 0, 124,
7688 125, 126, 0, 128, 129, 130, 131, 132, 0, 134,
7689 135, 0, 136, 137, 138, 139, 140, 141, 0, 0,
7690 142, 143, 144, 145, 146, 0, 147, 148, 149, 150,
7691 151, 0, 0, 0, 153, 154, 155, 156, 157, 158,
7692 0, 160, 161, 162, 0, 163, 164, 165, 166, 167,
7693 168, 0, 0, 170, 171, 172, 173, 174, 175, 176,
7694 177, 178, 179, 180, 181, 182, 0, 183, 0, 184,
7695 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
7696 194, 0, 0, 195, 196, 197, 198, 199, 0, 200,
7697 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
7698 209, 210, 211, 212, 213, 214, 215, 216, 0, 217,
7699 0, 218, 219, 220, 221, 0, 222, 0, 223, 0,
7700 0, 0, 226, 227, 506, 0, 230, 0, 231, 0,
7701 232, 233, 234, 0, 235, 236, 237, 238, 239, 240,
7702 241, 0, 243, 244, 245, 246, 0, 247, 248, 249,
7703 250, 251, 252, 253, 0, 254, 0, 256, 257, 258,
7704 259, 260, 261, 262, 263, 0, 264, 0, 265, 0,
7705 0, 268, 0, 270, 271, 272, 273, 274, 275, 0,
7706 0, 276, 0, 278, 0, 0, 280, 281, 282, 283,
7707 284, 285, 286, 287, 507, 289, 290, 291, 292, 293,
7708 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
7709 304, 305, 306, 307, 0, 309, 310, 311, 312, 313,
7710 0, 314, 315, 0, 317, 0, 318, 319, 320, 321,
7711 322, 323, 0, 324, 325, 0, 0, 326, 327, 328,
7712 0, 0, 329, 330, 0, 332, 0, 334, 335, 336,
7713 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
7714 0, 0, 345, 346, 347, 0, 349, 350, 351, 352,
7715 353, 354, 0, 355, 356, 357, 358, 359, 360, 0,
7716 361, 362, 363, 364, 365, 366, 367, 368, 0, 369,
7717 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
7718 380, 381, 0, 382, 383, 0, 385, 386, 387, 388,
7719 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
7720 399, 0, 0, 400, 401, 402, 403, 404, 405, 406,
7721 407, 408, 409, 0, 411, 412, 413, 414, 0, 415,
7722 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
7723 426, 508, 428, 429, 430, 0, 431, 432, 0, 433,
7724 0, 435, 436, 437, 438, 439, 0, 440, 441, 0,
7725 0, 442, 443, 444, 445, 446, 0, 447, 448, 449,
7726 450, 451, 452, 453, 454, 0, 0, 455, 456, 457,
7727 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
7728 466, 467, 468, 0, 469, 0, 471, 472, 473, 474,
7729 475, 0, 0, 476, 0, 0, 477, 478, 479, 480,
7730 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
7731 491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
7732 1957, 1958, 1959, 0, 1960, 1961, 1962, 1963, 1964, 1965,
7733 1545, 0, 0, 1546, 0, 0, 0, 1547, 1548, 1549,
7734 1550, 1551, 1552, 1553, 0, 0, 0, 0, 0, 0,
7735 0, 0, 1545, 0, 0, 1546, 0, 0, 1554, 1547,
7736 1548, 1549, 1550, 1551, 1552, 1553, 0, 0, 1556, 0,
7737 0, 0, 0, 0, 0, 1557, 0, 0, 0, 0,
7738 1554, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7739 1556, 0, 0, 0, 0, 0, 0, 1557, 0, 1545,
7740 1558, 0, 1546, 0, 0, 0, 1547, 1548, 1549, 1550,
7741 1551, 1552, 1553, 0, 0, 0, 0, 0, 0, 0,
7742 0, 0, 1558, 0, 0, 0, 0, 1554, 0, 0,
7743 0, 0, 0, 0, 0, 0, 0, 1556, 0, 0,
7744 0, 0, 0, 0, 1557, 0, 0, 0, 0, 0,
7745 0, 0, 0, 0, 1545, 0, 0, 1546, 0, 0,
7746 0, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 0, 1558,
7747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7748 0, 0, 1554, 0, 0, 0, 0, 0, 0, 0,
7749 0, 0, 1556, 0, 1559, 0, 0, 0, 0, 1557,
7750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7751 1560, 0, 0, 0, 0, 1561, 1559, 0, 0, 0,
7752 0, 0, 0, 0, 1558, 0, 0, 0, 0, 0,
7753 0, 0, 1560, 0, 0, 0, 0, 1561, 1562, 1563,
7754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7755 0, 0, 0, 1564, 0, 0, 0, 0, 0, 0,
7756 1562, 1563, 0, 1559, 0, 0, 0, 0, 0, 0,
7757 0, 0, 0, 0, 0, 1564, 0, 0, 0, 1560,
7758 0, 0, 0, 0, 1561, 0, 0, 0, 0, 1565,
7759 0, 0, 1566, 0, 0, 0, 0, 0, 0, 0,
7760 0, 0, 0, 0, 0, 0, 1567, 1562, 1563, 1568,
7761 0, 1565, 0, 0, 1566, 0, 0, 0, 1559, 0,
7762 0, 0, 1564, 0, 0, 0, 0, 0, 1567, 0,
7763 0, 1568, 0, 0, 1560, 0, 0, 0, 0, 1561,
7764 0, 0, 0, 0, 1545, 0, 0, 1546, 0, 0,
7765 0, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1565, 0,
7766 0, 1566, 1562, 1563, 0, 0, 0, 0, 0, 0,
7767 0, 0, 1554, 0, 0, 1567, 0, 1564, 1568, 0,
7768 0, 0, 1556, 0, 0, 0, 0, 0, 0, 1557,
7769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7770 0, 0, 1569, 0, 0, 0, 0, 0, 0, 0,
7771 0, 0, 0, 1565, 1558, 0, 1566, 0, 0, 0,
7772 0, 0, 0, 0, 1569, 0, 0, 0, 0, 0,
7773 1567, 0, 0, 1568, 0, 0, 0, 0, 0, 0,
7774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7777 0, 1569, 0, 0, 0, 0, 0, 0, 0, 0,
7778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7780 0, 0, 0, 0, 0, 0, 1570, 0, 1559, 1571,
7781 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579, 0,
7782 0, 0, 0, 2390, 1560, 0, 1569, 0, 1570, 1561,
7783 0, 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578,
7784 1579, 0, 0, 0, 0, 2595, 0, 0, 0, 0,
7785 0, 0, 1562, 1563, 0, 0, 0, 0, 0, 0,
7786 0, 0, 0, 0, 0, 0, 0, 1564, 0, 0,
7787 0, 0, 0, 0, 0, 1570, 0, 0, 1571, 1572,
7788 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579, 0, 0,
7789 0, 0, 2647, 0, 0, 0, 0, 0, 0, 0,
7790 0, 0, 0, 1565, 0, 0, 1566, 0, 0, 0,
7791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7792 1567, 0, 0, 1568, 0, 0, 0, 0, 0, 0,
7793 1570, 0, 0, 1571, 1572, 1573, 0, 1574, 1575, 1576,
7794 1577, 1578, 1579, 0, 0, 0, 0, 2714, 0, 0,
7795 0, 0, 0, 1545, 0, 0, 1546, 0, 0, 0,
7796 1547, 1548, 1549, 1550, 1551, 1552, 1553, 0, 0, 0,
7797 0, 0, 0, 0, 0, 1545, 0, 0, 1546, 0,
7798 0, 1554, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 0,
7799 0, 1556, 0, 0, 0, 0, 0, 0, 1557, 0,
7800 0, 0, 0, 1554, 0, 0, 0, 0, 0, 0,
7801 0, 0, 0, 1556, 0, 0, 1569, 0, 0, 0,
7802 1557, 0, 1545, 1558, 0, 1546, 0, 0, 0, 1547,
7803 1548, 1549, 1550, 1551, 1552, 1553, 0, 0, 0, 0,
7804 0, 0, 0, 0, 0, 1558, 0, 0, 0, 0,
7805 1554, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7806 1556, 0, 0, 0, 0, 0, 0, 1557, 0, 0,
7807 0, 0, 0, 0, 0, 0, 0, 1545, 0, 0,
7808 1546, 0, 0, 0, 1547, 1548, 1549, 1550, 1551, 1552,
7809 1553, 0, 1558, 0, 0, 0, 0, 0, 0, 0,
7810 0, 0, 0, 0, 0, 1554, 0, 0, 0, 0,
7811 0, 0, 0, 0, 0, 1556, 0, 1559, 0, 0,
7812 1570, 0, 1557, 1571, 1572, 1573, 0, 1574, 1575, 1576,
7813 1577, 1578, 1579, 1560, 0, 0, 0, 2928, 1561, 1559,
7814 0, 0, 0, 0, 0, 0, 0, 1558, 0, 0,
7815 0, 0, 0, 0, 0, 1560, 0, 0, 0, 0,
7816 1561, 1562, 1563, 0, 0, 0, 0, 0, 0, 0,
7817 0, 0, 0, 0, 0, 0, 1564, 0, 0, 0,
7818 0, 0, 0, 1562, 1563, 0, 1559, 0, 0, 0,
7819 0, 0, 0, 0, 0, 0, 0, 0, 1564, 0,
7820 0, 0, 1560, 0, 0, 0, 0, 1561, 0, 0,
7821 0, 0, 1565, 0, 0, 1566, 0, 0, 0, 0,
7822 0, 0, 0, 0, 0, 0, 0, 0, 0, 1567,
7823 1562, 1563, 1568, 0, 1565, 0, 0, 1566, 0, 0,
7824 0, 1559, 0, 0, 0, 1564, 0, 0, 0, 0,
7825 0, 1567, 0, 0, 1568, 0, 0, 1560, 0, 0,
7826 0, 0, 1561, 0, 0, 0, 0, 1545, 0, 0,
7827 1546, 0, 0, 0, 1547, 1548, 1549, 1550, 1551, 1552,
7828 1553, 1565, 0, 0, 1566, 1562, 1563, 0, 0, 0,
7829 0, 0, 0, 0, 0, 1554, 0, 0, 1567, 0,
7830 1564, 1568, 0, 0, 0, 1556, 0, 0, 0, 0,
7831 0, 0, 1557, 0, 0, 0, 0, 0, 0, 0,
7832 0, 0, 0, 0, 0, 1569, 0, 0, 0, 0,
7833 0, 0, 0, 0, 0, 0, 1565, 1558, 0, 1566,
7834 0, 0, 0, 0, 0, 0, 0, 1569, 0, 0,
7835 0, 0, 0, 1567, 0, 0, 1568, 0, 0, 0,
7836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7839 0, 0, 0, 0, 1569, 0, 0, 0, 0, 0,
7840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7842 0, 0, 0, 0, 0, 0, 0, 0, 0, 1570,
7843 0, 1559, 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577,
7844 1578, 1579, 0, 0, 0, 0, 2934, 1560, 0, 1569,
7845 0, 1570, 1561, 0, 1571, 1572, 1573, 0, 1574, 1575,
7846 1576, 1577, 1578, 1579, 0, 0, 0, 0, 3082, 0,
7847 0, 0, 0, 0, 0, 1562, 1563, 0, 0, 0,
7848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7849 1564, 0, 0, 0, 0, 0, 0, 0, 1570, 0,
7850 0, 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578,
7851 1579, 0, 0, 0, 0, 3104, 0, 0, 0, 0,
7852 0, 0, 0, 0, 0, 0, 1565, 0, 0, 1566,
7853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7854 0, 0, 0, 1567, 0, 0, 1568, 0, 0, 0,
7855 0, 0, 0, 1570, 0, 0, 1571, 1572, 1573, 0,
7856 1574, 1575, 1576, 1577, 1578, 1579, 0, 0, 0, 0,
7857 3202, 0, 0, 0, 0, 0, 1545, 0, 0, 1546,
7858 0, 0, 0, 1547, 1548, 1549, 1550, 1551, 1552, 1553,
7859 0, 0, 0, 0, 0, 0, 0, 0, 1545, 0,
7860 0, 1546, 0, 0, 1554, 1547, 1548, 1549, 1550, 1551,
7861 1552, 1553, 0, 0, 1556, 0, 0, 0, 0, 0,
7862 0, 1557, 0, 0, 0, 0, 1554, 0, 0, 0,
7863 0, 0, 0, 0, 0, 0, 1556, 0, 0, 1569,
7864 0, 0, 0, 1557, 0, 1545, 1558, 0, 1546, 0,
7865 0, 0, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 0,
7866 0, 0, 0, 0, 0, 0, 0, 0, 1558, 0,
7867 0, 0, 0, 1554, 0, 0, 0, 0, 0, 0,
7868 0, 0, 0, 1556, 0, 0, 0, 0, 0, 0,
7869 1557, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7870 1545, 0, 0, 1546, 0, 0, 0, 1547, 1548, 1549,
7871 1550, 1551, 1552, 1553, 0, 1558, 0, 0, 0, 0,
7872 0, 0, 0, 0, 0, 0, 0, 0, 1554, 0,
7873 0, 0, 0, 0, 0, 0, 0, 0, 1556, 0,
7874 1559, 0, 0, 1570, 0, 1557, 1571, 1572, 1573, 0,
7875 1574, 1575, 1576, 1577, 1578, 1579, 1560, 0, 0, 0,
7876 3257, 1561, 1559, 0, 0, 0, 0, 0, 0, 0,
7877 1558, 0, 0, 0, 0, 0, 0, 0, 1560, 0,
7878 0, 0, 0, 1561, 1562, 1563, 0, 0, 0, 1545,
7879 0, 0, 1546, 0, 0, 0, 1547, 1548, 0, 1564,
7880 1551, 1552, 1553, 0, 0, 0, 1562, 1563, 0, 1559,
7881 0, 0, 0, 0, 0, 0, 0, 1554, 0, 0,
7882 0, 1564, 0, 0, 0, 1560, 0, 1556, 0, 0,
7883 1561, 0, 0, 0, 1557, 1565, 0, 0, 1566, 0,
7884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7885 0, 0, 1567, 1562, 1563, 1568, 0, 1565, 0, 1558,
7886 1566, 0, 0, 0, 1559, 0, 0, 0, 1564, 0,
7887 0, 0, 0, 0, 1567, 0, 0, 1568, 0, 0,
7888 1560, 0, 0, 0, 0, 1561, 0, 0, 0, 0,
7889 1545, 0, 0, 1546, 0, 0, 0, 1547, 1548, 1549,
7890 1550, 1551, 1552, 1553, 1565, 0, 0, 1566, 1562, 1563,
7891 0, 0, 0, 0, 0, 0, 0, 0, 1554, 0,
7892 0, 1567, 0, 1564, 1568, 0, 0, 0, 1556, 0,
7893 0, 0, 0, 0, 0, 1557, 0, 0, 0, 0,
7894 0, 0, 0, 0, 0, 0, 0, 0, 1569, 0,
7895 0, 0, 0, 1559, 0, 0, 0, 0, 0, 1565,
7896 1558, 0, 1566, 0, 0, 0, 0, 0, 0, 1560,
7897 1569, 0, 0, 0, 1561, 0, 1567, 0, 0, 1568,
7898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7899 0, 0, 0, 0, 0, 0, 0, 1562, 1563, 0,
7900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7901 0, 0, 1564, 0, 0, 0, 0, 1569, 0, 0,
7902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7904 0, 0, 0, 0, 0, 0, 0, 0, 1565, 0,
7905 0, 1566, 1570, 0, 1559, 1571, 1572, 1573, 0, 1574,
7906 1575, 1576, 1577, 1578, 1579, 1567, 0, 0, 0, 3279,
7907 1560, 0, 1569, 0, 1570, 1561, 0, 1571, 1572, 1573,
7908 0, 1574, 1575, 1576, 1577, 1578, 1579, 0, 0, 1730,
7909 0, 0, 0, 0, 0, 0, 0, 0, 1562, 1563,
7910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7911 0, 0, 0, 1564, 0, 0, 0, 0, 0, 0,
7912 0, 1570, 0, 0, 1571, 1572, 1573, 0, 1574, 1575,
7913 1576, 1577, 1578, 1579, 0, 0, 2668, 0, 0, 0,
7914 0, 0, 0, 0, 0, 0, 0, 0, 0, 1565,
7915 0, 0, 1566, 0, 0, 0, 0, 0, 0, 0,
7916 0, 1569, 0, 0, 0, 0, 1567, 0, 0, 1568,
7917 0, 0, 0, 0, 0, 0, 1570, 0, 0, 1571,
7918 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579, 0,
7919 0, 3074, 0, 0, 0, 0, 0, 0, 0, 0,
7920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7926 0, 0, 1569, 0, 0, 1570, 0, 0, 1571, 1572,
7927 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579, 0, 0,
7928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7936 0, 0, 0, 1175, 0, 0, 1570, 0, 0, 1571,
7937 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579, 0,
7938 0, 3243, 110, 111, 112, 113, 114, 115, 116, 117,
7939 1176, 118, 119, 120, 1177, 1178, 1179, 832, 1180, 1181,
7940 1182, 1183, 833, 122, 123, 1184, 124, 125, 126, 834,
7941 128, 129, 130, 835, 836, 837, 838, 839, 1185, 136,
7942 137, 138, 139, 140, 141, 1186, 1187, 142, 143, 840,
7943 841, 146, 1188, 147, 148, 149, 150, 842, 1189, 843,
7944 1190, 844, 154, 155, 156, 157, 158, 845, 160, 161,
7945 162, 1191, 163, 164, 165, 166, 167, 168, 1192, 846,
7946 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
7947 847, 848, 182, 1193, 183, 1194, 184, 185, 186, 187,
7948 188, 189, 1195, 190, 191, 192, 193, 194, 1196, 1197,
7949 195, 196, 197, 198, 199, 1198, 200, 201, 202, 1199,
7950 203, 204, 205, 1200, 206, 207, 208, 209, 849, 211,
7951 212, 213, 214, 215, 850, 1201, 217, 1202, 218, 219,
7952 851, 221, 1203, 222, 1204, 223, 852, 1205, 853, 226,
7953 227, 854, 855, 230, 1206, 231, 1207, 856, 857, 234,
7954 1208, 235, 236, 237, 238, 239, 240, 241, 858, 243,
7955 244, 245, 246, 1209, 247, 248, 249, 250, 251, 252,
7956 253, 1210, 254, 859, 860, 257, 258, 259, 260, 261,
7957 861, 862, 1211, 863, 1212, 265, 864, 865, 268, 866,
7958 270, 271, 272, 273, 274, 275, 1213, 1214, 276, 867,
7959 278, 868, 1215, 280, 281, 282, 283, 284, 285, 286,
7960 287, 869, 289, 290, 291, 292, 293, 294, 295, 296,
7961 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
7962 870, 871, 872, 310, 311, 312, 873, 1216, 314, 315,
7963 874, 317, 1217, 875, 319, 876, 321, 322, 323, 1218,
7964 324, 325, 1219, 1220, 326, 327, 328, 1221, 1222, 329,
7965 877, 878, 332, 879, 880, 335, 336, 337, 338, 339,
7966 340, 341, 342, 343, 344, 1223, 1224, 1225, 1226, 345,
7967 346, 881, 882, 349, 350, 883, 352, 353, 354, 1227,
7968 355, 356, 357, 358, 359, 360, 1228, 361, 362, 363,
7969 884, 365, 366, 367, 368, 1229, 369, 370, 371, 372,
7970 373, 374, 375, 376, 377, 378, 379, 380, 381, 1230,
7971 382, 383, 885, 385, 386, 387, 886, 389, 390, 391,
7972 392, 393, 394, 395, 396, 397, 398, 399, 1231, 887,
7973 400, 401, 402, 403, 404, 405, 888, 407, 408, 409,
7974 889, 411, 412, 890, 414, 1232, 415, 416, 417, 418,
7975 419, 420, 421, 422, 423, 424, 425, 426, 891, 428,
7976 892, 430, 1233, 431, 432, 1234, 433, 893, 435, 436,
7977 437, 438, 439, 1235, 894, 895, 1236, 1237, 442, 443,
7978 896, 445, 897, 1238, 447, 448, 898, 450, 451, 452,
7979 453, 454, 1239, 1240, 455, 456, 457, 1241, 458, 459,
7980 460, 461, 1242, 462, 463, 464, 465, 466, 1243, 900,
7981 1244, 469, 901, 471, 472, 473, 474, 475, 1245, 1246,
7982 476, 1247, 1248, 477, 478, 479, 480, 481, 482, 902,
7983 903, 904, 905, 906, 907, 908, 909, 910, 911, 912,
7984 494, 495, 496, 497, 505, 0, 0, 0, 0, 0,
7985 0, 0, 0, 1982, 0, 0, 0, 0, 0, 0,
7986 0, 0, 0, 110, 111, 112, 113, 114, 115, 116,
7987 117, 0, 118, 119, 120, 0, 0, 0, 0, 0,
7988 0, 0, 0, 0, 122, 123, 0, 124, 125, 126,
7989 0, 128, 129, 130, 131, 132, 0, 134, 135, 0,
7990 136, 137, 138, 139, 140, 141, 0, 0, 142, 143,
7991 144, 145, 146, 0, 147, 148, 149, 150, 151, 0,
7992 0, 0, 153, 154, 155, 156, 157, 158, 0, 160,
7993 161, 162, 0, 163, 164, 165, 166, 167, 168, 0,
7994 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
7995 179, 180, 181, 182, 0, 183, 0, 184, 185, 186,
7996 187, 188, 189, 0, 190, 191, 192, 193, 194, 0,
7997 0, 195, 196, 197, 198, 199, 0, 200, 201, 202,
7998 0, 203, 204, 205, 0, 206, 207, 208, 209, 210,
7999 211, 212, 213, 214, 215, 216, 0, 217, 0, 218,
8000 219, 220, 221, 0, 222, 0, 223, 0, 0, 0,
8001 226, 227, 506, 0, 230, 0, 231, 0, 232, 233,
8002 234, 0, 235, 236, 237, 238, 239, 240, 241, 0,
8003 243, 244, 245, 246, 0, 247, 248, 249, 250, 251,
8004 252, 253, 0, 254, 0, 256, 257, 258, 259, 260,
8005 261, 262, 263, 0, 264, 0, 265, 0, 0, 268,
8006 0, 270, 271, 272, 273, 274, 275, 0, 0, 276,
8007 0, 278, 0, 0, 280, 281, 282, 283, 284, 285,
8008 286, 287, 507, 289, 290, 291, 292, 293, 294, 295,
8009 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
8010 306, 307, 0, 309, 310, 311, 312, 313, 0, 314,
8011 315, 0, 317, 0, 318, 319, 320, 321, 322, 323,
8012 0, 324, 325, 0, 0, 326, 327, 328, 0, 0,
8013 329, 330, 0, 332, 0, 334, 335, 336, 337, 338,
8014 339, 340, 341, 342, 343, 344, 0, 0, 0, 0,
8015 345, 346, 347, 0, 349, 350, 351, 352, 353, 354,
8016 0, 355, 356, 357, 358, 359, 360, 0, 361, 362,
8017 363, 364, 365, 366, 367, 368, 0, 369, 370, 371,
8018 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
8019 0, 382, 383, 0, 385, 386, 387, 388, 389, 390,
8020 391, 392, 393, 394, 395, 396, 397, 398, 399, 0,
8021 0, 400, 401, 402, 403, 404, 405, 406, 407, 408,
8022 409, 0, 411, 412, 413, 414, 0, 415, 416, 417,
8023 418, 419, 420, 421, 422, 423, 424, 425, 426, 508,
8024 428, 429, 430, 0, 431, 432, 0, 433, 0, 435,
8025 436, 437, 438, 439, 0, 440, 441, 0, 0, 442,
8026 443, 444, 445, 446, 0, 447, 448, 449, 450, 451,
8027 452, 453, 454, 0, 0, 455, 456, 457, 0, 458,
8028 459, 460, 461, 0, 462, 463, 464, 465, 466, 467,
8029 468, 0, 469, 0, 471, 472, 473, 474, 475, 0,
8030 0, 476, 0, 0, 477, 478, 479, 480, 481, 482,
8031 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
8032 493, 494, 495, 496, 497, 505, 0, 0, 0, 0,
8033 0, 0, 0, 0, 2588, 0, 0, 0, 0, 0,
8034 0, 0, 0, 0, 110, 111, 112, 113, 114, 115,
8035 116, 117, 0, 118, 119, 120, 0, 0, 0, 0,
8036 0, 0, 0, 0, 0, 122, 123, 0, 124, 125,
8037 126, 0, 128, 129, 130, 131, 132, 0, 134, 135,
8038 0, 136, 137, 138, 139, 140, 141, 0, 0, 142,
8039 143, 144, 145, 146, 0, 147, 148, 149, 150, 151,
8040 0, 0, 0, 153, 154, 155, 156, 157, 158, 0,
8041 160, 161, 162, 0, 163, 164, 165, 166, 167, 168,
8042 0, 0, 170, 171, 172, 173, 174, 175, 176, 177,
8043 178, 179, 180, 181, 182, 0, 183, 0, 184, 185,
8044 186, 187, 188, 189, 0, 190, 191, 192, 193, 194,
8045 0, 0, 195, 196, 197, 198, 199, 0, 200, 201,
8046 202, 0, 203, 204, 205, 0, 206, 207, 208, 209,
8047 210, 211, 212, 213, 214, 215, 216, 0, 217, 0,
8048 218, 219, 220, 221, 0, 222, 0, 223, 0, 0,
8049 0, 226, 227, 506, 0, 230, 0, 231, 0, 232,
8050 233, 234, 0, 235, 236, 237, 238, 239, 240, 241,
8051 0, 243, 244, 245, 246, 0, 247, 248, 249, 250,
8052 251, 252, 253, 0, 254, 0, 256, 257, 258, 259,
8053 260, 261, 262, 263, 0, 264, 0, 265, 0, 0,
8054 268, 0, 270, 271, 272, 273, 274, 275, 0, 0,
8055 276, 0, 278, 0, 0, 280, 281, 282, 283, 284,
8056 285, 286, 287, 507, 289, 290, 291, 292, 293, 294,
8057 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
8058 305, 306, 307, 0, 309, 310, 311, 312, 313, 0,
8059 314, 315, 0, 317, 0, 318, 319, 320, 321, 322,
8060 323, 0, 324, 325, 0, 0, 326, 327, 328, 0,
8061 0, 329, 330, 0, 332, 0, 334, 335, 336, 337,
8062 338, 339, 340, 341, 342, 343, 344, 0, 0, 0,
8063 0, 345, 346, 347, 0, 349, 350, 351, 352, 353,
8064 354, 0, 355, 356, 357, 358, 359, 360, 0, 361,
8065 362, 363, 364, 365, 366, 367, 368, 0, 369, 370,
8066 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
8067 381, 0, 382, 383, 0, 385, 386, 387, 388, 389,
8068 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
8069 0, 0, 400, 401, 402, 403, 404, 405, 406, 407,
8070 408, 409, 0, 411, 412, 413, 414, 0, 415, 416,
8071 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
8072 508, 428, 429, 430, 0, 431, 432, 0, 433, 0,
8073 435, 436, 437, 438, 439, 0, 440, 441, 0, 0,
8074 442, 443, 444, 445, 446, 0, 447, 448, 449, 450,
8075 451, 452, 453, 454, 0, 0, 455, 456, 457, 0,
8076 458, 459, 460, 461, 0, 462, 463, 464, 465, 466,
8077 467, 468, 0, 469, 0, 471, 472, 473, 474, 475,
8078 0, 0, 476, 0, 0, 477, 478, 479, 480, 481,
8079 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
8080 492, 493, 494, 495, 496, 497, 831, 1397, 629, 0,
8081 0, 0, 989, 0, 0, 2591, 0, 0, 0, 0,
8082 0, 0, 0, 0, 0, 110, 111, 112, 113, 114,
8083 115, 116, 117, 0, 118, 119, 120, 0, 0, 0,
8084 832, 0, 0, 0, 0, 833, 122, 123, 0, 124,
8085 125, 126, 834, 128, 129, 130, 835, 836, 837, 838,
8086 839, 0, 136, 137, 138, 139, 140, 141, 0, 0,
8087 142, 143, 840, 841, 146, 0, 147, 148, 149, 150,
8088 842, 0, 843, 0, 844, 154, 155, 156, 157, 158,
8089 845, 160, 161, 162, 0, 163, 164, 165, 166, 167,
8090 168, 0, 846, 170, 171, 172, 173, 174, 175, 176,
8091 177, 178, 179, 847, 848, 182, 1602, 183, 0, 184,
8092 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
8093 194, 0, 0, 195, 196, 197, 198, 199, 0, 200,
8094 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
8095 209, 849, 211, 212, 213, 214, 215, 850, 1398, 217,
8096 0, 218, 219, 851, 221, 0, 222, 0, 223, 852,
8097 0, 853, 226, 227, 854, 855, 230, 0, 231, 0,
8098 856, 857, 234, 0, 235, 236, 237, 238, 239, 240,
8099 241, 858, 243, 244, 245, 246, 0, 247, 248, 249,
8100 250, 251, 252, 253, 0, 254, 859, 860, 257, 258,
8101 259, 260, 261, 861, 862, 0, 863, 0, 265, 864,
8102 865, 268, 866, 270, 271, 272, 273, 274, 275, 0,
8103 0, 276, 867, 278, 868, 0, 280, 281, 282, 283,
8104 284, 285, 286, 287, 869, 289, 290, 291, 292, 293,
8105 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
8106 304, 305, 306, 870, 871, 872, 310, 311, 312, 873,
8107 0, 314, 315, 874, 317, 0, 875, 319, 876, 321,
8108 322, 323, 0, 324, 325, 1399, 0, 326, 327, 328,
8109 0, 0, 329, 877, 878, 332, 879, 880, 335, 336,
8110 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
8111 0, 0, 345, 346, 881, 882, 349, 350, 883, 352,
8112 353, 354, 0, 355, 356, 357, 358, 359, 360, 0,
8113 361, 362, 363, 884, 365, 366, 367, 368, 0, 369,
8114 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
8115 380, 381, 0, 382, 383, 885, 385, 386, 387, 886,
8116 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
8117 399, 0, 887, 400, 401, 402, 403, 404, 405, 888,
8118 407, 408, 409, 889, 411, 412, 890, 414, 0, 415,
8119 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
8120 426, 891, 428, 892, 430, 0, 431, 432, 0, 433,
8121 893, 435, 436, 437, 438, 439, 0, 894, 895, 0,
8122 0, 442, 443, 896, 445, 897, 1400, 447, 448, 898,
8123 450, 451, 452, 453, 454, 0, 0, 455, 456, 457,
8124 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
8125 466, 1243, 900, 0, 469, 901, 471, 472, 473, 474,
8126 475, 0, 0, 476, 0, 0, 477, 478, 479, 480,
8127 481, 482, 902, 903, 904, 905, 906, 907, 908, 909,
8128 910, 911, 912, 494, 495, 496, 497, 831, 1397, 629,
8129 0, 0, 0, 989, 1401, 1402, 0, 0, 0, 0,
8130 0, 0, 0, 0, 0, 0, 110, 111, 112, 113,
8131 114, 115, 116, 117, 0, 118, 119, 120, 0, 0,
8132 0, 832, 0, 0, 0, 0, 833, 122, 123, 0,
8133 124, 125, 126, 834, 128, 129, 130, 835, 836, 837,
8134 838, 839, 0, 136, 137, 138, 139, 140, 141, 0,
8135 0, 142, 143, 840, 841, 146, 0, 147, 148, 149,
8136 150, 842, 0, 843, 0, 844, 154, 155, 156, 157,
8137 158, 845, 160, 161, 162, 0, 163, 164, 165, 166,
8138 167, 168, 0, 846, 170, 171, 172, 173, 174, 175,
8139 176, 177, 178, 179, 847, 848, 182, 1604, 183, 0,
8140 184, 185, 186, 187, 188, 189, 0, 190, 191, 192,
8141 193, 194, 0, 0, 195, 196, 197, 198, 199, 0,
8142 200, 201, 202, 0, 203, 204, 205, 0, 206, 207,
8143 208, 209, 849, 211, 212, 213, 214, 215, 850, 1398,
8144 217, 0, 218, 219, 851, 221, 0, 222, 0, 223,
8145 852, 0, 853, 226, 227, 854, 855, 230, 0, 231,
8146 0, 856, 857, 234, 0, 235, 236, 237, 238, 239,
8147 240, 241, 858, 243, 244, 245, 246, 0, 247, 248,
8148 249, 250, 251, 252, 253, 0, 254, 859, 860, 257,
8149 258, 259, 260, 261, 861, 862, 0, 863, 0, 265,
8150 864, 865, 268, 866, 270, 271, 272, 273, 274, 275,
8151 0, 0, 276, 867, 278, 868, 0, 280, 281, 282,
8152 283, 284, 285, 286, 287, 869, 289, 290, 291, 292,
8153 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
8154 303, 304, 305, 306, 870, 871, 872, 310, 311, 312,
8155 873, 0, 314, 315, 874, 317, 0, 875, 319, 876,
8156 321, 322, 323, 0, 324, 325, 1399, 0, 326, 327,
8157 328, 0, 0, 329, 877, 878, 332, 879, 880, 335,
8158 336, 337, 338, 339, 340, 341, 342, 343, 344, 0,
8159 0, 0, 0, 345, 346, 881, 882, 349, 350, 883,
8160 352, 353, 354, 0, 355, 356, 357, 358, 359, 360,
8161 0, 361, 362, 363, 884, 365, 366, 367, 368, 0,
8162 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
8163 379, 380, 381, 0, 382, 383, 885, 385, 386, 387,
8164 886, 389, 390, 391, 392, 393, 394, 395, 396, 397,
8165 398, 399, 0, 887, 400, 401, 402, 403, 404, 405,
8166 888, 407, 408, 409, 889, 411, 412, 890, 414, 0,
8167 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
8168 425, 426, 891, 428, 892, 430, 0, 431, 432, 0,
8169 433, 893, 435, 436, 437, 438, 439, 0, 894, 895,
8170 0, 0, 442, 443, 896, 445, 897, 1400, 447, 448,
8171 898, 450, 451, 452, 453, 454, 0, 0, 455, 456,
8172 457, 0, 458, 459, 460, 461, 0, 462, 463, 464,
8173 465, 466, 1243, 900, 0, 469, 901, 471, 472, 473,
8174 474, 475, 0, 0, 476, 0, 0, 477, 478, 479,
8175 480, 481, 482, 902, 903, 904, 905, 906, 907, 908,
8176 909, 910, 911, 912, 494, 495, 496, 497, 831, 1397,
8177 629, 0, 0, 0, 989, 1401, 1402, 0, 0, 0,
8178 0, 0, 0, 0, 0, 0, 0, 110, 111, 112,
8179 113, 114, 115, 116, 117, 0, 118, 119, 120, 0,
8180 0, 0, 832, 0, 0, 0, 0, 833, 122, 123,
8181 0, 124, 125, 126, 834, 128, 129, 130, 835, 836,
8182 837, 838, 839, 0, 136, 137, 138, 139, 140, 141,
8183 0, 0, 142, 143, 840, 841, 146, 0, 147, 148,
8184 149, 150, 842, 0, 843, 0, 844, 154, 155, 156,
8185 157, 158, 845, 160, 161, 162, 0, 163, 164, 165,
8186 166, 167, 168, 0, 846, 170, 171, 172, 173, 174,
8187 175, 176, 177, 178, 179, 847, 848, 182, 0, 183,
8188 0, 184, 185, 186, 187, 188, 189, 0, 190, 191,
8189 192, 193, 194, 0, 0, 195, 196, 197, 198, 199,
8190 0, 200, 201, 202, 0, 203, 204, 205, 0, 206,
8191 207, 208, 209, 849, 211, 212, 213, 214, 215, 850,
8192 1398, 217, 0, 218, 219, 851, 221, 0, 222, 0,
8193 223, 852, 0, 853, 226, 227, 854, 855, 230, 0,
8194 231, 0, 856, 857, 234, 0, 235, 236, 237, 238,
8195 239, 240, 241, 858, 243, 244, 245, 246, 0, 247,
8196 248, 249, 250, 251, 252, 253, 0, 254, 859, 860,
8197 257, 258, 259, 260, 261, 861, 862, 0, 863, 0,
8198 265, 864, 865, 268, 866, 270, 271, 272, 273, 274,
8199 275, 0, 0, 276, 867, 278, 868, 0, 280, 281,
8200 282, 283, 284, 285, 286, 287, 869, 289, 290, 291,
8201 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
8202 302, 303, 304, 305, 306, 870, 871, 872, 310, 311,
8203 312, 873, 0, 314, 315, 874, 317, 0, 875, 319,
8204 876, 321, 322, 323, 0, 324, 325, 1399, 0, 326,
8205 327, 328, 0, 0, 329, 877, 878, 332, 879, 880,
8206 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
8207 0, 0, 0, 0, 345, 346, 881, 882, 349, 350,
8208 883, 352, 353, 354, 0, 355, 356, 357, 358, 359,
8209 360, 0, 361, 362, 363, 884, 365, 366, 367, 368,
8210 0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
8211 378, 379, 380, 381, 0, 382, 383, 885, 385, 386,
8212 387, 886, 389, 390, 391, 392, 393, 394, 395, 396,
8213 397, 398, 399, 0, 887, 400, 401, 402, 403, 404,
8214 405, 888, 407, 408, 409, 889, 411, 412, 890, 414,
8215 0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
8216 424, 425, 426, 891, 428, 892, 430, 0, 431, 432,
8217 0, 433, 893, 435, 436, 437, 438, 439, 0, 894,
8218 895, 0, 0, 442, 443, 896, 445, 897, 1400, 447,
8219 448, 898, 450, 451, 452, 453, 454, 0, 0, 455,
8220 456, 457, 0, 458, 459, 460, 461, 0, 462, 463,
8221 464, 465, 466, 1243, 900, 0, 469, 901, 471, 472,
8222 473, 474, 475, 0, 0, 476, 0, 0, 477, 478,
8223 479, 480, 481, 482, 902, 903, 904, 905, 906, 907,
8224 908, 909, 910, 911, 912, 494, 495, 496, 497, 0,
8225 0, 1545, 0, 0, 1546, 0, 1401, 1402, 1547, 1548,
8226 1549, 1550, 1551, 1552, 1553, 0, 0, 0, 0, 0,
8227 0, 0, 0, 0, 0, 0, 0, 0, 0, 1554,
8228 0, 0, 0, 0, 2077, 0, 0, 0, 0, 1556,
8229 0, 1545, 0, 0, 1546, 0, 1557, 0, 1547, 1548,
8230 1549, 1550, 1551, 1552, 1553, 0, 0, 0, 0, 0,
8231 0, 0, 0, 0, 0, 0, 0, 0, 0, 1554,
8232 0, 1558, 0, 0, 0, 0, 0, 0, 0, 1556,
8233 0, 1545, 0, 0, 1546, 0, 1557, 0, 1547, 1548,
8234 1549, 1550, 1551, 1552, 1553, 0, 0, 0, 0, 0,
8235 0, 0, 0, 0, 0, 0, 0, 0, 0, 1554,
8236 0, 1558, 0, 0, 0, 2078, 0, 0, 0, 1556,
8237 0, 1545, 0, 0, 1546, 0, 1557, 0, 1547, 1548,
8238 1549, 1550, 1551, 1552, 1553, 0, 0, 0, 0, 0,
8239 0, 0, 0, 0, 0, 0, 0, 0, 0, 1554,
8240 0, 1558, 0, 1836, 0, 0, 0, 0, 0, 1556,
8241 0, 1545, 0, 0, 1546, 1559, 1557, 0, 1547, 1548,
8242 1549, 1550, 1551, 1552, 1553, 0, 0, 0, 0, 0,
8243 0, 1560, 0, 0, 0, 0, 1561, 0, 0, 1554,
8244 0, 1558, 0, 0, 0, 1872, 0, 0, 0, 1556,
8245 1873, 0, 0, 0, 0, 1559, 1557, 0, 0, 1562,
8246 1563, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8247 0, 1560, 0, 0, 1564, 0, 1561, 0, 0, 0,
8248 0, 1558, 0, 0, 3346, 0, 0, 0, 0, 0,
8249 0, 0, 0, 0, 0, 1559, 0, 0, 0, 1562,
8250 1563, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8251 1565, 1560, 0, 1566, 1564, 0, 1561, 0, 0, 0,
8252 0, 0, 0, 0, 0, 0, 0, 1567, 0, 0,
8253 1568, 0, 0, 0, 0, 1559, 0, 0, 0, 1562,
8254 1563, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8255 1565, 1560, 0, 1566, 1564, 0, 1561, 0, 0, 0,
8256 0, 0, 0, 0, 0, 0, 0, 1567, 0, 0,
8257 1568, 0, 0, 0, 0, 1559, 0, 0, 0, 1562,
8258 1563, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8259 1565, 1560, 0, 1566, 1564, 0, 1561, 0, 0, 0,
8260 0, 0, 0, 0, 0, 0, 0, 1567, 0, 0,
8261 1568, 0, 0, 0, 0, 0, 0, 0, 0, 1562,
8262 1563, 0, 0, 1569, 0, 0, 0, 0, 0, 0,
8263 1565, 0, 0, 1566, 1564, 0, 0, 3347, 0, 0,
8264 0, 0, 0, 0, 0, 0, 0, 1567, 0, 0,
8265 1568, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8266 0, 0, 0, 1569, 0, 0, 0, 0, 0, 0,
8267 1565, 0, 0, 1566, 0, 0, 0, 0, 0, 0,
8268 0, 0, 0, 0, 0, 2081, 0, 1567, 0, 0,
8269 1568, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8270 0, 0, 0, 1569, 0, 0, 0, 0, 0, 0,
8271 0, 1843, 0, 0, 0, 0, 0, 0, 0, 0,
8272 0, 0, 0, 0, 0, 0, 0, 1570, 0, 0,
8273 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579,
8274 0, 0, 0, 1569, 0, 0, 0, 0, 0, 0,
8275 0, 0, 1545, 0, 0, 1546, 0, 0, 0, 1547,
8276 1548, 1549, 1550, 1551, 1552, 1553, 0, 1570, 0, 0,
8277 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579,
8278 1554, 0, 0, 1569, 1878, 0, 0, 0, 0, 0,
8279 1556, 0, 1545, 0, 0, 1546, 0, 1557, 0, 1547,
8280 1548, 1549, 1550, 1551, 1552, 1553, 0, 1570, 0, 0,
8281 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579,
8282 1554, 0, 1558, 0, 0, 0, 0, 0, 0, 0,
8283 1556, 0, 1545, 0, 0, 1546, 0, 1557, 0, 1547,
8284 1548, 1549, 1550, 1551, 1552, 1553, 0, 1570, 0, 0,
8285 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579,
8286 1554, 0, 1558, 0, 1885, 0, 0, 0, 0, 0,
8287 1556, 0, 1545, 0, 0, 1546, 0, 1557, 0, 1547,
8288 1548, 1549, 1550, 1551, 1552, 1553, 0, 1570, 0, 0,
8289 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579,
8290 1554, 0, 1558, 0, 0, 0, 0, 0, 0, 0,
8291 1556, 0, 0, 0, 0, 0, 1559, 1557, 0, 0,
8292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8293 0, 0, 1560, 0, 0, 0, 0, 1561, 0, 0,
8294 0, 0, 1558, 0, 0, 0, 0, 0, 0, 0,
8295 0, 1883, 0, 0, 0, 0, 1559, 0, 0, 0,
8296 1562, 1563, 0, 0, 0, 0, 0, 0, 0, 0,
8297 0, 0, 1560, 0, 0, 1564, 0, 1561, 0, 0,
8298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8299 0, 0, 0, 0, 0, 0, 1559, 0, 0, 0,
8300 1562, 1563, 0, 0, 0, 0, 0, 0, 0, 0,
8301 0, 1565, 1560, 0, 1566, 1564, 0, 1561, 0, 0,
8302 0, 0, 0, 0, 0, 0, 1975, 0, 1567, 0,
8303 0, 1568, 0, 0, 0, 0, 1559, 0, 0, 0,
8304 1562, 1563, 0, 0, 0, 0, 0, 0, 0, 0,
8305 0, 1565, 1560, 0, 1566, 1564, 0, 1561, 0, 0,
8306 0, 0, 0, 0, 0, 0, 0, 0, 1567, 0,
8307 0, 1568, 0, 0, 0, 0, 0, 0, 0, 0,
8308 1562, 1563, 0, 0, 0, 0, 0, 0, 0, 0,
8309 0, 1565, 0, 0, 1566, 1564, 0, 0, 0, 0,
8310 0, 0, 0, 0, 0, 0, 0, 0, 1567, 0,
8311 0, 1568, 0, 0, 0, 0, 0, 0, 0, 0,
8312 0, 0, 0, 0, 1569, 0, 0, 0, 0, 0,
8313 0, 1565, 0, 0, 1566, 0, 0, 0, 0, 0,
8314 0, 0, 0, 0, 0, 0, 0, 0, 1567, 0,
8315 0, 1568, 0, 0, 0, 0, 0, 0, 0, 0,
8316 1545, 0, 0, 1546, 1569, 0, 0, 1547, 1548, 1549,
8317 1550, 1551, 1552, 1553, 0, 0, 0, 0, 0, 0,
8318 0, 0, 1545, 0, 0, 1546, 0, 0, 1554, 1547,
8319 1548, 1549, 1550, 1551, 1552, 1553, 0, 0, 1556, 0,
8320 0, 0, 0, 0, 1569, 1557, 0, 0, 0, 0,
8321 1554, 0, 0, 0, 2645, 0, 0, 0, 0, 0,
8322 1556, 0, 0, 0, 0, 0, 0, 1557, 1570, 0,
8323 1558, 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578,
8324 1579, 0, 0, 0, 1569, 0, 0, 0, 0, 0,
8325 0, 0, 1558, 0, 0, 0, 0, 0, 0, 0,
8326 0, 0, 0, 0, 0, 0, 0, 0, 1570, 0,
8327 0, 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578,
8328 1579, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8330 0, 0, 0, 0, 0, 0, 0, 0, 1570, 0,
8331 0, 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578,
8332 1579, 0, 0, 0, 1559, 0, 1545, 0, 0, 1546,
8333 0, 0, 0, 1547, 1548, 1549, 1550, 1551, 1552, 1553,
8334 1560, 0, 0, 0, 0, 1561, 1559, 0, 1570, 0,
8335 0, 1571, 1572, 1573, 1554, 1574, 1575, 1576, 1577, 1578,
8336 1579, 0, 1560, 0, 1556, 0, 0, 1561, 1562, 1563,
8337 0, 1557, 0, 0, 0, 0, 0, 0, 0, 0,
8338 0, 0, 0, 1564, 0, 0, 0, 0, 0, 0,
8339 1562, 1563, 0, 0, 0, 1545, 1558, 0, 1546, 0,
8340 0, 0, 1547, 1548, 0, 1564, 1551, 1552, 1553, 0,
8341 0, 0, 0, 0, 0, 0, 0, 0, 0, 1565,
8342 0, 0, 1566, 0, 0, 0, 0, 0, 0, 0,
8343 0, 0, 0, 1556, 0, 0, 1567, 0, 0, 1568,
8344 1557, 1565, 0, 0, 1566, 0, 0, 0, 0, 0,
8345 0, 0, 0, 0, 0, 0, 0, 0, 1567, 0,
8346 0, 1568, 0, 0, 0, 1558, 0, 0, 0, 1545,
8347 0, 0, 1546, 0, 0, 0, 1547, 1548, 1549, 1550,
8348 1551, 1552, 1553, 0, 0, 0, 0, 0, 0, 0,
8349 1559, 0, 0, 0, 0, 0, 0, 1554, 0, 0,
8350 0, 0, 0, 0, 0, 0, 1560, 1556, 0, 0,
8351 0, 1561, 0, 0, 1557, 0, 0, 0, 0, 0,
8352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8353 0, 0, 1569, 0, 1562, 1563, 0, 0, 0, 1558,
8354 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564,
8355 0, 0, 0, 0, 1569, 0, 0, 0, 0, 1559,
8356 0, 0, 0, 0, 0, 2634, 0, 0, 0, 0,
8357 0, 0, 0, 0, 0, 1560, 0, 0, 0, 0,
8358 1561, 0, 0, 0, 0, 1565, 0, 0, 1566, 0,
8359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8360 0, 0, 1567, -1948, -1948, 1568, 0, 0, 0, 0,
8361 0, 0, 0, 0, 0, 0, 0, 0, 1564, 0,
8362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8363 0, 0, 0, 1559, 0, 0, 1570, 0, 0, 1571,
8364 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578, 1579, 1560,
8365 0, 0, 0, 0, 1561, 0, 0, -1948, 1570, 0,
8366 0, 1571, 1572, 1573, 0, 1574, 1575, 1576, 1577, 1578,
8367 1579, 1567, 0, 0, 0, 0, 0, 1562, 1563, 0,
8368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8369 0, 0, 1564, 0, 0, 0, 0, 0, 1569, 0,
8370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8372 0, 0, 0, 0, 0, 0, 0, 0, 1565, 0,
8373 0, 1566, 0, 0, 0, 0, 0, 0, 0, 0,
8374 0, 0, 0, 0, 0, 1567, 0, 0, 1568, 0,
8375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8376 0, 0, 0, 0, 0, 0, 0, 1569, 0, 0,
8377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8380 0, 0, 1570, 0, 0, 1571, 1572, 1573, 0, 1574,
8381 1575, 1576, 1577, 1578, 1579, 0, 0, 0, 0, 0,
8382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8384 0, 1569, 0, 0, 0, 0, 0, 0, 0, 0,
8385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8387 0, 1570, 0, 0, 1571, 1572, 1573, 0, 1574, 1575,
8388 1576, 1577, 1578, 1579, 0, 0, 0, 0, 0, 0,
8389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8393 0, 0, 0, 0, 0, 0, 0, 0, 0, 1175,
8394 0, 1997, 0, 0, 0, 1570, 0, 0, 1571, 1572,
8395 1573, 0, 1574, 1575, 1576, 1577, 2098, 1579, 110, 111,
8396 112, 113, 114, 115, 116, 117, 1176, 118, 119, 120,
8397 1177, 1178, 1179, 832, 1180, 1181, 1182, 1183, 833, 122,
8398 123, 1184, 124, 125, 126, 834, 128, 129, 130, 835,
8399 836, 837, 838, 839, 1185, 136, 137, 138, 139, 140,
8400 141, 1186, 1187, 142, 143, 840, 841, 146, 1188, 147,
8401 148, 149, 150, 842, 1189, 843, 1190, 844, 154, 155,
8402 156, 157, 158, 845, 160, 161, 162, 1191, 163, 164,
8403 165, 166, 167, 168, 1192, 846, 170, 171, 172, 173,
8404 174, 175, 176, 177, 178, 179, 847, 848, 182, 1193,
8405 183, 1194, 184, 185, 186, 187, 188, 189, 1195, 190,
8406 191, 192, 193, 194, 1196, 1197, 195, 196, 197, 198,
8407 199, 1198, 200, 201, 202, 1199, 203, 204, 205, 1200,
8408 206, 207, 208, 209, 849, 211, 212, 213, 214, 215,
8409 850, 1201, 217, 1202, 218, 219, 851, 221, 1203, 222,
8410 1204, 223, 852, 1205, 853, 226, 227, 854, 855, 230,
8411 1206, 231, 1207, 856, 857, 234, 1208, 235, 236, 237,
8412 238, 239, 240, 241, 858, 243, 244, 245, 246, 1209,
8413 247, 248, 249, 250, 251, 252, 253, 1210, 254, 859,
8414 860, 257, 258, 259, 260, 261, 861, 862, 1211, 863,
8415 1212, 265, 864, 865, 268, 866, 270, 271, 272, 273,
8416 274, 275, 1213, 1214, 276, 867, 278, 868, 1215, 280,
8417 281, 282, 283, 284, 285, 286, 287, 869, 289, 290,
8418 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
8419 301, 302, 303, 304, 305, 306, 870, 871, 872, 310,
8420 311, 312, 873, 1216, 314, 315, 874, 317, 1217, 875,
8421 319, 876, 321, 322, 323, 1218, 324, 325, 1219, 1220,
8422 326, 327, 328, 1221, 1222, 329, 877, 878, 332, 879,
8423 880, 335, 336, 337, 338, 339, 340, 341, 342, 343,
8424 344, 1223, 1224, 1225, 1226, 345, 346, 881, 882, 349,
8425 350, 883, 352, 353, 354, 1227, 355, 356, 357, 358,
8426 359, 360, 1228, 361, 362, 363, 884, 365, 366, 367,
8427 368, 1229, 369, 370, 371, 372, 373, 374, 375, 376,
8428 377, 378, 379, 380, 381, 1230, 382, 383, 885, 385,
8429 386, 387, 886, 389, 390, 391, 392, 393, 394, 395,
8430 396, 397, 398, 399, 1231, 887, 400, 401, 402, 403,
8431 404, 405, 888, 407, 408, 409, 889, 411, 412, 890,
8432 414, 1232, 415, 416, 417, 418, 419, 420, 421, 422,
8433 423, 424, 425, 426, 891, 428, 892, 430, 1233, 431,
8434 432, 1234, 433, 893, 435, 436, 437, 438, 439, 1235,
8435 894, 895, 1236, 1237, 442, 443, 896, 445, 897, 1238,
8436 447, 448, 898, 450, 451, 452, 453, 454, 1239, 1240,
8437 455, 456, 457, 1241, 458, 459, 460, 461, 1242, 462,
8438 463, 464, 465, 466, 1243, 900, 1244, 469, 901, 471,
8439 472, 473, 474, 475, 1245, 1246, 476, 1247, 1248, 477,
8440 478, 479, 480, 481, 482, 902, 903, 904, 905, 906,
8441 907, 908, 909, 910, 911, 912, 494, 495, 496, 497,
8442 1175, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8443 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
8444 111, 112, 113, 114, 115, 116, 117, 1176, 118, 119,
8445 120, 1177, 1178, 1179, 832, 1180, 1181, 1182, 1183, 833,
8446 122, 123, 1184, 124, 125, 126, 834, 128, 129, 130,
8447 835, 836, 837, 838, 839, 1185, 136, 137, 138, 139,
8448 140, 141, 1186, 1187, 142, 143, 840, 841, 146, 1188,
8449 147, 148, 149, 150, 842, 1189, 843, 1190, 844, 154,
8450 155, 156, 157, 158, 845, 160, 161, 162, 1191, 163,
8451 164, 165, 166, 167, 168, 1192, 846, 170, 171, 172,
8452 173, 174, 175, 176, 177, 178, 179, 847, 848, 182,
8453 1193, 183, 1194, 184, 185, 186, 187, 188, 189, 1195,
8454 190, 191, 192, 193, 194, 1196, 1197, 195, 196, 197,
8455 198, 199, 1198, 200, 201, 202, 1199, 203, 204, 205,
8456 1200, 206, 207, 208, 209, 849, 211, 212, 213, 214,
8457 215, 850, 1201, 217, 1202, 218, 219, 851, 221, 1203,
8458 222, 1204, 223, 852, 1205, 853, 226, 227, 854, 855,
8459 230, 1206, 231, 1207, 856, 857, 234, 1208, 235, 236,
8460 237, 238, 239, 240, 241, 858, 243, 244, 245, 246,
8461 1209, 247, 248, 249, 250, 251, 252, 253, 1210, 254,
8462 859, 860, 257, 258, 259, 260, 261, 861, 862, 1211,
8463 863, 1212, 265, 864, 865, 268, 866, 270, 271, 272,
8464 273, 274, 275, 1213, 1214, 276, 867, 278, 868, 1215,
8465 280, 281, 282, 283, 284, 285, 286, 287, 869, 289,
8466 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
8467 300, 301, 302, 303, 304, 305, 306, 870, 871, 872,
8468 310, 311, 312, 873, 1216, 314, 315, 874, 317, 1217,
8469 875, 319, 876, 321, 322, 323, 1218, 324, 325, 1219,
8470 1220, 326, 327, 328, 1221, 1222, 329, 877, 878, 332,
8471 879, 880, 335, 336, 337, 338, 339, 340, 341, 342,
8472 343, 344, 1223, 1224, 1225, 1226, 345, 346, 881, 882,
8473 349, 350, 883, 352, 353, 354, 1227, 355, 356, 357,
8474 358, 359, 360, 1228, 361, 362, 363, 884, 365, 366,
8475 367, 368, 1229, 369, 370, 371, 372, 373, 374, 375,
8476 376, 377, 378, 379, 380, 381, 1230, 382, 383, 885,
8477 385, 386, 387, 886, 389, 390, 391, 392, 393, 394,
8478 395, 396, 397, 398, 399, 1231, 887, 400, 401, 402,
8479 403, 404, 405, 888, 407, 408, 409, 889, 411, 412,
8480 890, 414, 1232, 415, 416, 417, 418, 419, 420, 421,
8481 422, 423, 424, 425, 426, 891, 428, 892, 430, 1233,
8482 431, 432, 1234, 433, 893, 435, 436, 437, 438, 439,
8483 1235, 894, 895, 1236, 1237, 442, 443, 896, 445, 897,
8484 1238, 447, 448, 898, 450, 451, 452, 453, 454, 1239,
8485 1240, 455, 456, 457, 1241, 458, 459, 460, 461, 1242,
8486 462, 463, 464, 465, 466, 1243, 900, 1244, 469, 901,
8487 471, 472, 473, 474, 475, 1245, 1246, 476, 1247, 1248,
8488 477, 478, 479, 480, 481, 482, 902, 903, 904, 905,
8489 906, 907, 908, 909, 910, 911, 912, 494, 495, 496,
8490 497, 1175, 0, 0, 0, 0, 0, 0, 0, 0,
8491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8492 110, 111, 112, 113, 2143, 115, 116, 117, 1176, 118,
8493 119, 120, 1177, 1178, 1179, 832, 1180, 1181, 1182, 1183,
8494 833, 122, 123, 1184, 124, 125, 126, 834, 128, 129,
8495 130, 835, 836, 837, 838, 839, 1185, 136, 137, 138,
8496 139, 140, 141, 1186, 1187, 142, 143, 840, 841, 146,
8497 1188, 147, 148, 149, 150, 842, 1189, 843, 1190, 844,
8498 154, 155, 156, 157, 158, 845, 160, 161, 162, 1191,
8499 163, 164, 165, 166, 167, 168, 1192, 846, 170, 171,
8500 172, 173, 174, 175, 176, 177, 178, 179, 847, 848,
8501 182, 1193, 183, 1194, 184, 185, 186, 187, 188, 189,
8502 1195, 190, 191, 192, 193, 194, 1196, 1197, 195, 196,
8503 197, 2144, 199, 1198, 200, 201, 202, 1199, 203, 204,
8504 205, 1200, 206, 207, 208, 209, 849, 211, 212, 213,
8505 214, 215, 850, 1201, 217, 1202, 218, 219, 851, 221,
8506 1203, 222, 1204, 223, 852, 1205, 853, 226, 227, 854,
8507 855, 230, 1206, 231, 1207, 856, 857, 234, 1208, 235,
8508 236, 237, 238, 239, 240, 241, 858, 243, 244, 245,
8509 246, 1209, 247, 248, 249, 250, 251, 252, 253, 1210,
8510 254, 859, 860, 257, 258, 259, 260, 261, 861, 862,
8511 1211, 863, 1212, 265, 864, 865, 268, 866, 270, 271,
8512 272, 273, 274, 275, 1213, 1214, 276, 867, 278, 868,
8513 1215, 280, 281, 282, 283, 284, 285, 286, 287, 869,
8514 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
8515 299, 300, 301, 302, 303, 304, 305, 306, 870, 871,
8516 872, 310, 311, 312, 873, 1216, 314, 315, 874, 317,
8517 1217, 875, 319, 876, 321, 322, 323, 1218, 324, 325,
8518 1219, 1220, 326, 327, 328, 1221, 1222, 329, 877, 878,
8519 332, 879, 880, 335, 336, 337, 338, 339, 340, 341,
8520 342, 343, 344, 1223, 1224, 1225, 1226, 345, 346, 881,
8521 882, 349, 350, 883, 352, 353, 354, 1227, 355, 356,
8522 357, 358, 359, 360, 1228, 361, 362, 363, 884, 365,
8523 366, 367, 368, 1229, 369, 370, 371, 372, 373, 374,
8524 375, 376, 377, 378, 379, 380, 381, 1230, 382, 383,
8525 885, 385, 386, 387, 886, 389, 390, 391, 392, 393,
8526 394, 395, 396, 397, 398, 399, 1231, 887, 400, 401,
8527 402, 403, 404, 2145, 888, 407, 408, 409, 889, 411,
8528 412, 890, 414, 1232, 415, 416, 417, 418, 419, 420,
8529 421, 422, 423, 424, 425, 426, 891, 428, 892, 430,
8530 1233, 431, 432, 1234, 433, 893, 435, 436, 437, 438,
8531 439, 1235, 894, 895, 1236, 1237, 442, 443, 896, 445,
8532 897, 1238, 447, 448, 898, 450, 451, 452, 453, 454,
8533 1239, 1240, 455, 456, 457, 1241, 458, 459, 460, 461,
8534 1242, 462, 463, 464, 465, 466, 1243, 900, 1244, 469,
8535 901, 471, 472, 473, 474, 475, 1245, 1246, 476, 1247,
8536 1248, 477, 478, 479, 480, 481, 482, 902, 903, 904,
8537 905, 906, 907, 908, 909, 910, 911, 912, 494, 495,
8538 496, 497, 831, 0, 629, 0, 0, 0, 0, 0,
8539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8540 0, 110, 111, 112, 113, 114, 115, 116, 117, 0,
8541 118, 119, 120, 0, 0, 0, 832, 0, 0, 0,
8542 0, 833, 122, 123, 0, 124, 125, 126, 834, 128,
8543 129, 130, 835, 836, 837, 838, 839, 0, 136, 137,
8544 138, 139, 140, 141, 0, 0, 142, 143, 840, 841,
8545 146, 0, 147, 148, 149, 150, 842, 0, 843, 0,
8546 844, 154, 155, 156, 157, 158, 845, 160, 161, 162,
8547 0, 163, 164, 165, 166, 167, 168, 0, 846, 170,
8548 171, 172, 173, 174, 175, 176, 177, 178, 179, 847,
8549 848, 182, 0, 183, 0, 184, 185, 186, 187, 188,
8550 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
8551 196, 197, 198, 199, 0, 200, 201, 202, 0, 203,
8552 204, 205, 0, 206, 207, 208, 209, 849, 211, 212,
8553 213, 214, 215, 850, 1398, 217, 0, 218, 219, 851,
8554 221, 0, 222, 0, 223, 852, 0, 853, 226, 227,
8555 854, 855, 230, 0, 231, 0, 856, 857, 234, 0,
8556 235, 236, 237, 238, 239, 240, 241, 858, 243, 244,
8557 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
8558 0, 254, 859, 860, 257, 258, 259, 260, 261, 861,
8559 862, 0, 863, 0, 265, 864, 865, 268, 866, 270,
8560 271, 272, 273, 274, 275, 0, 0, 276, 867, 278,
8561 868, 0, 280, 281, 282, 283, 284, 285, 286, 287,
8562 869, 289, 290, 291, 292, 293, 294, 295, 296, 297,
8563 298, 299, 300, 301, 302, 303, 304, 305, 306, 870,
8564 871, 872, 310, 311, 312, 873, 0, 314, 315, 874,
8565 317, 0, 875, 319, 876, 321, 322, 323, 0, 324,
8566 325, 1399, 0, 326, 327, 328, 0, 0, 329, 877,
8567 878, 332, 879, 880, 335, 336, 337, 338, 339, 340,
8568 341, 342, 343, 344, 0, 0, 0, 0, 345, 346,
8569 881, 882, 349, 350, 883, 352, 353, 354, 0, 355,
8570 356, 357, 358, 359, 360, 0, 361, 362, 363, 884,
8571 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
8572 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
8573 383, 885, 385, 386, 387, 886, 389, 390, 391, 392,
8574 393, 394, 395, 396, 397, 398, 399, 0, 887, 400,
8575 401, 402, 403, 404, 405, 888, 407, 408, 409, 889,
8576 411, 412, 890, 414, 0, 415, 416, 417, 418, 419,
8577 420, 421, 422, 423, 424, 425, 426, 891, 428, 892,
8578 430, 0, 431, 432, 0, 433, 893, 435, 436, 437,
8579 438, 439, 0, 894, 895, 0, 0, 442, 443, 896,
8580 445, 897, 1400, 447, 448, 898, 450, 451, 452, 453,
8581 454, 0, 0, 455, 456, 457, 0, 458, 459, 460,
8582 461, 0, 462, 463, 464, 465, 466, 1243, 900, 0,
8583 469, 901, 471, 472, 473, 474, 475, 0, 0, 476,
8584 0, 0, 477, 478, 479, 480, 481, 482, 902, 903,
8585 904, 905, 906, 907, 908, 909, 910, 911, 912, 494,
8586 495, 496, 497, 831, 0, 0, 0, 0, 0, 0,
8587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8588 0, 0, 110, 111, 112, 113, 114, 115, 116, 117,
8589 0, 118, 119, 120, 3, 4, 0, 832, 0, 0,
8590 0, 0, 833, 122, 123, 0, 124, 125, 126, 834,
8591 128, 129, 130, 835, 836, 837, 838, 839, 0, 136,
8592 137, 138, 139, 140, 141, 0, 0, 142, 143, 840,
8593 841, 146, 0, 147, 148, 149, 150, 842, 0, 843,
8594 0, 844, 154, 155, 156, 157, 158, 845, 160, 161,
8595 162, 0, 163, 164, 165, 166, 167, 168, 0, 846,
8596 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
8597 847, 848, 182, 0, 183, 0, 184, 185, 186, 187,
8598 188, 189, 0, 190, 191, 192, 193, 194, 0, 0,
8599 195, 196, 197, 198, 199, 0, 200, 201, 202, 0,
8600 203, 204, 205, 0, 206, 207, 208, 209, 849, 211,
8601 212, 213, 214, 215, 850, 0, 217, 0, 218, 219,
8602 851, 221, 0, 222, 0, 223, 852, 0, 853, 226,
8603 227, 854, 855, 230, 0, 231, 0, 856, 857, 234,
8604 0, 235, 236, 237, 238, 239, 240, 241, 858, 243,
8605 244, 245, 246, 0, 247, 248, 249, 250, 251, 252,
8606 253, 0, 254, 859, 860, 257, 258, 259, 260, 261,
8607 861, 862, 0, 863, 0, 265, 864, 865, 268, 866,
8608 270, 271, 272, 273, 274, 275, 0, 0, 276, 867,
8609 278, 868, 0, 280, 281, 282, 283, 284, 285, 286,
8610 287, 869, 289, 290, 291, 292, 293, 294, 295, 296,
8611 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
8612 870, 871, 872, 310, 311, 312, 873, 0, 314, 315,
8613 874, 317, 0, 875, 319, 876, 321, 322, 323, 0,
8614 324, 325, 0, 0, 326, 327, 328, 0, 0, 329,
8615 877, 878, 332, 879, 880, 335, 336, 337, 338, 339,
8616 340, 341, 342, 343, 344, 0, 0, 0, 0, 345,
8617 346, 881, 882, 349, 350, 883, 352, 353, 354, 0,
8618 355, 356, 357, 358, 359, 360, 0, 361, 362, 363,
8619 884, 365, 366, 367, 368, 0, 369, 370, 371, 372,
8620 373, 374, 375, 376, 377, 378, 379, 380, 381, 0,
8621 382, 383, 885, 385, 386, 387, 886, 389, 390, 391,
8622 392, 393, 394, 395, 396, 397, 398, 399, 0, 887,
8623 400, 401, 402, 403, 404, 405, 888, 407, 408, 409,
8624 889, 411, 412, 890, 414, 0, 415, 416, 417, 418,
8625 419, 420, 421, 422, 423, 424, 425, 426, 891, 428,
8626 892, 430, 0, 431, 432, 0, 433, 893, 435, 436,
8627 437, 438, 439, 0, 894, 895, 0, 0, 442, 443,
8628 896, 445, 897, 0, 447, 448, 898, 450, 451, 452,
8629 453, 454, 0, 0, 455, 456, 457, 0, 458, 459,
8630 460, 461, 0, 462, 463, 464, 465, 466, 1243, 900,
8631 0, 469, 901, 471, 472, 473, 474, 475, 0, 0,
8632 476, 0, 0, 477, 478, 479, 480, 481, 482, 902,
8633 903, 904, 905, 906, 907, 908, 909, 910, 911, 912,
8634 494, 495, 496, 497, 109, 0, 0, 0, 0, 0,
8635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8636 0, 0, 0, 110, 111, 112, 113, 114, 115, 116,
8637 117, 0, 118, 119, 120, 0, 0, 0, 0, 0,
8638 0, 0, 0, 121, 122, 123, 0, 124, 125, 126,
8639 127, 128, 129, 130, 131, 132, 133, 134, 135, 0,
8640 136, 137, 138, 139, 140, 141, 0, 599, 142, 143,
8641 144, 145, 146, 0, 147, 148, 149, 150, 600, 0,
8642 601, 0, 153, 154, 155, 156, 157, 158, 159, 160,
8643 161, 162, 0, 163, 164, 165, 166, 167, 168, 0,
8644 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
8645 179, 180, 181, 182, 0, 183, 0, 184, 185, 186,
8646 187, 188, 189, 0, 190, 191, 192, 193, 194, 0,
8647 0, 195, 196, 197, 198, 199, 0, 200, 201, 202,
8648 0, 203, 204, 205, 0, 206, 207, 208, 209, 210,
8649 211, 212, 213, 214, 215, 602, 0, 217, 0, 218,
8650 219, 220, 221, 0, 222, 0, 223, 224, 0, 225,
8651 226, 227, 228, 229, 230, 0, 231, 0, 232, 233,
8652 234, 0, 235, 236, 237, 238, 239, 240, 241, 242,
8653 243, 244, 245, 246, 0, 247, 248, 249, 250, 251,
8654 252, 253, 0, 254, 255, 256, 257, 258, 259, 260,
8655 261, 262, 263, 0, 264, 0, 265, 266, 267, 268,
8656 269, 270, 271, 272, 273, 274, 275, 0, 0, 276,
8657 277, 278, 279, 0, 280, 281, 282, 283, 284, 285,
8658 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
8659 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
8660 306, 307, 308, 309, 310, 311, 312, 313, 0, 314,
8661 315, 316, 317, 0, 604, 319, 320, 321, 322, 323,
8662 0, 324, 325, 0, 0, 326, 327, 328, 0, 0,
8663 329, 330, 331, 332, 333, 606, 335, 336, 337, 338,
8664 339, 340, 341, 342, 343, 344, 0, 0, 0, 0,
8665 345, 346, 607, 348, 349, 350, 351, 352, 353, 354,
8666 0, 355, 356, 357, 358, 359, 360, 0, 361, 362,
8667 363, 364, 365, 366, 367, 368, 0, 369, 370, 371,
8668 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
8669 0, 382, 383, 384, 385, 386, 387, 388, 389, 390,
8670 391, 392, 393, 394, 395, 396, 397, 398, 399, 0,
8671 0, 400, 401, 402, 403, 404, 405, 406, 407, 408,
8672 409, 410, 411, 412, 413, 414, 0, 415, 416, 417,
8673 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
8674 428, 609, 430, 0, 431, 432, 0, 433, 434, 435,
8675 436, 437, 438, 439, 0, 440, 441, 0, 0, 442,
8676 443, 610, 445, 611, 0, 447, 448, 612, 450, 451,
8677 452, 453, 454, 0, 0, 455, 456, 457, 0, 458,
8678 459, 460, 461, 0, 462, 463, 464, 465, 466, 467,
8679 468, 0, 469, 470, 471, 472, 473, 474, 475, 0,
8680 0, 476, 0, 0, 477, 478, 479, 480, 481, 482,
8681 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
8682 493, 494, 495, 496, 497, 109, 0, 0, 0, 0,
8683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8684 0, 0, 0, 0, 110, 111, 112, 113, 114, 115,
8685 116, 117, 0, 118, 119, 120, 0, 0, 0, 0,
8686 0, 0, 0, 0, 121, 122, 123, 0, 124, 125,
8687 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
8688 0, 136, 137, 138, 139, 140, 141, 0, 0, 142,
8689 143, 144, 145, 146, 0, 147, 148, 149, 150, 151,
8690 0, 152, 0, 153, 154, 155, 156, 157, 158, 159,
8691 160, 161, 162, 0, 163, 164, 165, 166, 167, 168,
8692 0, 169, 170, 171, 172, 173, 174, 175, 176, 177,
8693 178, 179, 180, 181, 182, 0, 183, 0, 184, 185,
8694 186, 187, 188, 189, 0, 190, 191, 192, 193, 194,
8695 0, 0, 195, 196, 197, 198, 199, 0, 200, 201,
8696 202, 0, 203, 204, 205, 0, 206, 207, 208, 209,
8697 210, 211, 212, 213, 214, 215, 216, 0, 217, 0,
8698 218, 219, 220, 221, 0, 222, 0, 223, 224, 0,
8699 225, 226, 227, 228, 229, 230, 0, 231, 0, 232,
8700 233, 234, 0, 235, 236, 237, 238, 239, 240, 241,
8701 242, 243, 244, 245, 246, 0, 247, 248, 249, 250,
8702 251, 252, 253, 0, 254, 255, 256, 257, 258, 259,
8703 260, 261, 262, 263, 0, 264, 0, 265, 266, 267,
8704 268, 269, 270, 271, 272, 273, 274, 275, 0, 0,
8705 276, 277, 278, 279, 0, 280, 281, 282, 283, 284,
8706 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
8707 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
8708 305, 306, 307, 308, 309, 310, 311, 312, 313, 0,
8709 314, 315, 316, 317, 0, 318, 319, 320, 321, 322,
8710 323, 0, 324, 325, 0, 0, 326, 327, 328, 0,
8711 0, 329, 330, 331, 332, 333, 334, 335, 336, 337,
8712 338, 339, 340, 341, 342, 343, 344, 0, 0, 0,
8713 0, 345, 346, 347, 348, 349, 350, 351, 352, 353,
8714 354, 0, 355, 356, 357, 358, 359, 360, 0, 361,
8715 362, 363, 364, 365, 366, 367, 368, 0, 369, 370,
8716 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
8717 381, 0, 382, 383, 384, 385, 386, 387, 388, 389,
8718 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
8719 0, 0, 400, 401, 402, 403, 404, 405, 406, 407,
8720 408, 409, 410, 411, 412, 413, 414, 0, 415, 416,
8721 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
8722 427, 428, 429, 430, 0, 431, 432, 0, 433, 434,
8723 435, 436, 437, 438, 439, 0, 440, 441, 0, 0,
8724 442, 443, 444, 445, 446, 0, 447, 448, 449, 450,
8725 451, 452, 453, 454, 0, 0, 455, 456, 457, 0,
8726 458, 459, 460, 461, 0, 462, 463, 464, 465, 466,
8727 467, 468, 0, 469, 470, 471, 472, 473, 474, 475,
8728 0, 0, 476, 0, 0, 477, 478, 479, 480, 481,
8729 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
8730 492, 493, 494, 495, 496, 497, 505, 0, 0, 0,
8731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8732 0, 0, 0, 0, 0, 110, 111, 112, 113, 114,
8733 115, 116, 117, 0, 118, 119, 120, 0, 0, 0,
8734 0, 0, 0, 0, 0, 0, 122, 123, 0, 124,
8735 125, 126, 0, 128, 129, 130, 131, 132, 0, 134,
8736 135, 0, 136, 137, 138, 139, 140, 141, 0, 0,
8737 142, 143, 144, 145, 146, 1675, 147, 148, 149, 150,
8738 151, 0, 0, 1676, 153, 154, 155, 156, 157, 158,
8739 0, 160, 161, 162, 1677, 163, 164, 165, 166, 167,
8740 168, 0, 0, 170, 171, 172, 173, 174, 175, 176,
8741 177, 178, 179, 180, 181, 182, 0, 183, 0, 184,
8742 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
8743 194, 0, 0, 195, 196, 197, 198, 199, 0, 200,
8744 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
8745 209, 210, 211, 212, 213, 214, 215, 216, 0, 217,
8746 0, 218, 219, 220, 221, 0, 222, 1678, 223, 0,
8747 0, 0, 226, 227, 506, 0, 230, 0, 231, 0,
8748 232, 233, 234, 0, 235, 236, 237, 238, 239, 1679,
8749 241, 0, 243, 244, 245, 246, 0, 247, 248, 249,
8750 250, 251, 252, 253, 0, 254, 0, 256, 257, 258,
8751 259, 260, 261, 262, 263, 0, 264, 0, 265, 0,
8752 0, 268, 0, 270, 271, 272, 273, 274, 275, 0,
8753 0, 276, 0, 278, 0, 0, 280, 281, 282, 283,
8754 284, 285, 286, 287, 507, 289, 290, 291, 292, 293,
8755 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
8756 304, 305, 306, 307, 0, 309, 310, 311, 312, 313,
8757 0, 314, 315, 0, 317, 0, 318, 319, 320, 321,
8758 322, 323, 0, 324, 325, 0, 0, 326, 327, 328,
8759 0, 0, 329, 330, 0, 332, 0, 334, 335, 336,
8760 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
8761 0, 0, 345, 346, 347, 0, 349, 350, 351, 352,
8762 353, 354, 1680, 355, 356, 357, 358, 359, 360, 0,
8763 361, 362, 363, 364, 365, 366, 367, 368, 0, 369,
8764 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
8765 380, 381, 0, 382, 383, 0, 385, 386, 387, 388,
8766 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
8767 399, 0, 0, 400, 401, 402, 403, 404, 405, 406,
8768 407, 408, 409, 0, 411, 412, 413, 414, 0, 415,
8769 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
8770 426, 508, 428, 429, 430, 0, 431, 432, 0, 433,
8771 0, 435, 436, 437, 438, 439, 0, 440, 441, 0,
8772 0, 442, 443, 444, 445, 446, 0, 447, 448, 449,
8773 450, 451, 452, 453, 454, 0, 1681, 455, 456, 457,
8774 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
8775 466, 467, 468, 0, 469, 0, 471, 472, 473, 474,
8776 475, 0, 0, 476, 0, 0, 477, 478, 479, 480,
8777 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
8778 491, 492, 493, 494, 495, 496, 497, 505, 0, 0,
8779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8780 0, 0, 0, 0, 0, 0, 110, 111, 112, 113,
8781 114, 115, 116, 117, 0, 118, 119, 120, 0, 0,
8782 0, 0, 0, 0, 0, 0, 0, 122, 123, 0,
8783 124, 125, 126, 0, 128, 129, 130, 131, 132, 0,
8784 134, 135, 0, 136, 137, 138, 139, 140, 141, 0,
8785 0, 142, 143, 144, 145, 146, 1675, 147, 148, 149,
8786 150, 151, 0, 0, 0, 153, 154, 155, 156, 157,
8787 158, 0, 160, 161, 162, 1677, 163, 164, 165, 166,
8788 167, 168, 0, 0, 170, 171, 172, 173, 174, 175,
8789 176, 177, 178, 179, 180, 181, 182, 0, 183, 0,
8790 184, 185, 186, 187, 188, 189, 0, 190, 191, 192,
8791 193, 194, 0, 0, 195, 196, 197, 198, 199, 0,
8792 200, 201, 202, 0, 203, 204, 205, 0, 206, 207,
8793 208, 209, 210, 211, 212, 213, 214, 215, 216, 0,
8794 217, 0, 218, 219, 220, 221, 0, 222, 1678, 223,
8795 0, 0, 0, 226, 227, 506, 0, 230, 0, 231,
8796 0, 232, 233, 234, 0, 235, 236, 237, 238, 239,
8797 240, 241, 0, 243, 244, 245, 246, 0, 247, 248,
8798 249, 250, 251, 252, 253, 0, 254, 0, 256, 257,
8799 258, 259, 260, 261, 262, 263, 0, 264, 0, 265,
8800 0, 0, 268, 0, 270, 271, 272, 273, 274, 275,
8801 0, 0, 276, 0, 278, 2216, 0, 280, 281, 282,
8802 283, 284, 285, 286, 287, 507, 289, 290, 291, 292,
8803 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
8804 303, 304, 305, 306, 307, 0, 309, 310, 311, 312,
8805 313, 0, 314, 315, 0, 317, 0, 318, 319, 320,
8806 321, 322, 323, 0, 324, 325, 0, 0, 326, 327,
8807 328, 0, 0, 329, 330, 0, 332, 0, 334, 335,
8808 336, 337, 338, 339, 340, 341, 342, 343, 344, 0,
8809 0, 0, 0, 345, 346, 347, 0, 349, 350, 351,
8810 352, 353, 354, 1680, 355, 356, 357, 358, 359, 360,
8811 0, 361, 362, 363, 364, 365, 366, 367, 368, 0,
8812 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
8813 379, 380, 381, 0, 382, 383, 0, 385, 386, 387,
8814 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
8815 398, 399, 0, 0, 400, 401, 402, 403, 404, 405,
8816 406, 407, 408, 409, 0, 411, 412, 413, 414, 0,
8817 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
8818 425, 426, 508, 428, 429, 430, 0, 431, 432, 0,
8819 433, 0, 435, 436, 437, 438, 439, 0, 440, 441,
8820 0, 0, 442, 443, 444, 445, 446, 0, 447, 448,
8821 449, 450, 451, 452, 453, 454, 0, 1681, 455, 456,
8822 457, 0, 458, 459, 460, 461, 0, 462, 463, 464,
8823 465, 466, 467, 468, 0, 469, 0, 471, 472, 473,
8824 474, 475, 0, 0, 476, 0, 0, 477, 478, 479,
8825 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
8826 490, 491, 492, 493, 494, 495, 496, 497, 505, 0,
8827 527, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8828 0, 0, 0, 0, 0, 0, 0, 110, 111, 112,
8829 113, 114, 115, 116, 117, 0, 118, 119, 120, 3,
8830 4, 0, 0, 0, 0, 0, 0, 0, 122, 123,
8831 0, 124, 125, 126, 0, 128, 129, 130, 131, 132,
8832 0, 134, 135, 0, 136, 137, 138, 139, 140, 141,
8833 0, 0, 142, 143, 144, 145, 146, 0, 147, 148,
8834 149, 150, 151, 0, 0, 0, 153, 154, 155, 156,
8835 157, 158, 0, 160, 161, 162, 0, 163, 164, 165,
8836 166, 167, 168, 0, 0, 170, 171, 172, 173, 174,
8837 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
8838 0, 184, 185, 186, 187, 188, 189, 0, 190, 191,
8839 192, 193, 194, 0, 0, 195, 196, 197, 198, 199,
8840 0, 200, 201, 202, 0, 203, 204, 205, 0, 206,
8841 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
8842 0, 217, 0, 218, 219, 220, 221, 0, 222, 0,
8843 223, 0, 0, 0, 226, 227, 506, 0, 230, 0,
8844 231, 0, 232, 233, 234, 0, 235, 236, 237, 238,
8845 239, 240, 241, 0, 243, 244, 245, 246, 0, 247,
8846 248, 249, 250, 251, 252, 253, 0, 254, 0, 256,
8847 257, 258, 259, 260, 261, 262, 263, 0, 264, 0,
8848 265, 0, 0, 268, 0, 270, 271, 272, 273, 274,
8849 275, 0, 0, 276, 0, 278, 0, 0, 280, 281,
8850 282, 283, 284, 285, 286, 287, 507, 289, 290, 291,
8851 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
8852 302, 303, 304, 305, 306, 307, 0, 309, 310, 311,
8853 312, 313, 0, 314, 315, 0, 317, 0, 318, 319,
8854 320, 321, 322, 323, 0, 324, 325, 0, 0, 326,
8855 327, 328, 0, 0, 329, 330, 0, 332, 0, 334,
8856 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
8857 0, 0, 0, 0, 345, 346, 347, 0, 349, 350,
8858 351, 352, 353, 354, 0, 355, 356, 357, 358, 359,
8859 360, 0, 361, 362, 363, 364, 365, 366, 367, 368,
8860 0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
8861 378, 379, 380, 381, 0, 382, 383, 0, 385, 386,
8862 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
8863 397, 398, 399, 0, 0, 400, 401, 402, 403, 404,
8864 405, 406, 407, 408, 409, 0, 411, 412, 413, 414,
8865 0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
8866 424, 425, 426, 508, 428, 429, 430, 0, 431, 432,
8867 0, 433, 0, 435, 436, 437, 438, 439, 0, 440,
8868 441, 0, 0, 442, 443, 444, 445, 446, 0, 447,
8869 448, 449, 450, 451, 452, 453, 454, 0, 0, 455,
8870 456, 457, 0, 458, 459, 460, 461, 0, 462, 463,
8871 464, 465, 466, 467, 468, 0, 469, 0, 471, 472,
8872 473, 474, 475, 0, 0, 476, 0, 0, 477, 478,
8873 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
8874 489, 490, 491, 492, 493, 494, 495, 496, 497, 505,
8875 0, 527, 0, 0, 0, 0, 0, 0, 0, 0,
8876 0, 0, 0, 0, 0, 0, 0, 0, 110, 111,
8877 112, 113, 114, 115, 116, 117, 528, 118, 119, 120,
8878 0, 0, 0, 0, 0, 0, 0, 0, 0, 122,
8879 123, 0, 124, 125, 126, 0, 128, 129, 130, 131,
8880 132, 0, 134, 135, 0, 136, 137, 138, 139, 140,
8881 141, 0, 0, 142, 143, 144, 145, 146, 0, 147,
8882 148, 149, 150, 151, 0, 0, 0, 153, 154, 155,
8883 156, 157, 158, 0, 160, 161, 162, 0, 163, 164,
8884 165, 166, 167, 168, 0, 0, 170, 171, 172, 173,
8885 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
8886 183, 0, 184, 185, 186, 187, 188, 189, 0, 190,
8887 191, 192, 193, 194, 0, 0, 195, 196, 197, 198,
8888 199, 0, 200, 201, 202, 0, 203, 204, 205, 0,
8889 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
8890 216, 0, 217, 0, 218, 219, 220, 221, 0, 222,
8891 0, 223, 0, 0, 0, 226, 227, 506, 0, 230,
8892 0, 231, 0, 232, 233, 234, 0, 235, 236, 237,
8893 238, 239, 240, 241, 0, 243, 244, 245, 246, 0,
8894 247, 248, 249, 250, 251, 252, 253, 0, 254, 0,
8895 256, 257, 258, 259, 260, 261, 262, 263, 0, 264,
8896 0, 265, 0, 0, 268, 0, 270, 271, 272, 273,
8897 274, 275, 0, 0, 276, 0, 278, 0, 0, 280,
8898 281, 282, 283, 284, 285, 286, 287, 507, 289, 290,
8899 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
8900 301, 302, 303, 304, 305, 306, 307, 0, 309, 310,
8901 311, 312, 313, 0, 314, 315, 0, 317, 0, 318,
8902 319, 320, 321, 322, 323, 0, 324, 325, 0, 0,
8903 326, 327, 328, 0, 0, 329, 330, 0, 332, 0,
8904 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
8905 344, 0, 0, 0, 0, 345, 346, 347, 0, 349,
8906 350, 351, 529, 353, 354, 0, 355, 356, 357, 358,
8907 359, 360, 0, 361, 362, 363, 364, 365, 366, 367,
8908 368, 0, 369, 370, 371, 372, 373, 374, 375, 376,
8909 377, 378, 379, 380, 381, 0, 382, 383, 0, 385,
8910 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
8911 396, 397, 398, 399, 0, 0, 400, 401, 402, 403,
8912 404, 405, 406, 407, 408, 409, 0, 411, 412, 413,
8913 414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
8914 423, 424, 425, 426, 508, 428, 429, 430, 0, 431,
8915 432, 0, 433, 0, 435, 436, 437, 438, 439, 0,
8916 440, 441, 0, 0, 442, 443, 444, 445, 446, 0,
8917 447, 448, 449, 450, 451, 452, 453, 454, 0, 0,
8918 455, 456, 457, 0, 458, 459, 460, 461, 0, 462,
8919 463, 464, 465, 466, 467, 468, 0, 469, 0, 471,
8920 472, 473, 474, 475, 0, 0, 476, 0, 0, 477,
8921 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
8922 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
8923 505, 0, 527, 0, 0, 0, 0, 0, 0, 0,
8924 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
8925 111, 112, 113, 114, 115, 116, 117, 0, 118, 119,
8926 120, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8927 122, 123, 0, 124, 125, 126, 0, 128, 129, 130,
8928 131, 132, 0, 134, 135, 0, 136, 137, 138, 139,
8929 140, 141, 0, 0, 142, 143, 144, 145, 146, 0,
8930 147, 148, 149, 150, 151, 0, 0, 0, 153, 154,
8931 155, 156, 157, 158, 0, 160, 161, 162, 0, 163,
8932 164, 165, 166, 167, 168, 0, 0, 170, 171, 172,
8933 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
8934 0, 183, 0, 184, 185, 186, 187, 188, 189, 0,
8935 190, 191, 192, 193, 194, 0, 0, 195, 196, 197,
8936 198, 199, 0, 200, 201, 202, 0, 203, 204, 205,
8937 0, 206, 207, 208, 209, 210, 211, 212, 213, 214,
8938 215, 216, 0, 217, 0, 218, 219, 220, 221, 0,
8939 222, 0, 223, 0, 0, 0, 226, 227, 506, 0,
8940 230, 0, 231, 0, 232, 233, 234, 0, 235, 236,
8941 237, 238, 239, 240, 241, 0, 243, 244, 245, 246,
8942 0, 247, 248, 249, 250, 251, 252, 253, 0, 254,
8943 0, 256, 257, 258, 259, 260, 261, 262, 263, 0,
8944 264, 0, 265, 0, 0, 268, 0, 270, 271, 272,
8945 273, 274, 275, 0, 0, 276, 0, 278, 0, 0,
8946 280, 281, 282, 283, 284, 285, 286, 287, 507, 289,
8947 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
8948 300, 301, 302, 303, 304, 305, 306, 307, 0, 309,
8949 310, 311, 312, 313, 0, 314, 315, 0, 317, 0,
8950 318, 319, 320, 321, 322, 323, 0, 324, 325, 0,
8951 605, 326, 327, 328, 0, 0, 329, 330, 0, 332,
8952 0, 334, 335, 336, 337, 338, 339, 340, 341, 342,
8953 343, 344, 0, 0, 0, 0, 345, 346, 347, 0,
8954 349, 350, 351, 352, 353, 354, 0, 355, 356, 357,
8955 358, 359, 360, 0, 361, 362, 363, 364, 365, 366,
8956 367, 368, 0, 369, 370, 371, 372, 373, 374, 375,
8957 376, 377, 378, 379, 380, 381, 0, 382, 383, 0,
8958 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
8959 395, 396, 397, 398, 399, 0, 0, 400, 401, 402,
8960 403, 404, 405, 406, 407, 408, 409, 0, 411, 412,
8961 413, 414, 0, 415, 416, 417, 418, 419, 420, 421,
8962 422, 423, 424, 425, 426, 508, 428, 429, 430, 0,
8963 431, 432, 0, 433, 0, 435, 436, 437, 438, 439,
8964 0, 440, 441, 0, 0, 442, 443, 444, 445, 446,
8965 0, 447, 448, 449, 450, 451, 452, 453, 454, 0,
8966 0, 455, 456, 457, 0, 458, 459, 460, 461, 0,
8967 462, 463, 464, 465, 466, 467, 468, 0, 469, 0,
8968 471, 472, 473, 474, 475, 0, 0, 476, 0, 0,
8969 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
8970 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
8971 497, 505, 0, 527, 0, 0, 0, 0, 0, 0,
8972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8973 110, 111, 112, 113, 114, 115, 116, 117, 0, 118,
8974 119, 120, 0, 0, 0, 0, 0, 0, 0, 0,
8975 0, 122, 123, 0, 124, 125, 126, 0, 128, 129,
8976 130, 131, 132, 0, 134, 135, 0, 136, 137, 138,
8977 139, 140, 141, 0, 0, 142, 143, 144, 145, 146,
8978 0, 147, 148, 149, 150, 151, 0, 0, 0, 153,
8979 154, 155, 156, 157, 158, 0, 160, 161, 162, 0,
8980 163, 164, 165, 166, 167, 168, 0, 0, 170, 171,
8981 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
8982 182, 0, 183, 0, 184, 185, 186, 187, 188, 189,
8983 0, 190, 191, 192, 193, 194, 0, 0, 195, 196,
8984 197, 198, 199, 0, 200, 201, 202, 0, 203, 204,
8985 205, 0, 206, 207, 208, 209, 210, 211, 212, 213,
8986 214, 215, 216, 0, 217, 0, 218, 219, 220, 221,
8987 0, 222, 0, 223, 0, 0, 0, 226, 227, 506,
8988 0, 230, 0, 231, 0, 232, 233, 234, 0, 235,
8989 236, 237, 238, 239, 706, 241, 0, 243, 244, 245,
8990 246, 0, 247, 248, 249, 250, 251, 252, 253, 0,
8991 254, 0, 256, 257, 258, 259, 260, 261, 262, 263,
8992 0, 264, 0, 265, 0, 0, 268, 0, 270, 271,
8993 272, 273, 274, 275, 0, 0, 276, 0, 278, 0,
8994 0, 280, 281, 282, 283, 284, 285, 286, 287, 507,
8995 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
8996 299, 300, 301, 302, 303, 304, 305, 306, 307, 0,
8997 309, 310, 311, 312, 313, 0, 314, 315, 0, 317,
8998 0, 318, 319, 320, 321, 322, 323, 0, 324, 325,
8999 0, 605, 326, 327, 328, 0, 0, 329, 330, 0,
9000 332, 0, 334, 335, 336, 337, 338, 339, 340, 341,
9001 342, 343, 344, 0, 0, 0, 0, 345, 346, 347,
9002 0, 349, 350, 351, 352, 353, 354, 0, 355, 356,
9003 357, 358, 359, 360, 0, 361, 362, 363, 364, 365,
9004 366, 367, 368, 0, 369, 370, 371, 372, 373, 374,
9005 375, 376, 377, 378, 379, 380, 381, 0, 382, 383,
9006 0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
9007 394, 395, 396, 397, 398, 399, 0, 0, 400, 401,
9008 402, 403, 404, 405, 406, 407, 408, 409, 0, 411,
9009 412, 413, 414, 0, 415, 416, 417, 418, 419, 420,
9010 421, 422, 423, 424, 425, 426, 508, 428, 429, 430,
9011 0, 431, 432, 0, 433, 0, 435, 436, 437, 438,
9012 439, 0, 440, 441, 0, 0, 442, 443, 444, 445,
9013 446, 0, 447, 448, 449, 450, 451, 452, 453, 454,
9014 0, 0, 455, 456, 457, 0, 458, 459, 460, 461,
9015 0, 462, 463, 464, 465, 466, 467, 468, 0, 469,
9016 0, 471, 472, 473, 474, 475, 0, 0, 476, 0,
9017 0, 477, 478, 479, 480, 481, 482, 483, 484, 485,
9018 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
9019 496, 497, 505, 0, 527, 0, 0, 0, 0, 0,
9020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9021 0, 110, 111, 112, 113, 114, 115, 116, 117, 734,
9022 118, 119, 120, 0, 0, 0, 0, 0, 0, 0,
9023 0, 0, 122, 123, 0, 124, 125, 126, 0, 128,
9024 129, 130, 131, 132, 0, 134, 135, 0, 136, 137,
9025 138, 139, 140, 141, 0, 0, 142, 143, 144, 145,
9026 146, 0, 147, 148, 149, 150, 151, 0, 0, 0,
9027 153, 154, 155, 156, 157, 158, 0, 160, 161, 162,
9028 0, 163, 164, 165, 166, 167, 168, 0, 0, 170,
9029 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
9030 181, 182, 0, 183, 0, 184, 185, 186, 187, 188,
9031 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
9032 196, 197, 198, 199, 0, 200, 201, 202, 0, 203,
9033 204, 205, 0, 206, 207, 208, 209, 210, 211, 212,
9034 213, 214, 215, 216, 0, 217, 0, 218, 219, 220,
9035 221, 0, 222, 0, 223, 0, 0, 0, 226, 227,
9036 506, 0, 230, 0, 231, 0, 232, 233, 234, 0,
9037 235, 236, 237, 238, 239, 240, 241, 0, 243, 244,
9038 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
9039 0, 254, 0, 256, 257, 258, 259, 260, 261, 262,
9040 263, 0, 264, 0, 265, 0, 0, 268, 0, 270,
9041 271, 272, 273, 274, 275, 0, 0, 276, 0, 278,
9042 0, 0, 280, 281, 282, 283, 284, 285, 286, 287,
9043 507, 289, 290, 291, 292, 293, 294, 295, 296, 297,
9044 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
9045 0, 309, 310, 311, 312, 313, 0, 314, 315, 0,
9046 317, 0, 318, 319, 320, 321, 322, 323, 0, 324,
9047 325, 0, 0, 326, 327, 328, 0, 0, 329, 330,
9048 0, 332, 0, 334, 335, 336, 337, 338, 339, 340,
9049 341, 342, 343, 344, 0, 0, 0, 0, 345, 346,
9050 347, 0, 349, 350, 351, 352, 353, 354, 0, 355,
9051 356, 357, 358, 359, 360, 0, 361, 362, 363, 364,
9052 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
9053 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
9054 383, 0, 385, 386, 387, 388, 389, 390, 391, 392,
9055 393, 394, 395, 396, 397, 398, 399, 0, 0, 400,
9056 401, 402, 403, 404, 405, 406, 407, 408, 409, 0,
9057 411, 412, 413, 414, 0, 415, 416, 417, 418, 419,
9058 420, 421, 422, 423, 424, 425, 426, 508, 428, 429,
9059 430, 0, 431, 432, 0, 433, 0, 435, 436, 437,
9060 438, 439, 0, 440, 441, 0, 0, 442, 443, 444,
9061 445, 446, 0, 447, 448, 449, 450, 451, 452, 453,
9062 454, 0, 0, 455, 456, 457, 0, 458, 459, 460,
9063 461, 0, 462, 463, 464, 465, 466, 467, 468, 0,
9064 469, 0, 471, 472, 473, 474, 475, 0, 0, 476,
9065 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
9066 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
9067 495, 496, 497, 505, 1889, 0, 0, 0, 0, 1890,
9068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9069 0, 0, 110, 111, 112, 113, 114, 115, 116, 117,
9070 0, 118, 119, 120, 0, 0, 0, 0, 0, 0,
9071 0, 0, 0, 122, 123, 0, 124, 125, 126, 0,
9072 128, 129, 130, 131, 132, 0, 134, 135, 0, 136,
9073 137, 138, 139, 140, 141, 0, 0, 142, 143, 144,
9074 145, 146, 0, 147, 148, 149, 150, 151, 0, 0,
9075 0, 153, 154, 155, 156, 157, 158, 0, 160, 161,
9076 162, 0, 163, 164, 165, 166, 167, 168, 0, 0,
9077 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
9078 180, 181, 182, 0, 183, 0, 184, 185, 186, 187,
9079 188, 189, 0, 190, 191, 192, 193, 194, 0, 0,
9080 195, 196, 197, 198, 199, 0, 200, 201, 202, 0,
9081 203, 204, 205, 0, 206, 207, 208, 209, 210, 211,
9082 212, 213, 214, 215, 216, 0, 217, 0, 218, 219,
9083 220, 221, 0, 222, 0, 223, 0, 0, 0, 226,
9084 227, 506, 0, 230, 0, 231, 0, 232, 233, 234,
9085 0, 235, 236, 237, 238, 239, 240, 241, 0, 243,
9086 244, 245, 246, 0, 247, 248, 249, 250, 251, 252,
9087 253, 0, 254, 0, 256, 257, 258, 259, 260, 261,
9088 262, 263, 0, 264, 0, 265, 0, 0, 268, 0,
9089 270, 271, 272, 273, 274, 275, 0, 0, 276, 0,
9090 278, 0, 0, 280, 281, 282, 283, 284, 285, 286,
9091 287, 507, 289, 290, 291, 292, 293, 294, 295, 296,
9092 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
9093 307, 0, 309, 310, 311, 312, 313, 0, 314, 315,
9094 0, 317, 0, 318, 319, 320, 321, 322, 323, 0,
9095 324, 325, 0, 0, 326, 327, 328, 0, 0, 329,
9096 330, 0, 332, 0, 334, 335, 336, 337, 338, 339,
9097 340, 341, 342, 343, 344, 0, 0, 0, 0, 345,
9098 346, 347, 0, 349, 350, 351, 352, 353, 354, 0,
9099 355, 356, 357, 358, 359, 360, 0, 361, 362, 363,
9100 364, 365, 366, 367, 368, 0, 369, 370, 371, 372,
9101 373, 374, 375, 376, 377, 378, 379, 380, 381, 0,
9102 382, 383, 0, 385, 386, 387, 388, 389, 390, 391,
9103 392, 393, 394, 395, 396, 397, 398, 399, 0, 0,
9104 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
9105 0, 411, 412, 413, 414, 0, 415, 416, 417, 418,
9106 419, 420, 421, 422, 423, 424, 425, 426, 508, 428,
9107 429, 430, 0, 431, 432, 0, 433, 0, 435, 436,
9108 437, 438, 439, 0, 440, 441, 0, 0, 442, 443,
9109 444, 445, 446, 0, 447, 448, 449, 450, 451, 452,
9110 453, 454, 0, 0, 455, 456, 457, 0, 458, 459,
9111 460, 461, 0, 462, 463, 464, 465, 466, 467, 468,
9112 0, 469, 0, 471, 472, 473, 474, 475, 0, 0,
9113 476, 0, 0, 477, 478, 479, 480, 481, 482, 483,
9114 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
9115 494, 495, 496, 497, 505, 0, 527, 0, 0, 0,
9116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9117 0, 0, 0, 110, 111, 112, 113, 114, 115, 116,
9118 117, 0, 118, 119, 120, 0, 0, 0, 0, 0,
9119 0, 0, 0, 0, 122, 123, 0, 124, 125, 126,
9120 0, 128, 129, 130, 131, 132, 0, 134, 135, 0,
9121 136, 137, 138, 139, 140, 141, 0, 0, 142, 143,
9122 144, 145, 146, 0, 147, 148, 149, 150, 151, 0,
9123 0, 0, 153, 154, 155, 156, 157, 158, 0, 160,
9124 161, 162, 0, 163, 164, 165, 166, 167, 168, 0,
9125 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
9126 179, 180, 181, 182, 0, 183, 0, 184, 185, 186,
9127 187, 188, 189, 0, 190, 191, 192, 193, 194, 0,
9128 0, 195, 196, 197, 198, 199, 0, 200, 201, 202,
9129 0, 203, 204, 205, 0, 206, 207, 208, 209, 210,
9130 211, 212, 213, 214, 215, 216, 0, 217, 0, 218,
9131 219, 220, 221, 0, 222, 0, 223, 0, 0, 0,
9132 226, 227, 506, 0, 1897, 0, 231, 0, 232, 233,
9133 234, 0, 235, 236, 237, 238, 239, 240, 241, 0,
9134 243, 244, 245, 246, 0, 247, 248, 249, 250, 251,
9135 252, 253, 0, 254, 0, 256, 257, 258, 259, 260,
9136 261, 262, 263, 0, 264, 0, 265, 0, 0, 268,
9137 0, 270, 271, 272, 273, 274, 275, 0, 0, 276,
9138 0, 278, 0, 0, 280, 281, 1898, 283, 284, 285,
9139 286, 287, 507, 289, 290, 291, 292, 293, 294, 295,
9140 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
9141 306, 307, 0, 309, 310, 311, 312, 313, 0, 314,
9142 315, 0, 317, 0, 318, 319, 320, 321, 322, 323,
9143 0, 324, 325, 0, 0, 326, 327, 328, 0, 0,
9144 329, 330, 0, 332, 0, 334, 335, 336, 337, 338,
9145 339, 340, 341, 342, 343, 344, 0, 0, 0, 0,
9146 345, 346, 347, 0, 349, 350, 351, 352, 353, 354,
9147 0, 355, 356, 357, 358, 359, 360, 0, 361, 362,
9148 363, 364, 365, 366, 367, 368, 0, 369, 370, 371,
9149 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
9150 0, 382, 383, 0, 385, 386, 387, 388, 389, 390,
9151 391, 392, 393, 394, 395, 396, 397, 398, 399, 0,
9152 0, 400, 401, 402, 403, 404, 405, 406, 407, 408,
9153 409, 0, 411, 412, 413, 414, 0, 415, 416, 417,
9154 418, 419, 420, 421, 422, 423, 424, 425, 426, 508,
9155 428, 429, 430, 0, 431, 432, 1899, 433, 0, 435,
9156 1900, 437, 1901, 439, 0, 440, 441, 0, 0, 442,
9157 443, 444, 445, 446, 0, 447, 448, 449, 450, 451,
9158 452, 453, 454, 0, 0, 455, 456, 1902, 0, 458,
9159 459, 460, 461, 0, 462, 463, 464, 465, 466, 467,
9160 468, 0, 469, 0, 471, 472, 473, 474, 475, 0,
9161 0, 476, 0, 0, 477, 478, 479, 480, 481, 482,
9162 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
9163 493, 494, 495, 496, 497, 505, 0, 527, 0, 0,
9164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9165 0, 0, 0, 0, 110, 111, 112, 113, 114, 115,
9166 116, 117, 0, 118, 119, 120, 0, 0, 0, 0,
9167 0, 0, 0, 0, 0, 122, 123, 0, 124, 125,
9168 126, 0, 128, 129, 130, 131, 132, 0, 134, 135,
9169 0, 136, 137, 138, 139, 140, 141, 0, 0, 142,
9170 143, 144, 145, 146, 0, 147, 148, 149, 150, 151,
9171 0, 0, 0, 153, 154, 155, 156, 157, 158, 0,
9172 160, 161, 162, 0, 163, 164, 165, 166, 167, 168,
9173 0, 0, 170, 171, 172, 173, 174, 175, 176, 177,
9174 178, 179, 180, 181, 182, 0, 183, 0, 184, 185,
9175 186, 187, 188, 189, 0, 190, 191, 192, 193, 194,
9176 0, 0, 195, 196, 197, 198, 199, 0, 200, 201,
9177 202, 0, 203, 204, 205, 0, 206, 207, 208, 209,
9178 210, 211, 212, 213, 214, 215, 216, 0, 217, 0,
9179 218, 219, 220, 221, 0, 222, 0, 223, 0, 0,
9180 0, 226, 227, 506, 0, 230, 0, 231, 0, 232,
9181 233, 234, 0, 235, 236, 237, 238, 239, 240, 241,
9182 0, 243, 244, 245, 246, 0, 247, 248, 249, 250,
9183 251, 252, 253, 0, 254, 0, 256, 257, 258, 259,
9184 260, 261, 262, 263, 0, 264, 0, 265, 0, 0,
9185 268, 0, 270, 271, 272, 273, 274, 275, 0, 0,
9186 276, 0, 278, 0, 0, 280, 281, 282, 283, 284,
9187 285, 286, 287, 507, 289, 290, 291, 292, 293, 294,
9188 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
9189 305, 306, 307, 0, 309, 310, 311, 312, 313, 0,
9190 314, 315, 0, 317, 0, 318, 319, 320, 321, 322,
9191 323, 0, 324, 325, 0, 0, 326, 327, 328, 0,
9192 0, 329, 330, 0, 332, 0, 334, 335, 336, 337,
9193 338, 339, 340, 341, 342, 343, 344, 0, 0, 0,
9194 0, 345, 346, 347, 0, 349, 350, 351, 352, 353,
9195 354, 0, 355, 356, 357, 358, 359, 360, 0, 361,
9196 362, 363, 364, 365, 366, 367, 368, 0, 369, 370,
9197 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
9198 381, 0, 382, 383, 0, 385, 386, 387, 388, 389,
9199 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
9200 0, 0, 400, 401, 402, 403, 404, 405, 406, 407,
9201 408, 409, 0, 411, 412, 413, 414, 0, 415, 416,
9202 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
9203 508, 428, 429, 430, 0, 431, 432, 0, 433, 0,
9204 435, 436, 437, 438, 439, 0, 440, 441, 0, 0,
9205 442, 443, 444, 445, 446, 0, 447, 448, 449, 450,
9206 451, 452, 453, 454, 0, 0, 455, 456, 457, 0,
9207 458, 459, 460, 461, 0, 462, 463, 464, 465, 466,
9208 467, 468, 0, 469, 0, 471, 472, 473, 474, 475,
9209 0, 0, 476, 0, 0, 477, 478, 479, 480, 481,
9210 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
9211 492, 493, 494, 495, 496, 497, 505, 0, 629, 0,
9212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9213 0, 0, 0, 0, 0, 110, 111, 112, 113, 114,
9214 115, 116, 117, 0, 118, 119, 120, 0, 0, 0,
9215 0, 0, 0, 0, 0, 0, 122, 123, 0, 124,
9216 125, 126, 0, 128, 129, 130, 131, 132, 0, 134,
9217 135, 0, 136, 137, 138, 139, 140, 141, 0, 0,
9218 142, 143, 144, 145, 146, 0, 147, 148, 149, 150,
9219 151, 0, 0, 0, 153, 154, 155, 156, 157, 158,
9220 0, 160, 161, 162, 0, 163, 164, 165, 166, 167,
9221 168, 0, 0, 170, 171, 172, 173, 174, 175, 176,
9222 177, 178, 179, 180, 181, 182, 0, 183, 0, 184,
9223 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
9224 194, 0, 0, 195, 196, 197, 198, 199, 0, 200,
9225 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
9226 209, 210, 211, 212, 213, 214, 215, 216, 0, 217,
9227 0, 218, 219, 220, 221, 0, 222, 0, 223, 0,
9228 0, 0, 226, 227, 506, 0, 230, 0, 231, 0,
9229 232, 233, 234, 0, 235, 236, 237, 238, 239, 240,
9230 241, 0, 243, 244, 245, 246, 0, 247, 248, 249,
9231 250, 251, 252, 253, 0, 254, 0, 256, 257, 258,
9232 259, 260, 261, 262, 263, 0, 264, 0, 265, 0,
9233 0, 268, 0, 270, 271, 272, 273, 274, 275, 0,
9234 0, 276, 0, 278, 0, 0, 280, 281, 282, 283,
9235 284, 285, 286, 287, 507, 289, 290, 291, 292, 293,
9236 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
9237 304, 305, 306, 307, 0, 309, 310, 311, 312, 313,
9238 0, 314, 315, 0, 317, 0, 318, 319, 320, 321,
9239 322, 323, 0, 324, 325, 0, 0, 326, 327, 328,
9240 0, 0, 329, 330, 0, 332, 0, 334, 335, 336,
9241 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
9242 0, 0, 345, 346, 347, 0, 349, 350, 351, 352,
9243 353, 354, 0, 355, 356, 357, 358, 359, 360, 0,
9244 361, 362, 363, 364, 365, 366, 367, 368, 0, 369,
9245 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
9246 380, 381, 0, 382, 383, 0, 385, 386, 387, 388,
9247 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
9248 399, 0, 0, 400, 401, 402, 403, 404, 405, 406,
9249 407, 408, 409, 0, 411, 412, 413, 414, 0, 415,
9250 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
9251 426, 508, 428, 429, 430, 0, 431, 432, 0, 433,
9252 0, 435, 436, 437, 438, 439, 0, 440, 441, 0,
9253 0, 442, 443, 444, 445, 446, 0, 447, 448, 449,
9254 450, 451, 452, 453, 454, 0, 0, 455, 456, 457,
9255 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
9256 466, 467, 468, 0, 469, 0, 471, 472, 473, 474,
9257 475, 0, 0, 476, 0, 0, 477, 478, 479, 480,
9258 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
9259 491, 492, 493, 494, 495, 496, 497, 505, 0, 0,
9260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9261 0, 0, 0, 0, 0, 0, 110, 111, 112, 113,
9262 114, 115, 116, 117, 636, 118, 119, 120, 0, 0,
9263 0, 0, 0, 0, 0, 0, 0, 122, 123, 0,
9264 124, 125, 126, 0, 128, 129, 130, 131, 132, 0,
9265 134, 135, 0, 136, 137, 138, 139, 140, 141, 0,
9266 0, 142, 143, 144, 145, 146, 0, 147, 148, 149,
9267 150, 151, 0, 0, 0, 153, 154, 155, 156, 157,
9268 158, 0, 160, 161, 162, 0, 163, 164, 165, 166,
9269 167, 168, 0, 0, 170, 171, 172, 173, 174, 175,
9270 176, 177, 178, 179, 180, 181, 182, 0, 183, 0,
9271 184, 185, 186, 187, 188, 189, 0, 190, 191, 192,
9272 193, 194, 0, 0, 195, 196, 197, 198, 199, 0,
9273 200, 201, 202, 0, 203, 204, 205, 0, 206, 207,
9274 208, 209, 210, 211, 212, 213, 214, 215, 216, 0,
9275 217, 0, 218, 219, 220, 221, 0, 222, 0, 223,
9276 0, 0, 0, 226, 227, 506, 0, 230, 0, 231,
9277 0, 232, 233, 234, 0, 235, 236, 237, 238, 239,
9278 240, 241, 0, 243, 244, 245, 246, 0, 247, 248,
9279 249, 250, 251, 252, 253, 0, 254, 0, 256, 257,
9280 258, 259, 260, 261, 262, 263, 0, 264, 0, 265,
9281 0, 0, 268, 0, 270, 271, 272, 273, 274, 275,
9282 0, 0, 276, 0, 278, 0, 0, 280, 281, 282,
9283 283, 284, 285, 286, 287, 507, 289, 290, 291, 292,
9284 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
9285 303, 304, 305, 306, 307, 0, 309, 310, 311, 312,
9286 313, 0, 314, 315, 0, 317, 0, 318, 319, 320,
9287 321, 322, 323, 0, 324, 325, 0, 0, 326, 327,
9288 328, 0, 0, 329, 330, 0, 332, 0, 334, 335,
9289 336, 337, 338, 339, 340, 341, 342, 343, 344, 0,
9290 0, 0, 0, 345, 346, 347, 0, 349, 350, 351,
9291 352, 353, 354, 0, 355, 356, 357, 358, 359, 360,
9292 0, 361, 362, 363, 364, 365, 366, 367, 368, 0,
9293 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
9294 379, 380, 381, 0, 382, 383, 0, 385, 386, 387,
9295 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
9296 398, 399, 0, 0, 400, 401, 402, 403, 404, 405,
9297 406, 407, 408, 409, 0, 411, 412, 413, 414, 0,
9298 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
9299 425, 426, 508, 428, 429, 430, 0, 431, 432, 0,
9300 433, 0, 435, 436, 437, 438, 439, 0, 637, 441,
9301 0, 0, 638, 443, 444, 445, 446, 0, 447, 448,
9302 449, 450, 451, 452, 453, 454, 0, 0, 455, 456,
9303 457, 0, 458, 459, 460, 461, 0, 462, 463, 464,
9304 465, 466, 467, 468, 0, 469, 0, 471, 472, 473,
9305 474, 475, 0, 0, 476, 0, 0, 477, 478, 479,
9306 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
9307 490, 491, 492, 493, 494, 495, 496, 497, 505, 0,
9308 527, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9309 0, 0, 0, 0, 0, 0, 0, 110, 111, 112,
9310 113, 114, 115, 116, 117, 0, 118, 119, 120, 0,
9311 0, 0, 0, 0, 0, 0, 0, 0, 122, 123,
9312 0, 124, 125, 126, 0, 128, 129, 130, 131, 132,
9313 0, 134, 135, 0, 136, 137, 138, 139, 140, 141,
9314 0, 0, 142, 143, 144, 145, 146, 0, 147, 148,
9315 149, 150, 151, 0, 0, 0, 153, 154, 155, 156,
9316 157, 158, 0, 160, 161, 162, 0, 163, 164, 165,
9317 166, 167, 168, 0, 0, 170, 171, 172, 173, 174,
9318 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
9319 0, 184, 185, 186, 187, 188, 189, 0, 190, 191,
9320 192, 193, 194, 0, 0, 195, 196, 197, 198, 199,
9321 0, 200, 201, 202, 0, 203, 204, 205, 0, 206,
9322 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
9323 0, 217, 0, 218, 219, 220, 221, 0, 222, 0,
9324 223, 0, 0, 0, 226, 227, 506, 0, 230, 0,
9325 231, 0, 232, 233, 234, 0, 235, 236, 237, 238,
9326 239, 240, 241, 0, 243, 244, 245, 246, 0, 247,
9327 248, 249, 250, 251, 252, 253, 0, 254, 0, 256,
9328 257, 258, 259, 260, 261, 262, 263, 0, 264, 0,
9329 265, 0, 0, 268, 0, 270, 271, 272, 273, 274,
9330 275, 0, 0, 276, 0, 278, 0, 0, 280, 281,
9331 282, 283, 284, 285, 286, 287, 507, 289, 290, 291,
9332 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
9333 302, 303, 304, 305, 306, 307, 0, 309, 310, 311,
9334 312, 313, 0, 314, 315, 0, 317, 0, 318, 319,
9335 320, 321, 322, 323, 0, 324, 325, 0, 0, 326,
9336 327, 328, 0, 0, 329, 330, 0, 332, 0, 334,
9337 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
9338 0, 0, 0, 0, 345, 346, 347, 0, 349, 350,
9339 351, 352, 353, 354, 0, 355, 356, 357, 358, 359,
9340 360, 0, 361, 362, 363, 364, 365, 366, 670, 368,
9341 0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
9342 378, 379, 380, 381, 0, 382, 383, 0, 385, 386,
9343 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
9344 397, 398, 399, 0, 0, 400, 401, 402, 403, 404,
9345 405, 406, 407, 408, 409, 0, 411, 412, 413, 414,
9346 0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
9347 424, 425, 426, 508, 428, 429, 430, 0, 431, 432,
9348 0, 433, 0, 435, 436, 437, 438, 439, 0, 440,
9349 441, 0, 0, 442, 443, 444, 445, 446, 0, 447,
9350 448, 449, 450, 451, 452, 453, 454, 0, 0, 455,
9351 456, 457, 0, 458, 459, 460, 461, 0, 462, 463,
9352 464, 465, 466, 467, 468, 0, 469, 0, 471, 472,
9353 473, 474, 475, 0, 0, 476, 0, 0, 477, 478,
9354 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
9355 489, 490, 491, 492, 493, 494, 495, 496, 497, 505,
9356 0, 527, 0, 0, 0, 0, 0, 0, 0, 0,
9357 0, 0, 0, 0, 0, 0, 0, 0, 110, 111,
9358 112, 113, 114, 115, 116, 117, 0, 118, 119, 120,
9359 0, 0, 0, 0, 0, 0, 0, 0, 0, 122,
9360 123, 0, 124, 125, 126, 0, 128, 129, 130, 131,
9361 132, 0, 134, 135, 0, 136, 137, 138, 139, 140,
9362 141, 0, 0, 142, 143, 144, 145, 146, 0, 147,
9363 148, 149, 150, 151, 0, 0, 0, 153, 154, 155,
9364 156, 157, 158, 0, 160, 161, 162, 0, 163, 164,
9365 165, 166, 167, 168, 0, 0, 170, 171, 172, 173,
9366 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
9367 183, 0, 184, 185, 186, 187, 188, 189, 0, 190,
9368 191, 192, 193, 194, 0, 0, 195, 196, 197, 198,
9369 199, 0, 200, 201, 202, 0, 203, 204, 205, 0,
9370 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
9371 216, 0, 217, 0, 218, 219, 220, 221, 0, 222,
9372 0, 223, 0, 0, 0, 226, 227, 506, 0, 230,
9373 0, 231, 0, 232, 233, 234, 0, 235, 236, 237,
9374 238, 239, 701, 241, 0, 243, 244, 245, 246, 0,
9375 247, 248, 249, 250, 251, 252, 253, 0, 254, 0,
9376 256, 257, 258, 259, 260, 261, 262, 263, 0, 264,
9377 0, 265, 0, 0, 268, 0, 270, 271, 272, 273,
9378 274, 275, 0, 0, 276, 0, 278, 0, 0, 280,
9379 281, 282, 283, 284, 285, 286, 287, 507, 289, 290,
9380 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
9381 301, 302, 303, 304, 305, 306, 307, 0, 309, 310,
9382 311, 312, 313, 0, 314, 315, 0, 317, 0, 318,
9383 319, 320, 321, 322, 323, 0, 324, 325, 0, 0,
9384 326, 327, 328, 0, 0, 329, 330, 0, 332, 0,
9385 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
9386 344, 0, 0, 0, 0, 345, 346, 347, 0, 349,
9387 350, 351, 352, 353, 354, 0, 355, 356, 357, 358,
9388 359, 360, 0, 361, 362, 363, 364, 365, 366, 367,
9389 368, 0, 369, 370, 371, 372, 373, 374, 375, 376,
9390 377, 378, 379, 380, 381, 0, 382, 383, 0, 385,
9391 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
9392 396, 397, 398, 399, 0, 0, 400, 401, 402, 403,
9393 404, 405, 406, 407, 408, 409, 0, 411, 412, 413,
9394 414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
9395 423, 424, 425, 426, 508, 428, 429, 430, 0, 431,
9396 432, 0, 433, 0, 435, 436, 437, 438, 439, 0,
9397 440, 441, 0, 0, 442, 443, 444, 445, 446, 0,
9398 447, 448, 449, 450, 451, 452, 453, 454, 0, 0,
9399 455, 456, 457, 0, 458, 459, 460, 461, 0, 462,
9400 463, 464, 465, 466, 467, 468, 0, 469, 0, 471,
9401 472, 473, 474, 475, 0, 0, 476, 0, 0, 477,
9402 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
9403 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
9404 505, 0, 527, 0, 0, 0, 0, 0, 0, 0,
9405 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
9406 111, 112, 113, 114, 115, 116, 117, 0, 118, 119,
9407 120, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9408 122, 123, 0, 124, 125, 126, 0, 128, 129, 130,
9409 131, 132, 0, 134, 135, 0, 136, 137, 138, 139,
9410 140, 141, 0, 0, 142, 143, 144, 145, 146, 0,
9411 147, 148, 149, 150, 151, 0, 0, 0, 153, 154,
9412 155, 156, 157, 158, 0, 160, 161, 162, 0, 163,
9413 164, 165, 166, 167, 168, 0, 0, 170, 171, 172,
9414 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
9415 0, 183, 0, 184, 185, 186, 187, 188, 189, 0,
9416 190, 191, 192, 193, 194, 0, 0, 195, 196, 197,
9417 198, 199, 0, 200, 201, 202, 0, 203, 204, 205,
9418 0, 206, 207, 208, 209, 210, 211, 212, 213, 214,
9419 215, 216, 0, 217, 0, 218, 219, 220, 221, 0,
9420 222, 0, 223, 0, 0, 0, 226, 227, 506, 0,
9421 230, 0, 231, 0, 232, 233, 234, 0, 235, 236,
9422 237, 238, 239, 704, 241, 0, 243, 244, 245, 246,
9423 0, 247, 248, 249, 250, 251, 252, 253, 0, 254,
9424 0, 256, 257, 258, 259, 260, 261, 262, 263, 0,
9425 264, 0, 265, 0, 0, 268, 0, 270, 271, 272,
9426 273, 274, 275, 0, 0, 276, 0, 278, 0, 0,
9427 280, 281, 282, 283, 284, 285, 286, 287, 507, 289,
9428 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
9429 300, 301, 302, 303, 304, 305, 306, 307, 0, 309,
9430 310, 311, 312, 313, 0, 314, 315, 0, 317, 0,
9431 318, 319, 320, 321, 322, 323, 0, 324, 325, 0,
9432 0, 326, 327, 328, 0, 0, 329, 330, 0, 332,
9433 0, 334, 335, 336, 337, 338, 339, 340, 341, 342,
9434 343, 344, 0, 0, 0, 0, 345, 346, 347, 0,
9435 349, 350, 351, 352, 353, 354, 0, 355, 356, 357,
9436 358, 359, 360, 0, 361, 362, 363, 364, 365, 366,
9437 367, 368, 0, 369, 370, 371, 372, 373, 374, 375,
9438 376, 377, 378, 379, 380, 381, 0, 382, 383, 0,
9439 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
9440 395, 396, 397, 398, 399, 0, 0, 400, 401, 402,
9441 403, 404, 405, 406, 407, 408, 409, 0, 411, 412,
9442 413, 414, 0, 415, 416, 417, 418, 419, 420, 421,
9443 422, 423, 424, 425, 426, 508, 428, 429, 430, 0,
9444 431, 432, 0, 433, 0, 435, 436, 437, 438, 439,
9445 0, 440, 441, 0, 0, 442, 443, 444, 445, 446,
9446 0, 447, 448, 449, 450, 451, 452, 453, 454, 0,
9447 0, 455, 456, 457, 0, 458, 459, 460, 461, 0,
9448 462, 463, 464, 465, 466, 467, 468, 0, 469, 0,
9449 471, 472, 473, 474, 475, 0, 0, 476, 0, 0,
9450 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
9451 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
9452 497, 505, 0, 527, 0, 0, 0, 0, 0, 0,
9453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9454 110, 111, 112, 113, 114, 115, 116, 117, 0, 118,
9455 119, 120, 0, 0, 0, 0, 0, 0, 0, 0,
9456 0, 122, 123, 0, 124, 125, 126, 0, 128, 129,
9457 130, 131, 132, 0, 134, 135, 0, 136, 137, 138,
9458 139, 140, 141, 0, 0, 142, 143, 144, 145, 146,
9459 0, 147, 148, 149, 150, 151, 0, 0, 0, 153,
9460 154, 155, 156, 157, 158, 0, 160, 161, 162, 0,
9461 163, 164, 165, 166, 167, 168, 0, 0, 170, 171,
9462 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
9463 182, 0, 183, 0, 184, 185, 186, 187, 188, 189,
9464 0, 190, 191, 192, 193, 194, 0, 0, 195, 196,
9465 197, 198, 199, 0, 200, 201, 202, 0, 203, 204,
9466 205, 0, 206, 207, 208, 209, 210, 211, 212, 213,
9467 214, 215, 216, 0, 217, 0, 218, 219, 220, 221,
9468 0, 222, 0, 223, 0, 0, 0, 226, 227, 506,
9469 0, 230, 0, 231, 0, 232, 233, 234, 0, 235,
9470 236, 237, 238, 239, 708, 241, 0, 243, 244, 245,
9471 246, 0, 247, 248, 249, 250, 251, 252, 253, 0,
9472 254, 0, 256, 257, 258, 259, 260, 261, 262, 263,
9473 0, 264, 0, 265, 0, 0, 268, 0, 270, 271,
9474 272, 273, 274, 275, 0, 0, 276, 0, 278, 0,
9475 0, 280, 281, 282, 283, 284, 285, 286, 287, 507,
9476 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
9477 299, 300, 301, 302, 303, 304, 305, 306, 307, 0,
9478 309, 310, 311, 312, 313, 0, 314, 315, 0, 317,
9479 0, 318, 319, 320, 321, 322, 323, 0, 324, 325,
9480 0, 0, 326, 327, 328, 0, 0, 329, 330, 0,
9481 332, 0, 334, 335, 336, 337, 338, 339, 340, 341,
9482 342, 343, 344, 0, 0, 0, 0, 345, 346, 347,
9483 0, 349, 350, 351, 352, 353, 354, 0, 355, 356,
9484 357, 358, 359, 360, 0, 361, 362, 363, 364, 365,
9485 366, 367, 368, 0, 369, 370, 371, 372, 373, 374,
9486 375, 376, 377, 378, 379, 380, 381, 0, 382, 383,
9487 0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
9488 394, 395, 396, 397, 398, 399, 0, 0, 400, 401,
9489 402, 403, 404, 405, 406, 407, 408, 409, 0, 411,
9490 412, 413, 414, 0, 415, 416, 417, 418, 419, 420,
9491 421, 422, 423, 424, 425, 426, 508, 428, 429, 430,
9492 0, 431, 432, 0, 433, 0, 435, 436, 437, 438,
9493 439, 0, 440, 441, 0, 0, 442, 443, 444, 445,
9494 446, 0, 447, 448, 449, 450, 451, 452, 453, 454,
9495 0, 0, 455, 456, 457, 0, 458, 459, 460, 461,
9496 0, 462, 463, 464, 465, 466, 467, 468, 0, 469,
9497 0, 471, 472, 473, 474, 475, 0, 0, 476, 0,
9498 0, 477, 478, 479, 480, 481, 482, 483, 484, 485,
9499 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
9500 496, 497, 505, 0, 527, 0, 0, 0, 0, 0,
9501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9502 0, 110, 111, 112, 113, 114, 115, 116, 117, 0,
9503 118, 119, 120, 0, 0, 0, 0, 0, 0, 0,
9504 0, 0, 122, 123, 0, 124, 125, 126, 0, 128,
9505 129, 130, 131, 132, 0, 134, 135, 0, 136, 137,
9506 138, 139, 140, 141, 0, 0, 142, 143, 144, 145,
9507 146, 0, 147, 148, 149, 150, 151, 0, 0, 0,
9508 153, 154, 155, 156, 157, 158, 0, 160, 161, 162,
9509 0, 163, 164, 165, 166, 167, 168, 0, 0, 170,
9510 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
9511 181, 182, 0, 183, 0, 184, 185, 186, 187, 188,
9512 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
9513 196, 197, 198, 199, 0, 200, 201, 202, 0, 203,
9514 204, 205, 0, 206, 207, 208, 209, 210, 211, 212,
9515 213, 214, 215, 216, 0, 217, 0, 218, 219, 220,
9516 221, 0, 222, 0, 223, 0, 0, 0, 226, 227,
9517 506, 0, 230, 0, 231, 0, 232, 233, 234, 0,
9518 235, 236, 237, 238, 239, 723, 241, 0, 243, 244,
9519 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
9520 0, 254, 0, 256, 257, 258, 259, 260, 261, 262,
9521 263, 0, 264, 0, 265, 0, 0, 268, 0, 270,
9522 271, 272, 273, 274, 275, 0, 0, 276, 0, 278,
9523 0, 0, 280, 281, 282, 283, 284, 285, 286, 287,
9524 507, 289, 290, 291, 292, 293, 294, 295, 296, 297,
9525 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
9526 0, 309, 310, 311, 312, 313, 0, 314, 315, 0,
9527 317, 0, 318, 319, 320, 321, 322, 323, 0, 324,
9528 325, 0, 0, 326, 327, 328, 0, 0, 329, 330,
9529 0, 332, 0, 334, 335, 336, 337, 338, 339, 340,
9530 341, 342, 343, 344, 0, 0, 0, 0, 345, 346,
9531 347, 0, 349, 350, 351, 352, 353, 354, 0, 355,
9532 356, 357, 358, 359, 360, 0, 361, 362, 363, 364,
9533 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
9534 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
9535 383, 0, 385, 386, 387, 388, 389, 390, 391, 392,
9536 393, 394, 395, 396, 397, 398, 399, 0, 0, 400,
9537 401, 402, 403, 404, 405, 406, 407, 408, 409, 0,
9538 411, 412, 413, 414, 0, 415, 416, 417, 418, 419,
9539 420, 421, 422, 423, 424, 425, 426, 508, 428, 429,
9540 430, 0, 431, 432, 0, 433, 0, 435, 436, 437,
9541 438, 439, 0, 440, 441, 0, 0, 442, 443, 444,
9542 445, 446, 0, 447, 448, 449, 450, 451, 452, 453,
9543 454, 0, 0, 455, 456, 457, 0, 458, 459, 460,
9544 461, 0, 462, 463, 464, 465, 466, 467, 468, 0,
9545 469, 0, 471, 472, 473, 474, 475, 0, 0, 476,
9546 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
9547 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
9548 495, 496, 497, 505, 0, 527, 0, 0, 0, 0,
9549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9550 0, 0, 110, 111, 112, 113, 114, 115, 116, 117,
9551 0, 118, 119, 120, 0, 0, 0, 0, 0, 0,
9552 0, 0, 0, 122, 123, 0, 124, 125, 126, 0,
9553 128, 129, 130, 131, 132, 0, 134, 135, 0, 136,
9554 137, 138, 139, 140, 141, 0, 0, 142, 143, 144,
9555 145, 146, 0, 147, 148, 149, 150, 151, 0, 0,
9556 0, 153, 154, 155, 156, 157, 158, 0, 160, 161,
9557 162, 0, 163, 164, 165, 166, 167, 168, 0, 0,
9558 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
9559 180, 181, 182, 0, 183, 0, 184, 185, 186, 187,
9560 188, 189, 0, 190, 191, 192, 193, 194, 0, 0,
9561 195, 196, 197, 198, 199, 0, 200, 201, 202, 0,
9562 203, 204, 205, 0, 206, 207, 208, 209, 210, 211,
9563 212, 213, 214, 215, 216, 0, 217, 0, 218, 219,
9564 220, 221, 0, 222, 0, 223, 0, 0, 0, 226,
9565 227, 506, 0, 230, 0, 231, 0, 232, 233, 234,
9566 0, 235, 236, 237, 238, 239, 823, 241, 0, 243,
9567 244, 245, 246, 0, 247, 248, 249, 250, 251, 252,
9568 253, 0, 254, 0, 256, 257, 258, 259, 260, 261,
9569 262, 263, 0, 264, 0, 265, 0, 0, 268, 0,
9570 270, 271, 272, 273, 274, 275, 0, 0, 276, 0,
9571 278, 0, 0, 280, 281, 282, 283, 284, 285, 286,
9572 287, 507, 289, 290, 291, 292, 293, 294, 295, 296,
9573 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
9574 307, 0, 309, 310, 311, 312, 313, 0, 314, 315,
9575 0, 317, 0, 318, 319, 320, 321, 322, 323, 0,
9576 324, 325, 0, 0, 326, 327, 328, 0, 0, 329,
9577 330, 0, 332, 0, 334, 335, 336, 337, 338, 339,
9578 340, 341, 342, 343, 344, 0, 0, 0, 0, 345,
9579 346, 347, 0, 349, 350, 351, 352, 353, 354, 0,
9580 355, 356, 357, 358, 359, 360, 0, 361, 362, 363,
9581 364, 365, 366, 367, 368, 0, 369, 370, 371, 372,
9582 373, 374, 375, 376, 377, 378, 379, 380, 381, 0,
9583 382, 383, 0, 385, 386, 387, 388, 389, 390, 391,
9584 392, 393, 394, 395, 396, 397, 398, 399, 0, 0,
9585 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
9586 0, 411, 412, 413, 414, 0, 415, 416, 417, 418,
9587 419, 420, 421, 422, 423, 424, 425, 426, 508, 428,
9588 429, 430, 0, 431, 432, 0, 433, 0, 435, 436,
9589 437, 438, 439, 0, 440, 441, 0, 0, 442, 443,
9590 444, 445, 446, 0, 447, 448, 449, 450, 451, 452,
9591 453, 454, 0, 0, 455, 456, 457, 0, 458, 459,
9592 460, 461, 0, 462, 463, 464, 465, 466, 467, 468,
9593 0, 469, 0, 471, 472, 473, 474, 475, 0, 0,
9594 476, 0, 0, 477, 478, 479, 480, 481, 482, 483,
9595 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
9596 494, 495, 496, 497, 505, 0, 527, 0, 0, 0,
9597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9598 0, 0, 0, 110, 111, 112, 113, 114, 115, 116,
9599 117, 0, 118, 119, 120, 0, 0, 0, 0, 0,
9600 0, 0, 0, 0, 122, 123, 0, 124, 125, 126,
9601 0, 128, 129, 130, 131, 132, 0, 134, 135, 0,
9602 136, 137, 138, 139, 140, 141, 0, 0, 142, 143,
9603 144, 145, 146, 0, 147, 148, 149, 150, 151, 0,
9604 0, 0, 153, 154, 155, 156, 157, 158, 0, 160,
9605 161, 162, 0, 163, 164, 165, 166, 167, 168, 0,
9606 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
9607 179, 180, 181, 182, 0, 183, 0, 184, 185, 186,
9608 187, 188, 189, 0, 190, 191, 192, 193, 194, 0,
9609 0, 195, 196, 197, 198, 199, 0, 200, 201, 202,
9610 0, 203, 204, 205, 0, 206, 207, 208, 209, 210,
9611 211, 212, 213, 214, 215, 216, 0, 217, 0, 218,
9612 219, 220, 221, 0, 222, 0, 223, 0, 0, 0,
9613 226, 227, 506, 0, 230, 0, 231, 0, 232, 233,
9614 234, 0, 235, 236, 237, 238, 239, 826, 241, 0,
9615 243, 244, 245, 246, 0, 247, 248, 249, 250, 251,
9616 252, 253, 0, 254, 0, 256, 257, 258, 259, 260,
9617 261, 262, 263, 0, 264, 0, 265, 0, 0, 268,
9618 0, 270, 271, 272, 273, 274, 275, 0, 0, 276,
9619 0, 278, 0, 0, 280, 281, 282, 283, 284, 285,
9620 286, 287, 507, 289, 290, 291, 292, 293, 294, 295,
9621 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
9622 306, 307, 0, 309, 310, 311, 312, 313, 0, 314,
9623 315, 0, 317, 0, 318, 319, 320, 321, 322, 323,
9624 0, 324, 325, 0, 0, 326, 327, 328, 0, 0,
9625 329, 330, 0, 332, 0, 334, 335, 336, 337, 338,
9626 339, 340, 341, 342, 343, 344, 0, 0, 0, 0,
9627 345, 346, 347, 0, 349, 350, 351, 352, 353, 354,
9628 0, 355, 356, 357, 358, 359, 360, 0, 361, 362,
9629 363, 364, 365, 366, 367, 368, 0, 369, 370, 371,
9630 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
9631 0, 382, 383, 0, 385, 386, 387, 388, 389, 390,
9632 391, 392, 393, 394, 395, 396, 397, 398, 399, 0,
9633 0, 400, 401, 402, 403, 404, 405, 406, 407, 408,
9634 409, 0, 411, 412, 413, 414, 0, 415, 416, 417,
9635 418, 419, 420, 421, 422, 423, 424, 425, 426, 508,
9636 428, 429, 430, 0, 431, 432, 0, 433, 0, 435,
9637 436, 437, 438, 439, 0, 440, 441, 0, 0, 442,
9638 443, 444, 445, 446, 0, 447, 448, 449, 450, 451,
9639 452, 453, 454, 0, 0, 455, 456, 457, 0, 458,
9640 459, 460, 461, 0, 462, 463, 464, 465, 466, 467,
9641 468, 0, 469, 0, 471, 472, 473, 474, 475, 0,
9642 0, 476, 0, 0, 477, 478, 479, 480, 481, 482,
9643 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
9644 493, 494, 495, 496, 497, 505, 0, 0, 0, 0,
9645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9646 0, 0, 0, 0, 110, 111, 112, 113, 114, 115,
9647 116, 117, 0, 118, 119, 120, 0, 0, 0, 0,
9648 0, 0, 947, 0, 0, 122, 123, 0, 124, 125,
9649 126, 0, 128, 129, 130, 131, 132, 0, 134, 135,
9650 0, 136, 137, 138, 139, 140, 141, 0, 0, 142,
9651 143, 144, 145, 146, 0, 147, 148, 149, 150, 151,
9652 0, 0, 0, 153, 154, 155, 156, 157, 158, 0,
9653 160, 161, 162, 0, 163, 164, 165, 166, 167, 168,
9654 0, 0, 170, 171, 172, 173, 174, 175, 176, 177,
9655 178, 179, 180, 181, 182, 0, 183, 0, 184, 185,
9656 186, 187, 188, 189, 0, 190, 191, 192, 193, 194,
9657 0, 0, 195, 196, 197, 198, 199, 0, 200, 201,
9658 202, 0, 203, 204, 205, 0, 206, 207, 208, 209,
9659 210, 211, 212, 213, 214, 215, 216, 0, 217, 0,
9660 218, 219, 220, 221, 0, 222, 0, 223, 0, 0,
9661 0, 226, 227, 506, 0, 230, 0, 231, 0, 232,
9662 233, 234, 0, 235, 236, 237, 238, 239, 240, 241,
9663 0, 243, 244, 245, 246, 0, 247, 248, 249, 250,
9664 251, 252, 253, 0, 254, 0, 256, 257, 258, 259,
9665 260, 261, 262, 263, 0, 264, 0, 265, 0, 0,
9666 268, 0, 270, 271, 272, 273, 274, 275, 0, 0,
9667 276, 0, 278, 0, 0, 280, 281, 282, 283, 284,
9668 285, 286, 287, 507, 289, 290, 291, 292, 293, 294,
9669 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
9670 305, 306, 307, 0, 309, 310, 311, 312, 313, 0,
9671 314, 315, 0, 317, 0, 318, 319, 320, 321, 322,
9672 323, 0, 324, 325, 0, 0, 326, 327, 328, 0,
9673 0, 329, 330, 0, 332, 0, 334, 335, 336, 337,
9674 338, 339, 340, 341, 342, 343, 344, 0, 0, 0,
9675 0, 345, 346, 347, 0, 349, 350, 351, 352, 353,
9676 354, 0, 355, 356, 357, 358, 359, 360, 0, 361,
9677 362, 363, 364, 365, 366, 367, 368, 0, 369, 370,
9678 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
9679 381, 0, 382, 383, 0, 385, 386, 387, 388, 389,
9680 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
9681 0, 0, 400, 401, 402, 403, 404, 405, 406, 407,
9682 408, 409, 0, 411, 412, 413, 414, 0, 415, 416,
9683 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
9684 508, 428, 429, 430, 0, 431, 432, 0, 433, 0,
9685 435, 436, 437, 438, 439, 0, 440, 441, 0, 0,
9686 442, 443, 444, 445, 446, 0, 447, 448, 449, 450,
9687 451, 452, 453, 454, 0, 0, 455, 456, 457, 0,
9688 458, 459, 460, 461, 0, 462, 463, 464, 465, 466,
9689 467, 468, 0, 469, 0, 471, 472, 473, 474, 475,
9690 0, 0, 476, 0, 0, 477, 478, 479, 480, 481,
9691 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
9692 492, 493, 494, 495, 496, 497, 505, 0, 0, 0,
9693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9694 0, 0, 0, 0, 0, 110, 111, 112, 113, 114,
9695 115, 116, 117, 0, 118, 119, 120, 0, 0, 0,
9696 0, 0, 0, 970, 0, 0, 122, 123, 0, 124,
9697 125, 126, 0, 128, 129, 130, 131, 132, 0, 134,
9698 135, 0, 136, 137, 138, 139, 140, 141, 0, 0,
9699 142, 143, 144, 145, 146, 0, 147, 148, 149, 150,
9700 151, 0, 0, 0, 153, 154, 155, 156, 157, 158,
9701 0, 160, 161, 162, 0, 163, 164, 165, 166, 167,
9702 168, 0, 0, 170, 171, 172, 173, 174, 175, 176,
9703 177, 178, 179, 180, 181, 182, 0, 183, 0, 184,
9704 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
9705 194, 0, 0, 195, 196, 197, 198, 199, 0, 200,
9706 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
9707 209, 210, 211, 212, 213, 214, 215, 216, 0, 217,
9708 0, 218, 219, 220, 221, 0, 222, 0, 223, 0,
9709 0, 0, 226, 227, 506, 0, 230, 0, 231, 0,
9710 232, 233, 234, 0, 235, 236, 237, 238, 239, 240,
9711 241, 0, 243, 244, 245, 246, 0, 247, 248, 249,
9712 250, 251, 252, 253, 0, 254, 0, 256, 257, 258,
9713 259, 260, 261, 262, 263, 0, 264, 0, 265, 0,
9714 0, 268, 0, 270, 271, 272, 273, 274, 275, 0,
9715 0, 276, 0, 278, 0, 0, 280, 281, 282, 283,
9716 284, 285, 286, 287, 507, 289, 290, 291, 292, 293,
9717 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
9718 304, 305, 306, 307, 0, 309, 310, 311, 312, 313,
9719 0, 314, 315, 0, 317, 0, 318, 319, 320, 321,
9720 322, 323, 0, 324, 325, 0, 0, 326, 327, 328,
9721 0, 0, 329, 330, 0, 332, 0, 334, 335, 336,
9722 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
9723 0, 0, 345, 346, 347, 0, 349, 350, 351, 352,
9724 353, 354, 0, 355, 356, 357, 358, 359, 360, 0,
9725 361, 362, 363, 364, 365, 366, 367, 368, 0, 369,
9726 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
9727 380, 381, 0, 382, 383, 0, 385, 386, 387, 388,
9728 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
9729 399, 0, 0, 400, 401, 402, 403, 404, 405, 406,
9730 407, 408, 409, 0, 411, 412, 413, 414, 0, 415,
9731 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
9732 426, 508, 428, 429, 430, 0, 431, 432, 0, 433,
9733 0, 435, 436, 437, 438, 439, 0, 440, 441, 0,
9734 0, 442, 443, 444, 445, 446, 0, 447, 448, 449,
9735 450, 451, 452, 453, 454, 0, 0, 455, 456, 457,
9736 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
9737 466, 467, 468, 0, 469, 0, 471, 472, 473, 474,
9738 475, 0, 0, 476, 0, 0, 477, 478, 479, 480,
9739 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
9740 491, 492, 493, 494, 495, 496, 497, 505, 0, 527,
9741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9742 0, 0, 0, 0, 0, 0, 110, 111, 112, 113,
9743 114, 115, 116, 117, 0, 118, 119, 120, 0, 0,
9744 0, 0, 0, 0, 0, 0, 0, 122, 123, 0,
9745 124, 125, 126, 0, 128, 129, 130, 131, 132, 0,
9746 134, 135, 0, 136, 137, 138, 139, 140, 141, 0,
9747 0, 142, 143, 144, 145, 146, 0, 147, 148, 149,
9748 150, 151, 0, 0, 0, 153, 154, 155, 156, 157,
9749 158, 0, 160, 161, 162, 0, 163, 164, 165, 166,
9750 167, 168, 0, 0, 170, 171, 172, 173, 174, 175,
9751 176, 177, 178, 179, 180, 181, 182, 0, 183, 0,
9752 184, 185, 186, 187, 188, 189, 0, 190, 191, 192,
9753 193, 194, 0, 0, 195, 196, 197, 198, 199, 0,
9754 200, 201, 202, 0, 203, 204, 205, 0, 206, 207,
9755 208, 209, 210, 211, 212, 213, 214, 215, 216, 0,
9756 217, 0, 218, 219, 220, 221, 0, 222, 0, 223,
9757 0, 0, 0, 226, 227, 506, 0, 230, 0, 231,
9758 0, 232, 233, 234, 0, 235, 236, 237, 238, 239,
9759 1308, 241, 0, 243, 244, 245, 246, 0, 247, 248,
9760 249, 250, 251, 252, 253, 0, 254, 0, 256, 257,
9761 258, 259, 260, 261, 262, 263, 0, 264, 0, 265,
9762 0, 0, 268, 0, 270, 271, 272, 273, 274, 275,
9763 0, 0, 276, 0, 278, 0, 0, 280, 281, 282,
9764 283, 284, 285, 286, 287, 507, 289, 290, 291, 292,
9765 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
9766 303, 304, 305, 306, 307, 0, 309, 310, 311, 312,
9767 313, 0, 314, 315, 0, 317, 0, 318, 319, 320,
9768 321, 322, 323, 0, 324, 325, 0, 0, 326, 327,
9769 328, 0, 0, 329, 330, 0, 332, 0, 334, 335,
9770 336, 337, 338, 339, 340, 341, 342, 343, 344, 0,
9771 0, 0, 0, 345, 346, 347, 0, 349, 350, 351,
9772 352, 353, 354, 0, 355, 356, 357, 358, 359, 360,
9773 0, 361, 362, 363, 364, 365, 366, 367, 368, 0,
9774 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
9775 379, 380, 381, 0, 382, 383, 0, 385, 386, 387,
9776 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
9777 398, 399, 0, 0, 400, 401, 402, 403, 404, 405,
9778 406, 407, 408, 409, 0, 411, 412, 413, 414, 0,
9779 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
9780 425, 426, 508, 428, 429, 430, 0, 431, 432, 0,
9781 433, 0, 435, 436, 437, 438, 439, 0, 440, 441,
9782 0, 0, 442, 443, 444, 445, 446, 0, 447, 448,
9783 449, 450, 451, 452, 453, 454, 0, 0, 455, 456,
9784 457, 0, 458, 459, 460, 461, 0, 462, 463, 464,
9785 465, 466, 467, 468, 0, 469, 0, 471, 472, 473,
9786 474, 475, 0, 0, 476, 0, 0, 477, 478, 479,
9787 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
9788 490, 491, 492, 493, 494, 495, 496, 497, 505, 0,
9789 527, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9790 0, 0, 0, 0, 0, 0, 0, 110, 111, 112,
9791 113, 114, 115, 116, 117, 0, 118, 119, 120, 0,
9792 0, 0, 0, 0, 0, 0, 0, 0, 122, 123,
9793 0, 124, 125, 126, 0, 128, 129, 130, 131, 132,
9794 0, 134, 135, 0, 136, 137, 138, 139, 140, 141,
9795 0, 0, 142, 143, 144, 145, 146, 0, 147, 148,
9796 149, 150, 151, 0, 0, 0, 153, 154, 155, 156,
9797 157, 158, 0, 160, 161, 162, 0, 163, 164, 165,
9798 166, 167, 168, 0, 0, 170, 171, 172, 173, 174,
9799 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
9800 0, 184, 185, 186, 187, 188, 189, 0, 190, 191,
9801 192, 193, 194, 0, 0, 195, 196, 197, 198, 199,
9802 0, 200, 201, 202, 0, 203, 204, 205, 0, 206,
9803 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
9804 0, 217, 0, 218, 219, 220, 221, 0, 222, 0,
9805 223, 0, 0, 0, 226, 227, 506, 0, 230, 0,
9806 231, 0, 232, 233, 234, 0, 235, 236, 237, 238,
9807 239, 1310, 241, 0, 243, 244, 245, 246, 0, 247,
9808 248, 249, 250, 251, 252, 253, 0, 254, 0, 256,
9809 257, 258, 259, 260, 261, 262, 263, 0, 264, 0,
9810 265, 0, 0, 268, 0, 270, 271, 272, 273, 274,
9811 275, 0, 0, 276, 0, 278, 0, 0, 280, 281,
9812 282, 283, 284, 285, 286, 287, 507, 289, 290, 291,
9813 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
9814 302, 303, 304, 305, 306, 307, 0, 309, 310, 311,
9815 312, 313, 0, 314, 315, 0, 317, 0, 318, 319,
9816 320, 321, 322, 323, 0, 324, 325, 0, 0, 326,
9817 327, 328, 0, 0, 329, 330, 0, 332, 0, 334,
9818 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
9819 0, 0, 0, 0, 345, 346, 347, 0, 349, 350,
9820 351, 352, 353, 354, 0, 355, 356, 357, 358, 359,
9821 360, 0, 361, 362, 363, 364, 365, 366, 367, 368,
9822 0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
9823 378, 379, 380, 381, 0, 382, 383, 0, 385, 386,
9824 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
9825 397, 398, 399, 0, 0, 400, 401, 402, 403, 404,
9826 405, 406, 407, 408, 409, 0, 411, 412, 413, 414,
9827 0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
9828 424, 425, 426, 508, 428, 429, 430, 0, 431, 432,
9829 0, 433, 0, 435, 436, 437, 438, 439, 0, 440,
9830 441, 0, 0, 442, 443, 444, 445, 446, 0, 447,
9831 448, 449, 450, 451, 452, 453, 454, 0, 0, 455,
9832 456, 457, 0, 458, 459, 460, 461, 0, 462, 463,
9833 464, 465, 466, 467, 468, 0, 469, 0, 471, 472,
9834 473, 474, 475, 0, 0, 476, 0, 0, 477, 478,
9835 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
9836 489, 490, 491, 492, 493, 494, 495, 496, 497, 505,
9837 0, 527, 0, 0, 0, 0, 0, 0, 0, 0,
9838 0, 0, 0, 0, 0, 0, 0, 0, 110, 111,
9839 112, 113, 114, 115, 116, 117, 0, 118, 119, 120,
9840 0, 0, 0, 0, 0, 0, 0, 0, 0, 122,
9841 123, 0, 124, 125, 126, 0, 128, 129, 130, 131,
9842 132, 0, 134, 135, 0, 136, 137, 138, 139, 140,
9843 141, 0, 0, 142, 143, 144, 145, 146, 0, 147,
9844 148, 149, 150, 151, 0, 0, 0, 153, 154, 155,
9845 156, 157, 158, 0, 160, 161, 162, 0, 163, 164,
9846 165, 166, 167, 168, 0, 0, 170, 171, 172, 173,
9847 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
9848 183, 0, 184, 185, 186, 187, 188, 189, 0, 190,
9849 191, 192, 193, 194, 0, 0, 195, 196, 197, 198,
9850 199, 0, 200, 201, 202, 0, 203, 204, 205, 0,
9851 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
9852 216, 0, 217, 0, 218, 219, 220, 221, 0, 222,
9853 0, 223, 0, 0, 0, 226, 227, 506, 0, 230,
9854 0, 231, 0, 232, 233, 234, 0, 235, 236, 237,
9855 238, 239, 1313, 241, 0, 243, 244, 245, 246, 0,
9856 247, 248, 249, 250, 251, 252, 253, 0, 254, 0,
9857 256, 257, 258, 259, 260, 261, 262, 263, 0, 264,
9858 0, 265, 0, 0, 268, 0, 270, 271, 272, 273,
9859 274, 275, 0, 0, 276, 0, 278, 0, 0, 280,
9860 281, 282, 283, 284, 285, 286, 287, 507, 289, 290,
9861 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
9862 301, 302, 303, 304, 305, 306, 307, 0, 309, 310,
9863 311, 312, 313, 0, 314, 315, 0, 317, 0, 318,
9864 319, 320, 321, 322, 323, 0, 324, 325, 0, 0,
9865 326, 327, 328, 0, 0, 329, 330, 0, 332, 0,
9866 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
9867 344, 0, 0, 0, 0, 345, 346, 347, 0, 349,
9868 350, 351, 352, 353, 354, 0, 355, 356, 357, 358,
9869 359, 360, 0, 361, 362, 363, 364, 365, 366, 367,
9870 368, 0, 369, 370, 371, 372, 373, 374, 375, 376,
9871 377, 378, 379, 380, 381, 0, 382, 383, 0, 385,
9872 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
9873 396, 397, 398, 399, 0, 0, 400, 401, 402, 403,
9874 404, 405, 406, 407, 408, 409, 0, 411, 412, 413,
9875 414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
9876 423, 424, 425, 426, 508, 428, 429, 430, 0, 431,
9877 432, 0, 433, 0, 435, 436, 437, 438, 439, 0,
9878 440, 441, 0, 0, 442, 443, 444, 445, 446, 0,
9879 447, 448, 449, 450, 451, 452, 453, 454, 0, 0,
9880 455, 456, 457, 0, 458, 459, 460, 461, 0, 462,
9881 463, 464, 465, 466, 467, 468, 0, 469, 0, 471,
9882 472, 473, 474, 475, 0, 0, 476, 0, 0, 477,
9883 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
9884 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
9885 505, 0, 527, 0, 0, 0, 0, 0, 0, 0,
9886 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
9887 111, 112, 113, 114, 115, 116, 117, 0, 118, 119,
9888 120, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9889 122, 123, 0, 124, 125, 126, 0, 128, 129, 130,
9890 131, 132, 0, 134, 135, 0, 136, 137, 138, 139,
9891 140, 141, 0, 0, 142, 143, 144, 145, 146, 0,
9892 147, 148, 149, 150, 151, 0, 0, 0, 153, 154,
9893 155, 156, 157, 158, 0, 160, 161, 162, 0, 163,
9894 164, 165, 166, 167, 168, 0, 0, 170, 171, 172,
9895 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
9896 0, 183, 0, 184, 185, 186, 187, 188, 189, 0,
9897 190, 191, 192, 193, 194, 0, 0, 195, 196, 197,
9898 198, 199, 0, 200, 201, 202, 0, 203, 204, 205,
9899 0, 206, 207, 208, 209, 210, 211, 212, 213, 214,
9900 215, 216, 0, 217, 0, 218, 219, 220, 221, 0,
9901 222, 0, 223, 0, 0, 0, 226, 227, 506, 0,
9902 230, 0, 231, 0, 232, 233, 234, 0, 235, 236,
9903 237, 238, 239, 1315, 241, 0, 243, 244, 245, 246,
9904 0, 247, 248, 249, 250, 251, 252, 253, 0, 254,
9905 0, 256, 257, 258, 259, 260, 261, 262, 263, 0,
9906 264, 0, 265, 0, 0, 268, 0, 270, 271, 272,
9907 273, 274, 275, 0, 0, 276, 0, 278, 0, 0,
9908 280, 281, 282, 283, 284, 285, 286, 287, 507, 289,
9909 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
9910 300, 301, 302, 303, 304, 305, 306, 307, 0, 309,
9911 310, 311, 312, 313, 0, 314, 315, 0, 317, 0,
9912 318, 319, 320, 321, 322, 323, 0, 324, 325, 0,
9913 0, 326, 327, 328, 0, 0, 329, 330, 0, 332,
9914 0, 334, 335, 336, 337, 338, 339, 340, 341, 342,
9915 343, 344, 0, 0, 0, 0, 345, 346, 347, 0,
9916 349, 350, 351, 352, 353, 354, 0, 355, 356, 357,
9917 358, 359, 360, 0, 361, 362, 363, 364, 365, 366,
9918 367, 368, 0, 369, 370, 371, 372, 373, 374, 375,
9919 376, 377, 378, 379, 380, 381, 0, 382, 383, 0,
9920 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
9921 395, 396, 397, 398, 399, 0, 0, 400, 401, 402,
9922 403, 404, 405, 406, 407, 408, 409, 0, 411, 412,
9923 413, 414, 0, 415, 416, 417, 418, 419, 420, 421,
9924 422, 423, 424, 425, 426, 508, 428, 429, 430, 0,
9925 431, 432, 0, 433, 0, 435, 436, 437, 438, 439,
9926 0, 440, 441, 0, 0, 442, 443, 444, 445, 446,
9927 0, 447, 448, 449, 450, 451, 452, 453, 454, 0,
9928 0, 455, 456, 457, 0, 458, 459, 460, 461, 0,
9929 462, 463, 464, 465, 466, 467, 468, 0, 469, 0,
9930 471, 472, 473, 474, 475, 0, 0, 476, 0, 0,
9931 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
9932 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
9933 497, 505, 0, 527, 0, 0, 0, 0, 0, 0,
9934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9935 110, 111, 112, 113, 114, 115, 116, 117, 0, 118,
9936 119, 120, 0, 0, 0, 0, 0, 0, 0, 0,
9937 0, 122, 123, 0, 124, 125, 126, 0, 128, 129,
9938 130, 131, 132, 0, 134, 135, 0, 136, 137, 138,
9939 139, 140, 141, 0, 0, 142, 143, 144, 145, 146,
9940 0, 147, 148, 149, 150, 151, 0, 0, 0, 153,
9941 154, 155, 156, 157, 158, 0, 160, 161, 162, 0,
9942 163, 164, 165, 166, 167, 168, 0, 0, 170, 171,
9943 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
9944 182, 0, 183, 0, 184, 185, 186, 187, 188, 189,
9945 0, 190, 191, 192, 193, 194, 0, 0, 195, 196,
9946 197, 198, 199, 0, 200, 201, 202, 0, 203, 204,
9947 205, 0, 206, 207, 208, 209, 210, 211, 212, 213,
9948 214, 215, 216, 0, 217, 0, 218, 219, 220, 221,
9949 0, 222, 0, 223, 0, 0, 0, 226, 227, 506,
9950 0, 230, 0, 231, 0, 232, 233, 234, 0, 235,
9951 236, 237, 238, 239, 2139, 241, 0, 243, 244, 245,
9952 246, 0, 247, 248, 249, 250, 251, 252, 253, 0,
9953 254, 0, 256, 257, 258, 259, 260, 261, 262, 263,
9954 0, 264, 0, 265, 0, 0, 268, 0, 270, 271,
9955 272, 273, 274, 275, 0, 0, 276, 0, 278, 0,
9956 0, 280, 281, 282, 283, 284, 285, 286, 287, 507,
9957 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
9958 299, 300, 301, 302, 303, 304, 305, 306, 307, 0,
9959 309, 310, 311, 312, 313, 0, 314, 315, 0, 317,
9960 0, 318, 319, 320, 321, 322, 323, 0, 324, 325,
9961 0, 0, 326, 327, 328, 0, 0, 329, 330, 0,
9962 332, 0, 334, 335, 336, 337, 338, 339, 340, 341,
9963 342, 343, 344, 0, 0, 0, 0, 345, 346, 347,
9964 0, 349, 350, 351, 352, 353, 354, 0, 355, 356,
9965 357, 358, 359, 360, 0, 361, 362, 363, 364, 365,
9966 366, 367, 368, 0, 369, 370, 371, 372, 373, 374,
9967 375, 376, 377, 378, 379, 380, 381, 0, 382, 383,
9968 0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
9969 394, 395, 396, 397, 398, 399, 0, 0, 400, 401,
9970 402, 403, 404, 405, 406, 407, 408, 409, 0, 411,
9971 412, 413, 414, 0, 415, 416, 417, 418, 419, 420,
9972 421, 422, 423, 424, 425, 426, 508, 428, 429, 430,
9973 0, 431, 432, 0, 433, 0, 435, 436, 437, 438,
9974 439, 0, 440, 441, 0, 0, 442, 443, 444, 445,
9975 446, 0, 447, 448, 449, 450, 451, 452, 453, 454,
9976 0, 0, 455, 456, 457, 0, 458, 459, 460, 461,
9977 0, 462, 463, 464, 465, 466, 467, 468, 0, 469,
9978 0, 471, 472, 473, 474, 475, 0, 0, 476, 0,
9979 0, 477, 478, 479, 480, 481, 482, 483, 484, 485,
9980 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
9981 496, 497, 745, 0, 0, 0, 0, 0, 0, 0,
9982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9983 0, 110, 111, 112, 113, 114, 115, 116, 117, 0,
9984 118, 119, 120, 0, 0, 0, 746, 0, 0, -756,
9985 0, 747, 122, 123, 0, 124, 125, 126, 748, 128,
9986 129, 130, 0, 749, 750, 751, 752, 0, 136, 137,
9987 138, 139, 140, 141, 0, 0, 142, 143, 753, 754,
9988 146, 0, 147, 148, 149, 150, 0, 0, 755, 0,
9989 756, 154, 155, 156, 157, 158, 757, 160, 161, 162,
9990 0, 163, 164, 165, 166, 167, 168, 0, 758, 170,
9991 171, 172, 173, 174, 175, 176, 177, 178, 179, 759,
9992 760, 182, 0, 183, 0, 184, 185, 186, 187, 188,
9993 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
9994 196, 761, 198, 199, 0, 200, 201, 202, 0, 203,
9995 204, 205, 0, 206, 207, 208, 209, 0, 211, 212,
9996 213, 214, 215, 0, 0, 217, 0, 218, 219, 762,
9997 221, 0, 222, 0, 223, 763, 0, 764, 226, 227,
9998 -756, 765, 230, 0, 231, 0, 0, 0, 234, 0,
9999 235, 236, 237, 238, 239, 240, 241, 767, 243, 244,
10000 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
10001 0, 254, 768, 0, 257, 258, 259, 260, 261, 769,
10002 770, 0, 771, 0, 265, 772, 773, 268, 774, 270,
10003 271, 272, 273, 274, 275, 0, 0, 276, 775, 278,
10004 776, 0, 280, 281, 282, 283, 284, 285, 286, 287,
10005 777, 289, 290, 291, 292, 293, 294, 295, 296, 297,
10006 298, 299, 300, 301, 302, 303, 304, 305, 306, 778,
10007 779, 780, 310, 311, 312, 0, 0, 314, 315, 781,
10008 317, 0, 0, 319, 782, 321, 322, 323, 0, 324,
10009 325, 0, 0, 326, 327, 328, 0, 0, 329, 0,
10010 783, 332, 784, 0, 335, 336, 337, 338, 339, 340,
10011 341, 342, 343, 344, 0, 0, 0, 0, 345, 346,
10012 0, 785, 349, 350, 0, 352, 353, 354, 0, 355,
10013 356, 357, 358, 359, 360, 0, 361, 362, 363, 786,
10014 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
10015 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
10016 383, 787, 385, 386, 387, 788, 389, 390, 391, 392,
10017 393, 394, 395, 396, 397, 398, 399, 0, 789, 400,
10018 401, 402, 403, 404, 405, 790, 407, 408, 409, 791,
10019 411, 412, 792, 414, 0, 415, 416, 417, 418, 419,
10020 420, 421, 422, 423, 424, 425, 426, 793, 428, 0,
10021 430, 0, 431, 432, 0, 433, 794, 435, 436, 437,
10022 438, 439, 0, 795, 796, 0, 0, 442, 443, 0,
10023 445, 0, 0, 447, 448, 797, 450, 451, 452, 453,
10024 454, 798, 0, 455, 456, 457, 0, 458, 459, 460,
10025 461, 0, 462, 463, 464, 465, 466, 0, 799, 0,
10026 469, 800, 471, 472, 473, 474, 475, 0, 0, 476,
10027 0, 0, 477, 478, 479, 480, 481, 482, 505, 0,
10028 527, 0, 0, 0, 0, 0, 0, 0, 0, 494,
10029 495, 496, 497, 0, 0, 0, 0, 110, 111, 112,
10030 113, 114, 115, 116, 117, 0, 118, 119, 120, 0,
10031 0, 0, 0, 0, 0, 0, 0, 0, 122, 123,
10032 0, 124, 125, 126, 0, 128, 129, 130, 131, 132,
10033 0, 134, 135, 0, 136, 137, 138, 139, 140, 141,
10034 0, 0, 142, 143, 144, 145, 146, 0, 147, 148,
10035 149, 150, 151, 0, 0, 0, 153, 154, 155, 156,
10036 157, 158, 0, 160, 161, 162, 0, 163, 164, 165,
10037 166, 167, 168, 0, 0, 170, 171, 172, 173, 174,
10038 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
10039 0, 184, 185, 186, 187, 188, 189, 0, 190, 191,
10040 192, 193, 194, 0, 0, 195, 196, 197, 198, 199,
10041 0, 200, 201, 202, 0, 203, 204, 205, 0, 206,
10042 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
10043 0, 217, 0, 218, 219, 220, 221, 0, 222, 0,
10044 223, 0, 0, 0, 226, 227, 506, 0, 230, 0,
10045 231, 0, 232, 233, 234, 0, 235, 236, 237, 238,
10046 239, 2840, 241, 0, 243, 244, 245, 246, 0, 247,
10047 248, 249, 250, 251, 252, 253, 0, 254, 0, 256,
10048 257, 258, 259, 260, 261, 262, 263, 0, 264, 0,
10049 265, 0, 0, 268, 0, 270, 271, 272, 273, 274,
10050 275, 0, 0, 276, 0, 278, 0, 0, 280, 281,
10051 282, 283, 284, 285, 286, 287, 507, 289, 290, 291,
10052 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
10053 302, 303, 304, 305, 306, 307, 0, 309, 310, 311,
10054 312, 313, 0, 314, 315, 0, 317, 0, 318, 319,
10055 320, 321, 322, 323, 0, 324, 325, 0, 0, 326,
10056 327, 328, 0, 0, 329, 330, 0, 332, 0, 334,
10057 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
10058 0, 0, 0, 0, 345, 346, 347, 0, 349, 350,
10059 351, 352, 353, 354, 0, 355, 356, 357, 358, 359,
10060 360, 0, 361, 362, 363, 364, 365, 366, 367, 368,
10061 0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
10062 378, 379, 380, 381, 0, 382, 383, 0, 385, 386,
10063 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
10064 397, 398, 399, 0, 0, 400, 401, 402, 403, 404,
10065 405, 406, 407, 408, 409, 0, 411, 412, 413, 414,
10066 0, 415, 416, 417, 418, 419, 420, 421, 422, 423,
10067 424, 425, 426, 508, 428, 429, 430, 0, 431, 432,
10068 0, 433, 0, 435, 436, 437, 438, 439, 0, 440,
10069 441, 0, 0, 442, 443, 444, 445, 446, 0, 447,
10070 448, 449, 450, 451, 452, 453, 454, 0, 0, 455,
10071 456, 457, 0, 458, 459, 460, 461, 0, 462, 463,
10072 464, 465, 466, 467, 468, 0, 469, 0, 471, 472,
10073 473, 474, 475, 0, 0, 476, 0, 0, 477, 478,
10074 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
10075 489, 490, 491, 492, 493, 494, 495, 496, 497, 505,
10076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10077 0, 0, 0, 0, 0, 0, 0, 0, 110, 111,
10078 112, 113, 114, 115, 116, 117, 0, 118, 119, 120,
10079 0, 0, 0, 0, 0, 0, 0, 0, 0, 122,
10080 123, 0, 124, 125, 126, 0, 128, 129, 130, 131,
10081 132, 0, 134, 135, 0, 136, 137, 138, 139, 140,
10082 141, 0, 0, 142, 143, 144, 145, 146, 0, 147,
10083 148, 149, 150, 151, 0, 0, 0, 153, 154, 155,
10084 156, 157, 158, 0, 160, 161, 162, 0, 163, 164,
10085 165, 166, 167, 168, 0, 0, 170, 171, 172, 173,
10086 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
10087 183, 0, 184, 185, 186, 187, 188, 189, 0, 190,
10088 191, 192, 193, 194, 0, 0, 195, 196, 197, 198,
10089 199, 0, 200, 201, 202, 0, 203, 204, 205, 0,
10090 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
10091 216, 0, 217, 0, 218, 219, 220, 221, 0, 222,
10092 0, 223, 0, 0, 0, 226, 227, 506, 0, 230,
10093 0, 231, 0, 232, 233, 234, 0, 235, 236, 237,
10094 238, 239, 240, 241, 0, 243, 244, 245, 246, 0,
10095 247, 248, 249, 250, 251, 252, 253, 0, 254, 0,
10096 256, 257, 258, 259, 260, 261, 262, 263, 0, 264,
10097 0, 265, 0, 0, 268, 0, 270, 271, 272, 273,
10098 274, 275, 0, 0, 276, 0, 278, 0, 0, 280,
10099 281, 282, 283, 284, 285, 286, 287, 507, 289, 290,
10100 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
10101 301, 302, 303, 304, 305, 306, 307, 0, 309, 310,
10102 311, 312, 313, 0, 314, 315, 0, 317, 0, 318,
10103 319, 320, 321, 322, 323, 0, 324, 325, 0, 0,
10104 326, 327, 328, 0, 0, 329, 330, 0, 332, 0,
10105 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
10106 344, 0, 0, 0, 0, 345, 346, 347, 0, 349,
10107 350, 351, 352, 353, 354, 0, 355, 356, 357, 358,
10108 359, 360, 0, 361, 362, 363, 364, 365, 366, 367,
10109 368, 0, 369, 370, 371, 372, 373, 374, 375, 376,
10110 377, 378, 379, 380, 381, 0, 382, 383, 0, 385,
10111 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
10112 396, 397, 398, 399, 0, 0, 400, 401, 402, 403,
10113 404, 405, 406, 407, 408, 409, 0, 411, 412, 413,
10114 414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
10115 423, 424, 425, 426, 508, 428, 429, 430, 0, 431,
10116 432, 0, 433, 0, 435, 436, 437, 438, 439, 0,
10117 440, 441, 0, 0, 442, 443, 444, 445, 446, 0,
10118 447, 448, 449, 450, 451, 452, 453, 454, 0, 0,
10119 455, 456, 457, 0, 458, 459, 460, 461, 0, 462,
10120 463, 464, 465, 466, 467, 468, 0, 469, 0, 471,
10121 472, 473, 474, 475, 0, 0, 476, 0, 0, 477,
10122 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
10123 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
10124 505, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10125 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
10126 111, 112, 113, 114, 115, 116, 117, 0, 118, 119,
10127 120, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10128 122, 123, 0, 124, 125, 126, 0, 128, 129, 130,
10129 131, 132, 0, 134, 135, 0, 136, 137, 138, 139,
10130 140, 141, 0, 0, 142, 143, 144, 145, 146, 0,
10131 147, 148, 149, 150, 151, 0, 0, 0, 153, 154,
10132 155, 156, 157, 158, 0, 160, 161, 162, 0, 163,
10133 164, 165, 166, 167, 168, 0, 0, 170, 171, 172,
10134 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
10135 0, 183, 0, 184, 185, 186, 187, 188, 189, 0,
10136 190, 191, 192, 193, 194, 0, 0, 195, 196, 197,
10137 198, 199, 0, 200, 201, 202, 0, 203, 204, 205,
10138 0, 206, 207, 208, 209, 210, 211, 212, 213, 214,
10139 215, 216, 0, 217, 0, 218, 219, 220, 221, 0,
10140 222, 0, 223, 0, 0, 0, 226, 227, 506, 0,
10141 648, 0, 231, 0, 232, 233, 234, 0, 235, 236,
10142 237, 238, 239, 240, 241, 0, 243, 244, 245, 246,
10143 0, 247, 248, 249, 250, 251, 252, 253, 0, 254,
10144 0, 256, 257, 258, 259, 260, 261, 262, 263, 0,
10145 264, 0, 265, 0, 0, 268, 0, 270, 271, 272,
10146 273, 274, 275, 0, 0, 276, 0, 278, 0, 0,
10147 280, 281, 649, 283, 284, 285, 286, 287, 507, 289,
10148 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
10149 300, 301, 302, 303, 304, 305, 306, 307, 0, 309,
10150 310, 311, 312, 313, 0, 314, 315, 0, 317, 0,
10151 318, 319, 320, 321, 322, 323, 0, 324, 325, 0,
10152 0, 326, 327, 328, 0, 0, 329, 330, 0, 332,
10153 0, 334, 335, 336, 337, 338, 339, 340, 341, 342,
10154 343, 344, 0, 0, 0, 0, 345, 346, 347, 0,
10155 349, 350, 351, 352, 353, 354, 0, 355, 356, 357,
10156 358, 359, 360, 0, 361, 362, 363, 364, 365, 366,
10157 367, 368, 0, 369, 370, 371, 372, 373, 374, 375,
10158 376, 377, 378, 379, 380, 381, 0, 382, 383, 0,
10159 385, 386, 387, 388, 389, 390, 391, 392, 650, 394,
10160 395, 396, 397, 398, 399, 0, 0, 400, 401, 402,
10161 403, 651, 405, 406, 407, 408, 409, 0, 411, 412,
10162 413, 414, 0, 415, 416, 417, 418, 419, 420, 421,
10163 422, 423, 424, 425, 426, 508, 428, 429, 430, 0,
10164 431, 432, 0, 433, 0, 435, 436, 437, 438, 439,
10165 0, 652, 441, 0, 0, 442, 443, 444, 445, 446,
10166 0, 447, 448, 449, 450, 451, 452, 453, 454, 0,
10167 0, 455, 456, 457, 0, 458, 459, 460, 461, 0,
10168 462, 463, 464, 465, 466, 467, 468, 0, 469, 0,
10169 471, 472, 473, 474, 475, 0, 0, 476, 0, 0,
10170 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
10171 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
10172 497, 505, 0, 0, 0, 0, 0, 0, 0, 0,
10173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10174 110, 111, 112, 113, 114, 115, 116, 117, 0, 118,
10175 119, 120, 0, 0, 0, 0, 0, 0, 0, 0,
10176 0, 122, 123, 0, 124, 125, 126, 0, 128, 129,
10177 130, 131, 132, 0, 134, 135, 0, 136, 137, 138,
10178 139, 140, 141, 0, 0, 142, 143, 144, 145, 146,
10179 0, 147, 148, 149, 150, 151, 0, 0, 0, 153,
10180 154, 155, 156, 157, 158, 0, 160, 161, 162, 0,
10181 163, 164, 165, 166, 167, 168, 0, 0, 170, 171,
10182 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
10183 182, 0, 183, 0, 184, 185, 186, 187, 188, 189,
10184 0, 190, 191, 192, 193, 194, 0, 0, 195, 196,
10185 197, 198, 199, 0, 200, 201, 202, 0, 203, 204,
10186 205, 0, 206, 207, 208, 209, 210, 211, 212, 213,
10187 214, 215, 216, 0, 217, 0, 218, 219, 220, 221,
10188 0, 222, 0, 223, 0, 0, 0, 226, 227, 506,
10189 0, 230, 0, 231, 0, 232, 233, 234, 0, 235,
10190 236, 237, 238, 239, 819, 241, 0, 243, 244, 245,
10191 246, 0, 247, 248, 249, 250, 251, 252, 253, 0,
10192 254, 0, 256, 257, 258, 259, 260, 261, 262, 263,
10193 0, 264, 0, 265, 0, 0, 268, 0, 270, 271,
10194 272, 273, 274, 275, 0, 0, 276, 0, 278, 0,
10195 0, 280, 281, 282, 283, 284, 285, 286, 287, 507,
10196 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
10197 299, 300, 301, 302, 303, 304, 305, 306, 307, 0,
10198 309, 310, 311, 312, 313, 0, 314, 315, 0, 317,
10199 0, 318, 319, 320, 321, 322, 323, 0, 324, 325,
10200 0, 0, 326, 327, 328, 0, 0, 329, 330, 0,
10201 332, 0, 334, 335, 336, 337, 338, 339, 340, 341,
10202 342, 343, 344, 0, 0, 0, 0, 345, 346, 347,
10203 0, 349, 350, 351, 352, 353, 354, 0, 355, 356,
10204 357, 358, 359, 360, 0, 361, 362, 363, 364, 365,
10205 366, 367, 368, 0, 369, 370, 371, 372, 373, 374,
10206 375, 376, 377, 378, 379, 380, 381, 0, 382, 383,
10207 0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
10208 394, 395, 396, 397, 398, 399, 0, 0, 400, 401,
10209 402, 403, 404, 405, 406, 407, 408, 409, 0, 411,
10210 412, 413, 414, 0, 415, 416, 417, 418, 419, 420,
10211 421, 422, 423, 424, 425, 426, 508, 428, 429, 430,
10212 0, 431, 432, 0, 433, 0, 435, 436, 437, 438,
10213 439, 0, 440, 441, 0, 0, 442, 443, 444, 445,
10214 446, 0, 447, 448, 449, 450, 451, 452, 453, 454,
10215 0, 0, 455, 456, 457, 0, 458, 459, 460, 461,
10216 0, 462, 463, 464, 465, 466, 467, 468, 0, 469,
10217 0, 471, 472, 473, 474, 475, 0, 0, 476, 0,
10218 0, 477, 478, 479, 480, 481, 482, 483, 484, 485,
10219 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
10220 496, 497, 505, 0, 0, 0, 0, 0, 0, 0,
10221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10222 0, 110, 111, 112, 113, 114, 115, 116, 117, 0,
10223 118, 119, 120, 0, 0, 0, 0, 0, 0, 0,
10224 0, 0, 122, 123, 0, 124, 125, 126, 0, 128,
10225 129, 130, 131, 132, 0, 134, 135, 0, 136, 137,
10226 138, 139, 140, 141, 0, 0, 142, 143, 144, 145,
10227 146, 0, 147, 148, 149, 150, 151, 0, 0, 0,
10228 153, 154, 155, 156, 157, 158, 0, 160, 161, 162,
10229 0, 163, 164, 165, 166, 167, 168, 0, 0, 170,
10230 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
10231 181, 182, 0, 183, 0, 184, 185, 186, 187, 188,
10232 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
10233 196, 197, 198, 199, 0, 200, 201, 202, 0, 203,
10234 204, 205, 0, 206, 207, 208, 209, 210, 211, 212,
10235 213, 214, 215, 216, 0, 217, 0, 218, 219, 220,
10236 221, 0, 222, 0, 223, 0, 0, 0, 226, 227,
10237 506, 0, 230, 0, 231, 0, 232, 233, 234, 0,
10238 235, 236, 237, 238, 239, 240, 241, 0, 243, 244,
10239 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
10240 0, 254, 0, 256, 257, 258, 259, 260, 261, 262,
10241 263, 0, 264, 0, 265, 0, 0, 268, 0, 270,
10242 271, 272, 273, 274, 275, 0, 0, 276, 0, 278,
10243 0, 0, 280, 281, 282, 283, 284, 285, 286, 287,
10244 507, 289, 290, 291, 292, 293, 294, 295, 296, 297,
10245 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
10246 0, 309, 310, 311, 312, 313, 0, 314, 315, 0,
10247 317, 0, 318, 319, 320, 321, 322, 323, 0, 324,
10248 325, 0, 0, 326, 327, 328, 0, 0, 329, 330,
10249 0, 332, 0, 334, 335, 336, 337, 338, 339, 340,
10250 341, 342, 343, 344, 0, 0, 0, 0, 345, 346,
10251 347, 0, 349, 350, 351, 352, 353, 354, 0, 355,
10252 356, 357, 358, 359, 360, 0, 361, 362, 363, 364,
10253 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
10254 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
10255 383, 0, 385, 386, 387, 388, 389, 390, 391, 392,
10256 650, 394, 395, 396, 397, 398, 399, 0, 0, 400,
10257 401, 402, 403, 404, 405, 406, 407, 408, 409, 0,
10258 411, 412, 413, 414, 0, 415, 416, 417, 418, 419,
10259 420, 421, 422, 423, 424, 425, 426, 508, 428, 429,
10260 430, 0, 431, 432, 0, 433, 0, 435, 436, 437,
10261 438, 439, 0, 652, 441, 0, 0, 442, 443, 444,
10262 445, 446, 0, 447, 448, 449, 450, 451, 452, 453,
10263 454, 0, 0, 455, 456, 457, 0, 458, 459, 460,
10264 461, 0, 462, 463, 464, 465, 466, 467, 468, 0,
10265 469, 0, 471, 472, 473, 474, 475, 0, 0, 476,
10266 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
10267 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
10268 495, 496, 497, 505, 0, 0, 0, 0, 0, 0,
10269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10270 0, 0, 110, 111, 112, 113, 114, 115, 116, 117,
10271 0, 118, 119, 120, 0, 0, 0, 0, 0, 0,
10272 1607, 0, 0, 122, 123, 0, 124, 125, 126, 0,
10273 128, 129, 130, 131, 132, 0, 134, 135, 0, 136,
10274 137, 138, 139, 140, 141, 0, 0, 142, 143, 144,
10275 145, 146, 0, 147, 148, 149, 150, 151, 0, 0,
10276 0, 153, 154, 155, 156, 157, 158, 0, 160, 161,
10277 162, 0, 163, 164, 165, 166, 167, 168, 0, 0,
10278 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
10279 180, 181, 182, 0, 183, 0, 184, 185, 186, 187,
10280 188, 189, 0, 190, 191, 192, 193, 194, 0, 0,
10281 195, 196, 197, 198, 199, 0, 200, 201, 202, 0,
10282 203, 204, 205, 0, 206, 207, 208, 209, 210, 211,
10283 212, 213, 214, 215, 216, 0, 217, 0, 218, 219,
10284 220, 221, 0, 222, 0, 223, 0, 0, 0, 226,
10285 227, 506, 0, 230, 0, 231, 0, 232, 233, 234,
10286 0, 235, 236, 237, 238, 239, 240, 241, 0, 243,
10287 244, 245, 246, 0, 247, 248, 249, 250, 251, 252,
10288 253, 0, 254, 0, 256, 257, 258, 259, 260, 261,
10289 262, 263, 0, 264, 0, 265, 0, 0, 268, 0,
10290 270, 271, 272, 273, 274, 275, 0, 0, 276, 0,
10291 278, 0, 0, 280, 281, 282, 283, 284, 285, 286,
10292 287, 507, 289, 290, 291, 292, 293, 294, 295, 296,
10293 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
10294 307, 0, 309, 310, 311, 312, 313, 0, 314, 315,
10295 0, 317, 0, 318, 319, 320, 321, 322, 323, 0,
10296 324, 325, 0, 0, 326, 327, 328, 0, 0, 329,
10297 330, 0, 332, 0, 334, 335, 336, 337, 338, 339,
10298 340, 341, 342, 343, 344, 0, 0, 0, 0, 345,
10299 346, 347, 0, 349, 350, 351, 352, 353, 354, 0,
10300 355, 356, 357, 358, 359, 360, 0, 361, 362, 363,
10301 364, 365, 366, 367, 368, 0, 369, 370, 371, 372,
10302 373, 374, 375, 376, 377, 378, 379, 380, 381, 0,
10303 382, 383, 0, 385, 386, 387, 388, 389, 390, 391,
10304 392, 393, 394, 395, 396, 397, 398, 399, 0, 0,
10305 400, 401, 402, 403, 404, 0, 406, 407, 408, 409,
10306 0, 411, 412, 413, 414, 0, 415, 416, 417, 418,
10307 419, 420, 421, 422, 423, 424, 425, 426, 508, 428,
10308 429, 430, 0, 431, 432, 0, 433, 0, 435, 436,
10309 437, 438, 439, 0, 440, 441, 0, 0, 442, 443,
10310 444, 445, 446, 0, 447, 448, 449, 450, 451, 452,
10311 453, 454, 0, 0, 455, 456, 457, 0, 458, 459,
10312 460, 461, 0, 462, 463, 464, 465, 466, 467, 468,
10313 0, 469, 0, 471, 472, 473, 474, 475, 0, 0,
10314 476, 0, 0, 477, 478, 479, 480, 481, 482, 483,
10315 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
10316 494, 495, 496, 497, 505, 0, 0, 0, 0, 0,
10317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10318 0, 0, 0, 110, 111, 112, 113, 114, 115, 116,
10319 117, 0, 118, 119, 120, 0, 0, 0, 0, 0,
10320 0, 0, 0, 0, 122, 123, 0, 124, 125, 126,
10321 0, 128, 129, 130, 131, 132, 0, 134, 135, 0,
10322 136, 137, 138, 139, 140, 141, 0, 0, 142, 143,
10323 144, 145, 146, 0, 147, 148, 149, 150, 151, 0,
10324 0, 0, 153, 154, 155, 156, 157, 158, 0, 160,
10325 161, 162, 0, 163, 164, 165, 166, 167, 168, 0,
10326 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
10327 179, 180, 181, 182, 0, 183, 0, 184, 185, 186,
10328 187, 188, 189, 0, 190, 191, 192, 193, 194, 0,
10329 0, 195, 196, 197, 198, 199, 0, 200, 201, 202,
10330 0, 203, 204, 205, 0, 206, 207, 208, 209, 210,
10331 211, 212, 213, 214, 215, 216, 0, 217, 0, 218,
10332 219, 220, 221, 0, 222, 0, 223, 0, 0, 0,
10333 226, 227, 506, 0, 230, 0, 231, 0, 232, 233,
10334 234, 0, 235, 236, 237, 238, 239, 1774, 241, 0,
10335 243, 244, 245, 246, 0, 247, 248, 249, 250, 251,
10336 252, 253, 0, 254, 0, 256, 257, 258, 259, 260,
10337 261, 262, 263, 0, 264, 0, 265, 0, 0, 268,
10338 0, 270, 271, 272, 273, 274, 275, 0, 0, 276,
10339 0, 278, 0, 0, 280, 281, 282, 283, 284, 285,
10340 286, 287, 507, 289, 290, 291, 292, 293, 294, 295,
10341 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
10342 306, 307, 0, 309, 310, 311, 312, 313, 0, 314,
10343 315, 0, 317, 0, 318, 319, 320, 321, 322, 323,
10344 0, 324, 325, 0, 0, 326, 327, 328, 0, 0,
10345 329, 330, 0, 332, 0, 334, 335, 336, 337, 338,
10346 339, 340, 341, 342, 343, 344, 0, 0, 0, 0,
10347 345, 346, 347, 0, 349, 350, 351, 352, 353, 354,
10348 0, 355, 356, 357, 358, 359, 360, 0, 361, 362,
10349 363, 364, 365, 366, 367, 368, 0, 369, 370, 371,
10350 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
10351 0, 382, 383, 0, 385, 386, 387, 388, 389, 390,
10352 391, 392, 393, 394, 395, 396, 397, 398, 399, 0,
10353 0, 400, 401, 402, 403, 404, 405, 406, 407, 408,
10354 409, 0, 411, 412, 413, 414, 0, 415, 416, 417,
10355 418, 419, 420, 421, 422, 423, 424, 425, 426, 508,
10356 428, 429, 430, 0, 431, 432, 0, 433, 0, 435,
10357 436, 437, 438, 439, 0, 440, 441, 0, 0, 442,
10358 443, 444, 445, 446, 0, 447, 448, 449, 450, 451,
10359 452, 453, 454, 0, 0, 455, 456, 457, 0, 458,
10360 459, 460, 461, 0, 462, 463, 464, 465, 466, 467,
10361 468, 0, 469, 0, 471, 472, 473, 474, 475, 0,
10362 0, 476, 0, 0, 477, 478, 479, 480, 481, 482,
10363 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
10364 493, 494, 495, 496, 497, 505, 0, 0, 0, 0,
10365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10366 0, 0, 0, 0, 110, 111, 112, 113, 114, 115,
10367 116, 117, 0, 118, 119, 120, 0, 0, 0, 0,
10368 0, 0, 0, 0, 0, 122, 123, 0, 124, 125,
10369 126, 0, 128, 129, 130, 131, 132, 0, 134, 135,
10370 0, 136, 137, 138, 139, 140, 141, 0, 0, 142,
10371 143, 144, 145, 146, 0, 147, 148, 149, 150, 151,
10372 0, 0, 0, 153, 154, 155, 156, 157, 158, 0,
10373 160, 161, 162, 0, 163, 164, 165, 166, 167, 168,
10374 0, 0, 170, 171, 172, 173, 174, 175, 176, 177,
10375 178, 179, 180, 181, 182, 0, 183, 0, 184, 185,
10376 186, 187, 188, 189, 0, 190, 191, 192, 193, 194,
10377 0, 0, 195, 196, 197, 198, 199, 0, 200, 201,
10378 202, 0, 203, 204, 205, 0, 206, 207, 208, 209,
10379 210, 211, 212, 213, 214, 215, 216, 0, 217, 0,
10380 218, 219, 220, 221, 0, 222, 0, 223, 0, 0,
10381 0, 226, 227, 506, 0, 230, 0, 231, 0, 232,
10382 233, 234, 0, 235, 236, 237, 238, 239, 2126, 241,
10383 0, 243, 244, 245, 246, 0, 247, 248, 249, 250,
10384 251, 252, 253, 0, 254, 0, 256, 257, 258, 259,
10385 260, 261, 262, 263, 0, 264, 0, 265, 0, 0,
10386 268, 0, 270, 271, 272, 273, 274, 275, 0, 0,
10387 276, 0, 278, 0, 0, 280, 281, 282, 283, 284,
10388 285, 286, 287, 507, 289, 290, 291, 292, 293, 294,
10389 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
10390 305, 306, 307, 0, 309, 310, 311, 312, 313, 0,
10391 314, 315, 0, 317, 0, 318, 319, 320, 321, 322,
10392 323, 0, 324, 325, 0, 0, 326, 327, 328, 0,
10393 0, 329, 330, 0, 332, 0, 334, 335, 336, 337,
10394 338, 339, 340, 341, 342, 343, 344, 0, 0, 0,
10395 0, 345, 346, 347, 0, 349, 350, 351, 352, 353,
10396 354, 0, 355, 356, 357, 358, 359, 360, 0, 361,
10397 362, 363, 364, 365, 366, 367, 368, 0, 369, 370,
10398 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
10399 381, 0, 382, 383, 0, 385, 386, 387, 388, 389,
10400 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
10401 0, 0, 400, 401, 402, 403, 404, 405, 406, 407,
10402 408, 409, 0, 411, 412, 413, 414, 0, 415, 416,
10403 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
10404 508, 428, 429, 430, 0, 431, 432, 0, 433, 0,
10405 435, 436, 437, 438, 439, 0, 440, 441, 0, 0,
10406 442, 443, 444, 445, 446, 0, 447, 448, 449, 450,
10407 451, 452, 453, 454, 0, 0, 455, 456, 457, 0,
10408 458, 459, 460, 461, 0, 462, 463, 464, 465, 466,
10409 467, 468, 0, 469, 0, 471, 472, 473, 474, 475,
10410 0, 0, 476, 0, 0, 477, 478, 479, 480, 481,
10411 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
10412 492, 493, 494, 495, 496, 497, 505, 0, 0, 0,
10413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10414 0, 0, 0, 0, 0, 110, 111, 112, 113, 114,
10415 115, 116, 117, 0, 118, 119, 120, 0, 0, 0,
10416 0, 0, 0, 0, 0, 0, 122, 123, 0, 124,
10417 125, 126, 0, 128, 129, 130, 131, 132, 0, 134,
10418 135, 0, 136, 137, 138, 139, 140, 141, 0, 0,
10419 142, 143, 144, 145, 146, 0, 147, 148, 149, 150,
10420 151, 0, 0, 0, 153, 154, 155, 156, 157, 158,
10421 0, 160, 161, 162, 0, 163, 164, 165, 166, 167,
10422 168, 0, 0, 170, 171, 172, 173, 174, 175, 176,
10423 177, 178, 179, 180, 181, 182, 0, 183, 0, 184,
10424 185, 186, 187, 188, 189, 0, 190, 191, 192, 193,
10425 194, 0, 0, 195, 196, 197, 198, 199, 0, 200,
10426 201, 202, 0, 203, 204, 205, 0, 206, 207, 208,
10427 209, 210, 211, 212, 213, 214, 215, 216, 0, 217,
10428 0, 218, 219, 220, 221, 0, 222, 0, 223, 0,
10429 0, 0, 226, 227, 506, 0, 230, 0, 231, 0,
10430 232, 233, 234, 0, 235, 236, 237, 238, 239, 2141,
10431 241, 0, 243, 244, 245, 246, 0, 247, 248, 249,
10432 250, 251, 252, 253, 0, 254, 0, 256, 257, 258,
10433 259, 260, 261, 262, 263, 0, 264, 0, 265, 0,
10434 0, 268, 0, 270, 271, 272, 273, 274, 275, 0,
10435 0, 276, 0, 278, 0, 0, 280, 281, 282, 283,
10436 284, 285, 286, 287, 507, 289, 290, 291, 292, 293,
10437 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
10438 304, 305, 306, 307, 0, 309, 310, 311, 312, 313,
10439 0, 314, 315, 0, 317, 0, 318, 319, 320, 321,
10440 322, 323, 0, 324, 325, 0, 0, 326, 327, 328,
10441 0, 0, 329, 330, 0, 332, 0, 334, 335, 336,
10442 337, 338, 339, 340, 341, 342, 343, 344, 0, 0,
10443 0, 0, 345, 346, 347, 0, 349, 350, 351, 352,
10444 353, 354, 0, 355, 356, 357, 358, 359, 360, 0,
10445 361, 362, 363, 364, 365, 366, 367, 368, 0, 369,
10446 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
10447 380, 381, 0, 382, 383, 0, 385, 386, 387, 388,
10448 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
10449 399, 0, 0, 400, 401, 402, 403, 404, 405, 406,
10450 407, 408, 409, 0, 411, 412, 413, 414, 0, 415,
10451 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
10452 426, 508, 428, 429, 430, 0, 431, 432, 0, 433,
10453 0, 435, 436, 437, 438, 439, 0, 440, 441, 0,
10454 0, 442, 443, 444, 445, 446, 0, 447, 448, 449,
10455 450, 451, 452, 453, 454, 0, 0, 455, 456, 457,
10456 0, 458, 459, 460, 461, 0, 462, 463, 464, 465,
10457 466, 467, 468, 0, 469, 0, 471, 472, 473, 474,
10458 475, 0, 0, 476, 0, 0, 477, 478, 479, 480,
10459 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
10460 491, 492, 493, 494, 495, 496, 497, 745, 0, 0,
10461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10462 0, 0, 0, 0, 0, 0, 110, 111, 112, 113,
10463 114, 115, 116, 117, 0, 118, 119, 120, 0, 0,
10464 0, 746, 0, 0, 0, 0, 747, 122, 123, 0,
10465 124, 125, 126, 748, 128, 129, 130, 0, 749, 750,
10466 751, 752, 0, 136, 137, 138, 139, 140, 141, 0,
10467 0, 142, 143, 753, 754, 146, 0, 147, 148, 149,
10468 150, 0, 0, 755, 0, 756, 154, 155, 156, 157,
10469 158, 757, 160, 161, 162, 0, 163, 164, 165, 166,
10470 167, 168, 0, 758, 170, 171, 172, 173, 174, 175,
10471 176, 177, 178, 179, 759, 760, 182, 0, 183, 0,
10472 184, 185, 186, 187, 188, 189, 0, 190, 191, 192,
10473 193, 194, 0, 0, 195, 196, 761, 198, 199, 0,
10474 200, 201, 202, 0, 203, 204, 205, 0, 206, 207,
10475 208, 209, 0, 211, 212, 213, 214, 215, 0, 0,
10476 217, 0, 218, 219, 762, 221, 0, 222, 0, 223,
10477 763, 0, 764, 226, 227, 0, 765, 230, 0, 231,
10478 0, 0, 0, 234, 0, 235, 236, 237, 238, 239,
10479 766, 241, 767, 243, 244, 245, 246, 0, 247, 248,
10480 249, 250, 251, 252, 253, 0, 254, 768, 0, 257,
10481 258, 259, 260, 261, 769, 770, 0, 771, 0, 265,
10482 772, 773, 268, 774, 270, 271, 272, 273, 274, 275,
10483 0, 0, 276, 775, 278, 776, 0, 280, 281, 282,
10484 283, 284, 285, 286, 287, 777, 289, 290, 291, 292,
10485 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
10486 303, 304, 305, 306, 778, 779, 780, 310, 311, 312,
10487 0, 0, 314, 315, 781, 317, 0, 0, 319, 782,
10488 321, 322, 323, 0, 324, 325, 0, 0, 326, 327,
10489 328, 0, 0, 329, 0, 783, 332, 784, 0, 335,
10490 336, 337, 338, 339, 340, 341, 342, 343, 344, 0,
10491 0, 0, 0, 345, 346, 0, 785, 349, 350, 0,
10492 352, 353, 354, 0, 355, 356, 357, 358, 359, 360,
10493 0, 361, 362, 363, 786, 365, 366, 367, 368, 0,
10494 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
10495 379, 380, 381, 0, 382, 383, 787, 385, 386, 387,
10496 788, 389, 390, 391, 392, 393, 394, 395, 396, 397,
10497 398, 399, 0, 789, 400, 401, 402, 403, 404, 405,
10498 790, 407, 408, 409, 791, 411, 412, 792, 414, 0,
10499 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
10500 425, 426, 793, 428, 0, 430, 0, 431, 432, 0,
10501 433, 794, 435, 436, 437, 438, 439, 0, 795, 796,
10502 0, 0, 442, 443, 0, 445, 0, 0, 447, 448,
10503 797, 450, 451, 452, 453, 454, 798, 0, 455, 456,
10504 457, 0, 458, 459, 460, 461, 0, 462, 463, 464,
10505 465, 466, 0, 799, 0, 469, 800, 471, 472, 473,
10506 474, 475, 0, 0, 476, 0, 0, 477, 478, 479,
10507 480, 481, 482, 745, 0, 0, 0, 0, 0, 0,
10508 0, 0, 0, 0, 494, 495, 496, 497, 0, 0,
10509 0, 0, 110, 111, 112, 113, 114, 115, 116, 117,
10510 0, 118, 119, 120, 0, 0, 0, 746, 0, 0,
10511 0, 0, 747, 122, 123, 0, 124, 125, 126, 748,
10512 128, 129, 130, 0, 749, 750, 751, 752, 0, 136,
10513 137, 138, 139, 140, 141, 0, 0, 142, 143, 753,
10514 754, 146, 0, 147, 148, 149, 150, 0, 0, 755,
10515 0, 756, 154, 155, 156, 157, 158, 757, 160, 161,
10516 162, 0, 163, 164, 165, 166, 167, 168, 0, 758,
10517 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
10518 759, 760, 182, 0, 183, 0, 184, 185, 186, 187,
10519 188, 189, 0, 190, 191, 192, 193, 194, 0, 0,
10520 195, 196, 761, 198, 199, 0, 200, 201, 202, 0,
10521 203, 204, 205, 0, 206, 207, 208, 209, 0, 211,
10522 212, 213, 214, 215, 0, 0, 217, 0, 218, 219,
10523 762, 221, 0, 222, 0, 223, 763, 0, 764, 226,
10524 227, 0, 765, 230, 0, 231, 0, 0, 0, 234,
10525 0, 235, 236, 237, 238, 239, 240, 241, 767, 243,
10526 244, 245, 246, 0, 247, 248, 249, 250, 251, 252,
10527 253, 0, 254, 768, 0, 257, 258, 259, 260, 261,
10528 769, 770, 0, 771, 0, 265, 772, 773, 268, 774,
10529 270, 271, 272, 273, 274, 275, 0, 0, 276, 775,
10530 278, 776, 0, 280, 281, 282, 283, 284, 285, 286,
10531 287, 777, 289, 290, 291, 292, 293, 294, 295, 296,
10532 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
10533 778, 779, 780, 310, 311, 312, 0, 0, 314, 315,
10534 781, 317, 0, 0, 319, 782, 321, 322, 323, 0,
10535 324, 325, 0, 0, 326, 327, 328, 0, 0, 329,
10536 0, 783, 332, 784, 0, 335, 336, 337, 338, 339,
10537 340, 341, 342, 343, 344, 0, 0, 0, 0, 345,
10538 346, 0, 785, 349, 350, 0, 352, 353, 354, 0,
10539 355, 356, 357, 358, 359, 360, 0, 361, 362, 363,
10540 786, 365, 366, 367, 368, 0, 369, 370, 371, 372,
10541 373, 374, 375, 376, 377, 378, 379, 380, 381, 0,
10542 382, 383, 787, 385, 386, 387, 788, 389, 390, 391,
10543 392, 393, 394, 395, 396, 397, 398, 399, 0, 789,
10544 400, 401, 402, 403, 404, 405, 790, 407, 408, 409,
10545 791, 411, 412, 792, 414, 0, 415, 416, 417, 418,
10546 419, 420, 421, 422, 423, 424, 425, 426, 793, 428,
10547 0, 430, 0, 431, 432, 0, 433, 794, 435, 436,
10548 437, 438, 439, 0, 795, 796, 0, 0, 442, 443,
10549 0, 445, 0, 0, 447, 448, 797, 450, 451, 452,
10550 453, 454, 798, 0, 455, 456, 457, 0, 458, 459,
10551 460, 461, 0, 462, 463, 464, 465, 466, 0, 799,
10552 0, 469, 800, 471, 472, 473, 474, 475, 0, 0,
10553 476, 0, 0, 477, 478, 479, 480, 481, 482, 745,
10554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10555 494, 495, 496, 497, 0, 0, 0, 0, 110, 111,
10556 112, 113, 114, 115, 116, 117, 0, 118, 119, 120,
10557 0, 0, 0, 746, 0, 0, 0, 0, 747, 122,
10558 123, 0, 124, 125, 126, 748, 128, 129, 130, 0,
10559 749, 750, 751, 752, 0, 136, 137, 138, 139, 140,
10560 141, 0, 0, 142, 143, 753, 754, 146, 0, 147,
10561 148, 149, 150, 0, 0, 755, 0, 756, 154, 155,
10562 156, 157, 158, 757, 160, 161, 162, 0, 163, 164,
10563 165, 166, 167, 168, 0, 758, 170, 171, 172, 173,
10564 174, 175, 176, 177, 178, 179, 759, 760, 182, 0,
10565 183, 0, 184, 185, 186, 187, 188, 189, 0, 190,
10566 191, 192, 193, 194, 0, 0, 195, 196, 761, 198,
10567 199, 0, 200, 201, 202, 0, 1759, 204, 205, 0,
10568 206, 207, 208, 209, 0, 211, 212, 213, 214, 215,
10569 0, 0, 217, 0, 218, 219, 762, 221, 0, 222,
10570 0, 223, 763, 0, 764, 226, 227, 0, 765, 230,
10571 0, 231, 0, 0, 0, 234, 0, 235, 236, 237,
10572 238, 239, 240, 241, 767, 243, 244, 245, 246, 0,
10573 247, 248, 249, 250, 251, 252, 253, 0, 254, 768,
10574 0, 257, 258, 259, 260, 261, 769, 770, 0, 771,
10575 0, 265, 772, 773, 268, 774, 270, 271, 272, 273,
10576 274, 275, 0, 0, 276, 775, 278, 776, 0, 280,
10577 281, 282, 283, 284, 285, 286, 287, 777, 289, 290,
10578 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
10579 301, 302, 303, 304, 305, 306, 778, 779, 780, 310,
10580 311, 312, 0, 0, 314, 315, 781, 317, 0, 0,
10581 319, 782, 321, 322, 323, 0, 324, 325, 0, 0,
10582 326, 327, 328, 0, 0, 329, 0, 783, 332, 784,
10583 0, 335, 336, 337, 338, 339, 340, 341, 342, 343,
10584 344, 0, 0, 0, 0, 345, 346, 0, 785, 349,
10585 350, 0, 352, 353, 354, 0, 355, 356, 357, 358,
10586 359, 360, 0, 361, 362, 363, 786, 365, 366, 367,
10587 368, 0, 369, 370, 371, 372, 373, 374, 375, 376,
10588 377, 378, 379, 380, 381, 0, 382, 383, 787, 385,
10589 386, 387, 788, 389, 390, 391, 392, 393, 394, 395,
10590 396, 397, 398, 399, 0, 789, 400, 401, 402, 403,
10591 404, 405, 790, 407, 408, 409, 791, 411, 412, 792,
10592 414, 0, 415, 416, 417, 418, 419, 420, 421, 422,
10593 423, 424, 425, 426, 793, 428, 0, 430, 0, 431,
10594 432, 0, 433, 794, 435, 436, 437, 438, 439, 0,
10595 795, 796, 0, 0, 442, 443, 0, 445, 0, 0,
10596 447, 448, 797, 450, 451, 452, 453, 454, 798, 0,
10597 455, 456, 457, 0, 458, 459, 460, 461, 0, 462,
10598 463, 464, 465, 466, 0, 799, 0, 469, 800, 471,
10599 472, 473, 474, 475, 0, 0, 476, 0, 0, 477,
10600 478, 479, 480, 481, 482, 2768, 0, 0, 0, 0,
10601 0, 0, 0, 0, 0, 0, 494, 495, 496, 497,
10602 0, 0, 0, 0, 110, 111, 112, 113, 114, 115,
10603 116, 117, 0, 118, 119, 120, 0, 0, 0, 2769,
10604 0, 0, 0, 0, 2770, 122, 123, 0, 124, 125,
10605 126, 2771, 128, 129, 130, 0, 749, 2772, 751, 752,
10606 0, 136, 137, 138, 139, 140, 141, 0, 0, 142,
10607 143, 753, 754, 146, 0, 147, 148, 149, 150, 0,
10608 0, 2773, 0, 2774, 154, 155, 156, 157, 158, 2775,
10609 160, 161, 162, 0, 163, 164, 165, 166, 167, 168,
10610 0, 2776, 170, 171, 172, 173, 174, 175, 176, 177,
10611 178, 179, 759, 760, 182, 0, 183, 0, 184, 185,
10612 186, 187, 188, 189, 0, 190, 191, 192, 193, 194,
10613 0, 0, 195, 196, 761, 198, 199, 0, 200, 201,
10614 202, 0, 203, 204, 205, 0, 206, 207, 208, 209,
10615 0, 211, 212, 213, 214, 215, 0, 0, 217, 0,
10616 218, 219, 762, 221, 0, 222, 0, 223, 2777, 0,
10617 2778, 226, 227, 2779, 2780, 230, 0, 231, 0, 0,
10618 0, 234, 0, 235, 236, 237, 238, 239, 240, 241,
10619 2781, 243, 244, 245, 246, 0, 247, 248, 249, 250,
10620 251, 252, 253, 0, 254, 2782, 0, 257, 258, 259,
10621 260, 261, 769, 770, 0, 771, 0, 265, 2783, 2784,
10622 268, 2785, 270, 271, 272, 273, 274, 275, 0, 0,
10623 276, 2786, 278, 2787, 0, 280, 281, 282, 283, 284,
10624 285, 286, 287, 3002, 289, 290, 291, 292, 293, 294,
10625 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
10626 305, 306, 778, 2789, 780, 310, 311, 312, 0, 0,
10627 314, 315, 2791, 317, 0, 0, 319, 782, 321, 322,
10628 323, 0, 324, 325, 0, 0, 326, 327, 328, 0,
10629 0, 329, 0, 2793, 332, 2794, 0, 335, 336, 337,
10630 338, 339, 340, 341, 342, 343, 344, 0, 0, 0,
10631 0, 345, 346, 0, 2795, 349, 350, 0, 352, 353,
10632 354, 0, 355, 356, 357, 358, 359, 360, 0, 361,
10633 362, 363, 786, 365, 366, 367, 368, 0, 369, 370,
10634 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
10635 381, 0, 382, 383, 2796, 385, 386, 387, 0, 389,
10636 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
10637 0, 2797, 400, 401, 402, 403, 404, 405, 0, 407,
10638 408, 409, 2799, 411, 412, 792, 414, 0, 415, 416,
10639 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
10640 3003, 428, 0, 430, 0, 431, 432, 0, 433, 2801,
10641 435, 436, 437, 438, 439, 0, 795, 796, 0, 0,
10642 442, 443, 0, 445, 0, 0, 447, 448, 2802, 450,
10643 451, 452, 453, 454, 0, 0, 455, 456, 457, 0,
10644 458, 459, 460, 461, 0, 462, 463, 464, 465, 466,
10645 0, 799, 0, 469, 2804, 471, 472, 473, 474, 475,
10646 0, 0, 476, 0, 0, 477, 478, 479, 480, 481,
10647 482, 505, 0, 0, 0, 0, 0, 0, 0, 0,
10648 0, 0, 494, 495, 496, 497, 0, 0, 0, 0,
10649 110, 111, 112, 113, 114, 115, 116, 117, 0, 118,
10650 119, 120, 0, 0, 0, 0, 0, 0, 0, 0,
10651 0, 122, 123, 0, 124, 125, 126, 0, 128, 129,
10652 130, 131, 132, 0, 134, 135, 0, 136, 137, 138,
10653 139, 140, 141, 0, 0, 142, 143, 144, 145, 146,
10654 0, 147, 148, 149, 150, 151, 0, 0, 0, 153,
10655 154, 155, 156, 157, 158, 0, 160, 161, 162, 0,
10656 163, 164, 165, 166, 167, 168, 0, 0, 170, 171,
10657 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
10658 182, 0, 183, 0, 184, 185, 186, 187, 188, 189,
10659 0, 190, 191, 192, 193, 194, 0, 0, 195, 196,
10660 197, 198, 199, 0, 200, 201, 202, 0, 203, 204,
10661 205, 0, 206, 207, 208, 209, 210, 211, 212, 213,
10662 214, 215, 216, 0, 217, 0, 218, 219, 220, 221,
10663 0, 222, 0, 223, 0, 0, 0, 226, 227, 506,
10664 0, 230, 0, 231, 0, 232, 233, 234, 0, 235,
10665 236, 237, 238, 239, 240, 241, 0, 243, 244, 245,
10666 246, 0, 247, 248, 249, 250, 251, 252, 253, 0,
10667 254, 0, 256, 257, 258, 259, 260, 261, 262, 263,
10668 0, 264, 0, 265, 0, 0, 268, 0, 270, 271,
10669 272, 273, 274, 275, 0, 0, 276, 0, 278, 0,
10670 0, 280, 281, 282, 283, 284, 285, 286, 287, 507,
10671 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
10672 299, 300, 301, 302, 303, 304, 305, 306, 307, 0,
10673 309, 310, 311, 312, 313, 0, 314, 315, 0, 317,
10674 0, 318, 319, 320, 321, 322, 323, 0, 324, 325,
10675 0, 0, 326, 327, 328, 0, 0, 329, 330, 0,
10676 332, 0, 334, 335, 336, 337, 338, 339, 340, 0,
10677 342, 343, 344, 0, 0, 0, 0, 345, 346, 347,
10678 0, 349, 350, 351, 352, 353, 354, 0, 355, 356,
10679 357, 358, 359, 360, 0, 361, 0, 363, 364, 365,
10680 366, 367, 368, 0, 369, 370, 371, 372, 373, 374,
10681 375, 376, 377, 378, 379, 380, 381, 0, 382, 383,
10682 0, 385, 386, 387, 388, 0, 390, 391, 392, 393,
10683 394, 395, 396, 397, 398, 399, 0, 0, 400, 401,
10684 402, 403, 404, 405, 406, 407, 408, 409, 0, 411,
10685 412, 413, 414, 0, 415, 416, 417, 418, 419, 420,
10686 421, 422, 423, 424, 425, 426, 508, 428, 429, 430,
10687 0, 431, 432, 0, 433, 0, 435, 436, 437, 438,
10688 439, 0, 440, 441, 0, 0, 442, 443, 444, 445,
10689 446, 0, 447, 448, 449, 450, 451, 452, 453, 454,
10690 0, 0, 455, 456, 457, 0, 458, 459, 460, 461,
10691 0, 462, 463, 464, 465, 466, 467, 468, 0, 469,
10692 0, 471, 472, 473, 474, 475, 0, 0, 476, 0,
10693 0, 477, 478, 479, 480, 481, 482, 483, 484, 485,
10694 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
10695 496, 497, 745, 0, 0, 0, 0, 0, 0, 0,
10696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10697 0, 110, 111, 112, 113, 114, 115, 116, 117, 0,
10698 118, 119, 120, 0, 0, 0, 746, 0, 0, 0,
10699 0, 747, 122, 123, 0, 124, 125, 126, 748, 128,
10700 129, 130, 0, 749, 750, 751, 752, 0, 136, 137,
10701 138, 139, 140, 141, 0, 0, 142, 143, 753, 754,
10702 146, 0, 147, 148, 149, 150, 0, 0, 755, 0,
10703 756, 154, 155, 156, 157, 158, 757, 160, 161, 162,
10704 0, 163, 164, 165, 166, 167, 168, 0, 758, 170,
10705 171, 172, 173, 174, 175, 176, 177, 178, 179, 759,
10706 760, 182, 0, 183, 0, 184, 185, 186, 187, 188,
10707 189, 0, 190, 191, 192, 193, 194, 0, 0, 195,
10708 196, 761, 198, 199, 0, 200, 201, 202, 0, 203,
10709 204, 205, 0, 206, 207, 208, 209, 0, 211, 212,
10710 213, 214, 215, 0, 0, 217, 0, 218, 219, 762,
10711 221, 0, 222, 0, 223, 763, 0, 764, 226, 227,
10712 0, 765, 230, 0, 231, 0, 0, 0, 234, 0,
10713 235, 236, 237, 238, 239, 240, 241, 767, 243, 244,
10714 245, 246, 0, 247, 248, 249, 250, 251, 252, 253,
10715 0, 254, 768, 0, 257, 258, 259, 260, 261, 769,
10716 770, 0, 771, 0, 265, 772, 773, 268, 774, 270,
10717 271, 272, 273, 274, 275, 0, 0, 276, 775, 278,
10718 776, 0, 280, 281, 282, 283, 284, 285, 286, 287,
10719 0, 289, 290, 291, 292, 293, 294, 295, 296, 297,
10720 298, 299, 300, 301, 302, 303, 304, 305, 306, 778,
10721 779, 780, 310, 311, 312, 0, 0, 314, 315, 781,
10722 317, 0, 0, 319, 782, 321, 322, 323, 0, 324,
10723 325, 0, 0, 326, 327, 328, 0, 0, 329, 0,
10724 783, 332, 784, 0, 335, 336, 337, 338, 339, 340,
10725 341, 342, 343, 344, 0, 0, 0, 0, 345, 346,
10726 0, 785, 349, 350, 0, 352, 353, 354, 0, 355,
10727 356, 357, 358, 359, 360, 0, 361, 362, 363, 786,
10728 365, 366, 367, 368, 0, 369, 370, 371, 372, 373,
10729 374, 375, 376, 377, 378, 379, 380, 381, 0, 382,
10730 383, 787, 385, 386, 387, 0, 389, 390, 391, 392,
10731 393, 394, 395, 396, 397, 398, 399, 0, 789, 400,
10732 401, 402, 403, 404, 405, 0, 407, 408, 409, 791,
10733 411, 412, 792, 414, 0, 415, 416, 417, 418, 419,
10734 420, 421, 422, 423, 424, 425, 426, 0, 428, 0,
10735 430, 0, 431, 432, 0, 433, 794, 435, 436, 437,
10736 438, 439, 0, 795, 796, 0, 0, 442, 443, 0,
10737 445, 0, 0, 447, 448, 797, 450, 451, 452, 453,
10738 454, 0, 0, 455, 456, 457, 0, 458, 459, 460,
10739 461, 0, 462, 463, 464, 465, 466, 0, 799, 0,
10740 469, 800, 471, 472, 473, 474, 475, 0, 1, 476,
10741 0, 0, 477, 478, 479, 480, 481, 482, 2, 0,
10742 3, 4, 0, 0, 0, 1, 0, 0, 0, 494,
10743 495, 496, 497, 0, 0, 2, 0, 0, 6, 0,
10744 0, 0, 0, 0, 0, 0, 0, 7, 0, 0,
10745 0, 0, 0, 0, 0, 6, 0, 0, 0, 8,
10746 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
10747 9, 0, 0, 0, 0, 0, 8, 0, 0, 0,
10748 0, 0, 10, 0, 11, 0, 0, 9, 0, 0,
10749 0, 0, 0, 0, 0, 12, 0, 0, 0, 10,
10750 0, 11, 0, 0, 0, 0, 0, 0, 0, 13,
10751 0, 0, 12, 0, 0, 0, 0, 0, 0, 15,
10752 0, 0, 0, 0, 0, 16, 13, 0, 0, 0,
10753 0, 0, 0, 17, 0, 0, 15, 0, 0, 0,
10754 0, 0, 16, 0, 0, 0, 0, 0, 0, 20,
10755 17, 0, 0, 21, 0, 0, 0, 0, 0, 0,
10756 0, 0, 0, 0, 0, 0, 20, 0, 0, 0,
10757 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10759 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
10760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10761 0, 23, 0, 0, 0, 0, 0, 0, 0, 0,
10762 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10763 0, 0, 0, 0, 0, 0, 0, 24, 0, 0,
10764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10769 0, 25, 26, 27, 0, 0, 0, 0, 0, 28,
10770 0, 0, 29, 0, 0, 0, 0, 0, 25, 26,
10771 27, 0, 0, 0, 0, 0, 28, 0, 0, 29,
10772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10773 0, 30, 0, 0, 0, 0, 0, 0, 0, 0,
10774 31, 0, 0, 0, 0, 0, 0, 0, 30, 0,
10775 0, 0, 0, 0, 32, 0, 0, 31, 0, 0,
10776 0, 33, 0, 0, 0, 34, 0, 0, 0, 0,
10777 0, 32, 0, 0, 0, 35, 0, 0, 33, 0,
10778 0, 0, 34, 0, 0, 0, 0, 36, 0, 0,
10779 0, 37, 35, 0, 0, 0, 0, 0, 0, 0,
10780 0, 0, 0, 0, 36, 0, 0, 0, 37, 0,
10781 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10782 0, 0, 0, 39, 0, 0, 0, 38, 0, 41,
10783 0, 0, 0, 0, 42, 0, 0, 0, 562, 0,
10784 39, 0, 0, 0, 0, 0, 41, 0, 43, 0,
10785 0, 42, 0, 0, 0, 0, 0, 0, 0, 0,
10786 0, 0, 0, 0, 0, 43, 0, 0, 0, 0,
10787 0, 0, 44, 0, 0, 0, 0, 0, 0, 0,
10788 0, 0, 0, 0, 0, 0, 563, 0, 0, 44,
10789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10790 0, 0, 0, 45
10791};
10792
10793static const yytype_int16 yycheck[] =
10794{
10795 7, 69, 45, 557, 498, 623, 705, 555, 722, 0,
10796 937, 0, 0, 0, 21, 1161, 0, 563, 0, 0,
10797 0, 646, 790, 1172, 821, 669, 1159, 824, 0, 7,
10798 691, 717, 917, 0, 978, 1445, 713, 796, 18, 1628,
10799 1336, 1139, 2082, 21, 917, 36, 1515, 1128, 1136, 2137,
10800 18, 1589, 73, 2053, 1493, 2055, 1134, 555, 1731, 705,
10801 73, 707, 2072, 709, 71, 72, 37, 2183, 2184, 2185,
10802 1289, 928, 562, 1341, 563, 1095, 1164, 928, 1542, 1543,
10803 1062, 928, 619, 558, 928, 1067, 2505, 624, 2537, 2535,
10804 2019, 1385, 0, 71, 72, 0, 2505, 0, 2133, 0,
10805 0, 0, 1029, 94, 0, 2071, 1031, 0, 44, 2557,
10806 0, 0, 0, 0, 2550, 0, 753, 754, 0, 2381,
10807 0, 5, 616, 0, 0, 1749, 0, 0, 0, 24,
10808 2196, 0, 586, 104, 5, 13, 14, 1746, 21, 5,
10809 0, 0, 1646, 780, 55, 1648, 686, 13, 14, 63,
10810 5, 681, 2849, 5, 1874, 1593, 2461, 78, 13, 14,
10811 2465, 13, 14, 5, 5, 5, 5, 661, 5, 5,
10812 9, 13, 14, 13, 14, 9, 5, 5, 2213, 5,
10813 4, 9, 5, 5, 828, 9, 5, 5, 71, 72,
10814 7, 5, 2203, 5, 168, 45, 115, 5, 11, 2207,
10815 1073, 135, 72, 16, 21, 30, 118, 105, 71, 72,
10816 53, 120, 5, 38, 5, 686, 63, 63, 5, 23,
10817 24, 5, 2354, 185, 118, 63, 2836, 13, 14, 3,
10818 4, 5, 63, 46, 176, 9, 21, 9, 98, 98,
10819 2697, 11, 2852, 45, 239, 239, 16, 2282, 2283, 30,
10820 2285, 30, 280, 283, 71, 72, 169, 38, 88, 38,
10821 8, 3006, 1021, 11, 282, 78, 268, 15, 16, 946,
10822 167, 19, 20, 21, 2743, 1148, 2813, 80, 1151, 1152,
10823 11, 2678, 926, 2680, 15, 16, 71, 72, 91, 304,
10824 105, 118, 790, 3, 164, 125, 1329, 368, 288, 143,
10825 168, 187, 356, 107, 304, 115, 133, 1907, 1908, 2425,
10826 271, 929, 1256, 207, 221, 46, 167, 3126, 1918, 395,
10827 40, 1265, 1922, 2475, 34, 35, 30, 240, 288, 172,
10828 11, 73, 64, 80, 15, 16, 2336, 30, 167, 113,
10829 72, 377, 357, 3157, 91, 188, 11, 78, 128, 2424,
10830 193, 2426, 113, 40, 333, 347, 161, 145, 265, 996,
10831 997, 4, 3188, 30, 33, 418, 9, 361, 212, 2042,
10832 116, 917, 464, 13, 14, 1012, 106, 3181, 3182, 1147,
10833 456, 46, 404, 375, 1028, 106, 2474, 187, 231, 2798,
10834 59, 370, 11, 930, 486, 2844, 15, 16, 11, 489,
10835 2846, 1078, 15, 16, 41, 942, 2855, 195, 3217, 2449,
10836 500, 3220, 465, 78, 113, 2567, 83, 3027, 265, 441,
10837 333, 382, 282, 282, 128, 92, 405, 46, 3125, 3233,
10838 920, 977, 300, 504, 348, 128, 2471, 439, 2473, 213,
10839 1460, 436, 436, 189, 288, 193, 500, 114, 2377, 319,
10840 265, 171, 3278, 1900, 1901, 1902, 166, 370, 168, 78,
10841 346, 235, 272, 3231, 500, 3279, 208, 3004, 216, 299,
10842 500, 378, 500, 1493, 1507, 454, 305, 306, 307, 2876,
10843 495, 979, 500, 1127, 171, 122, 185, 1926, 1413, 349,
10844 349, 318, 405, 2625, 2951, 495, 2965, 277, 1123, 1124,
10845 442, 348, 348, 235, 3313, 500, 500, 405, 3253, 314,
10846 348, 272, 1806, 381, 504, 2984, 1735, 348, 185, 416,
10847 563, 3218, 162, 514, 458, 444, 500, 439, 375, 1075,
10848 1076, 198, 439, 442, 2609, 2546, 284, 380, 500, 368,
10849 1034, 454, 157, 343, 504, 439, 8, 3315, 555, 11,
10850 2019, 2586, 402, 15, 16, 2563, 563, 19, 20, 21,
10851 385, 258, 80, 433, 4, 416, 392, 393, 267, 9,
10852 1100, 614, 2292, 91, 36, 1073, 405, 498, 106, 3015,
10853 410, 502, 562, 80, 2088, 1125, 2089, 3006, 432, 500,
10854 504, 2215, 489, 2057, 91, 563, 603, 3006, 1676, 2208,
10855 402, 157, 462, 462, 385, 502, 385, 614, 437, 3219,
10856 451, 106, 2081, 416, 311, 956, 500, 232, 1764, 448,
10857 0, 962, 500, 691, 508, 603, 2714, 498, 1314, 500,
10858 1555, 502, 1293, 462, 500, 1089, 614, 2075, 659, 646,
10859 647, 501, 501, 503, 503, 500, 659, 1591, 500, 1147,
10860 2912, 2956, 464, 508, 1125, 2721, 2961, 486, 500, 500,
10861 500, 500, 669, 500, 500, 499, 504, 491, 492, 416,
10862 1819, 500, 500, 504, 486, 3124, 232, 500, 500, 159,
10863 464, 500, 500, 496, 3132, 1329, 500, 678, 500, 678,
10864 678, 678, 500, 664, 678, 3131, 678, 678, 678, 667,
10865 1337, 1338, 486, 598, 711, 712, 678, 500, 715, 500,
10866 681, 678, 1931, 500, 500, 2831, 500, 491, 492, 491,
10867 492, 251, 252, 279, 391, 8, 496, 394, 11, 2695,
10868 197, 614, 15, 16, 670, 405, 19, 20, 21, 487,
10869 488, 489, 452, 491, 492, 493, 494, 495, 496, 2043,
10870 2350, 614, 961, 11, 216, 2938, 965, 2940, 1306, 442,
10871 491, 492, 493, 494, 495, 496, 1691, 495, 1693, 3215,
10872 678, 104, 2701, 678, 502, 678, 500, 678, 678, 678,
10873 3229, 116, 678, 790, 264, 678, 603, 1335, 678, 678,
10874 678, 678, 596, 678, 598, 239, 678, 614, 678, 2834,
10875 159, 678, 678, 1351, 678, 678, 678, 1451, 1306, 678,
10876 491, 492, 493, 494, 495, 496, 504, 500, 603, 462,
10877 78, 828, 284, 2748, 628, 3271, 173, 128, 1772, 614,
10878 1384, 2756, 1705, 1387, 3253, 365, 366, 1335, 1336, 1393,
10879 1465, 239, 1715, 486, 3253, 1718, 650, 239, 491, 492,
10880 1396, 144, 59, 1351, 189, 1844, 328, 1482, 26, 1536,
10881 1537, 1538, 1506, 1507, 32, 267, 225, 1887, 503, 3052,
10882 272, 442, 1516, 157, 493, 494, 495, 496, 162, 2967,
10883 493, 494, 495, 496, 489, 357, 1875, 239, 235, 3338,
10884 2337, 2338, 2339, 2340, 361, 1539, 128, 502, 239, 69,
10885 70, 194, 169, 370, 2314, 1395, 1926, 1396, 2377, 72,
10886 917, 115, 245, 1895, 1389, 462, 3319, 361, 925, 926,
10887 253, 1458, 173, 155, 931, 327, 2390, 934, 935, 500,
10888 937, 938, 939, 940, 128, 1820, 26, 2947, 405, 486,
10889 920, 409, 32, 411, 1801, 1439, 953, 1820, 232, 1800,
10890 113, 1971, 3355, 960, 1801, 1802, 1803, 1801, 1802, 4,
10891 167, 155, 452, 361, 9, 133, 267, 2186, 26, 361,
10892 977, 978, 979, 240, 2242, 953, 277, 3085, 2059, 3087,
10893 2061, 2249, 960, 2251, 235, 1782, 1029, 454, 995, 4,
10894 40, 5, 436, 495, 9, 279, 2669, 201, 1546, 500,
10895 502, 284, 1701, 4, 1558, 343, 1013, 1804, 9, 361,
10896 60, 1808, 3100, 501, 1811, 2161, 504, 1024, 1025, 1026,
10897 361, 1028, 1029, 197, 1031, 487, 488, 489, 1674, 491,
10898 492, 493, 494, 495, 496, 267, 2505, 498, 436, 1753,
10899 272, 502, 1827, 133, 436, 277, 1831, 501, 1546, 1834,
10900 504, 1058, 157, 3161, 104, 1701, 500, 162, 409, 3175,
10901 411, 265, 409, 267, 411, 498, 333, 500, 1075, 1076,
10902 953, 1732, 1733, 1734, 1720, 133, 498, 960, 272, 1725,
10903 502, 2169, 186, 277, 436, 1106, 1107, 3, 1109, 436,
10904 953, 2111, 464, 1106, 1107, 436, 1109, 960, 305, 306,
10905 307, 1108, 500, 370, 267, 1112, 1113, 2403, 500, 272,
10906 361, 143, 246, 917, 486, 1122, 1123, 1124, 286, 464,
10907 1127, 173, 2049, 421, 928, 157, 2224, 232, 500, 1100,
10908 162, 951, 2230, 498, 1682, 1779, 953, 502, 405, 405,
10909 1147, 486, 333, 960, 221, 197, 196, 364, 500, 969,
10910 498, 454, 500, 973, 502, 500, 319, 1711, 409, 500,
10911 411, 368, 1716, 462, 2603, 464, 555, 760, 953, 409,
10912 500, 411, 335, 977, 279, 960, 162, 345, 501, 370,
10913 212, 504, 500, 235, 1682, 436, 500, 454, 265, 782,
10914 501, 423, 1163, 504, 501, 245, 286, 504, 405, 409,
10915 232, 411, 434, 253, 487, 488, 489, 375, 491, 492,
10916 493, 494, 495, 496, 405, 265, 13, 14, 2143, 2144,
10917 2145, 500, 1450, 816, 1452, 1453, 13, 14, 286, 423,
10918 437, 500, 2701, 501, 1038, 287, 504, 13, 14, 1883,
10919 434, 448, 3330, 1047, 1792, 501, 296, 279, 504, 1256,
10920 500, 341, 329, 500, 8, 345, 288, 11, 1265, 167,
10921 1064, 15, 16, 454, 500, 19, 20, 21, 493, 1073,
10922 433, 1075, 1076, 935, 1820, 12, 3316, 445, 3318, 442,
10923 17, 501, 1289, 3283, 504, 375, 500, 345, 1836, 347,
10924 13, 14, 29, 500, 1792, 500, 26, 347, 3298, 1306,
10925 1848, 378, 32, 2143, 2600, 2145, 43, 44, 648, 649,
10926 500, 651, 501, 486, 3354, 504, 1305, 375, 1305, 2471,
10927 370, 2473, 1329, 1305, 1305, 26, 13, 14, 1335, 1336,
10928 1878, 32, 2352, 683, 500, 685, 2356, 1885, 1836, 389,
10929 13, 14, 2488, 2140, 1351, 2142, 501, 483, 3348, 504,
10930 1848, 2276, 218, 3353, 2487, 445, 502, 409, 282, 411,
10931 483, 2657, 439, 2007, 501, 102, 6, 504, 501, 9,
10932 502, 504, 183, 184, 501, 1923, 16, 504, 1385, 1927,
10933 1878, 433, 166, 1929, 436, 1933, 2271, 1885, 2486, 1396,
10934 2488, 31, 504, 2054, 2472, 35, 167, 2530, 501, 501,
10935 432, 790, 504, 133, 500, 8, 1413, 1000, 11, 13,
10936 14, 1418, 15, 16, 501, 1395, 19, 20, 21, 287,
10937 501, 501, 1015, 504, 504, 1923, 13, 14, 1396, 1927,
10938 1437, 1438, 133, 36, 501, 1933, 1443, 504, 1445, 193,
10939 251, 252, 26, 1450, 1451, 1452, 1453, 501, 32, 59,
10940 504, 501, 501, 501, 2381, 504, 504, 501, 1465, 1466,
10941 504, 501, 216, 1470, 504, 1472, 498, 1445, 1475, 501,
10942 502, 501, 500, 1480, 504, 1482, 1483, 501, 1485, 406,
10943 504, 501, 1489, 501, 504, 483, 504, 2246, 2247, 218,
10944 501, 2116, 1470, 504, 1472, 501, 148, 1475, 504, 1506,
10945 1507, 341, 1480, 148, 1511, 1483, 1513, 1485, 40, 1516,
10946 501, 1489, 1503, 504, 501, 1503, 148, 504, 501, 1503,
10947 2206, 504, 501, 1503, 148, 504, 13, 14, 1535, 501,
10948 284, 1503, 1539, 500, 1541, 267, 1503, 3006, 40, 1546,
10949 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 133,
10950 3088, 454, 1559, 1560, 365, 366, 286, 1564, 0, 13,
10951 14, 1568, 13, 14, 1571, 1572, 1573, 1574, 1575, 1576,
10952 1577, 1578, 1579, 87, 2870, 1582, 18, 2502, 148, 21,
10953 466, 2506, 1589, 2508, 1591, 286, 451, 1470, 500, 1472,
10954 979, 315, 1475, 500, 36, 13, 14, 1480, 37, 148,
10955 1483, 500, 1485, 45, 500, 1612, 1489, 1470, 1412, 1472,
10956 1631, 341, 1475, 216, 40, 345, 2762, 1480, 1631, 500,
10957 1483, 500, 1485, 13, 14, 39, 1489, 1634, 1445, 71,
10958 72, 73, 2505, 3043, 60, 13, 14, 2715, 1645, 1646,
10959 341, 148, 1610, 502, 345, 375, 13, 14, 13, 14,
10960 13, 14, 94, 1470, 148, 1472, 13, 14, 1475, 148,
10961 1445, 13, 14, 1480, 13, 14, 1483, 282, 1485, 2217,
10962 13, 14, 1489, 416, 375, 1682, 13, 14, 104, 13,
10963 14, 284, 26, 2832, 1691, 1470, 1693, 1472, 32, 501,
10964 1475, 500, 3281, 13, 14, 1480, 3285, 500, 1483, 500,
10965 1485, 500, 286, 407, 1489, 13, 14, 356, 357, 356,
10966 357, 255, 256, 2267, 214, 445, 219, 365, 366, 2217,
10967 356, 357, 356, 357, 1731, 2271, 2670, 291, 1735, 168,
10968 500, 1738, 1739, 487, 488, 489, 219, 491, 492, 493,
10969 494, 495, 496, 219, 445, 171, 289, 447, 448, 500,
10970 3339, 1075, 1076, 40, 40, 230, 500, 341, 1147, 5,
10971 5, 345, 500, 2440, 203, 1772, 500, 500, 5, 500,
10972 196, 5, 1779, 500, 60, 1437, 1438, 1768, 3188, 5,
10973 219, 1443, 2579, 500, 3253, 1792, 5, 9, 144, 133,
10974 229, 375, 529, 500, 463, 1599, 293, 102, 504, 1806,
10975 40, 504, 501, 214, 8, 279, 375, 11, 162, 162,
10976 277, 15, 16, 1820, 230, 19, 20, 21, 104, 245,
10977 3230, 59, 559, 500, 416, 500, 2540, 253, 91, 1836,
10978 504, 416, 36, 1840, 1841, 59, 1843, 416, 2463, 265,
10979 416, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 59, 258,
10980 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866,
10981 510, 445, 2523, 416, 462, 1872, 1873, 148, 3278, 1876,
10982 296, 1878, 267, 98, 2560, 267, 1883, 500, 1885, 3012,
10983 2753, 40, 267, 267, 487, 488, 489, 500, 491, 492,
10984 493, 494, 495, 496, 3, 500, 9, 39, 1905, 414,
10985 72, 414, 1909, 498, 1911, 2403, 78, 498, 1915, 502,
10986 196, 416, 416, 352, 167, 416, 1923, 1306, 416, 91,
10987 1927, 347, 1929, 501, 1931, 500, 1933, 501, 501, 501,
10988 369, 1909, 459, 670, 143, 1942, 501, 1915, 501, 501,
10989 501, 113, 286, 115, 370, 504, 1335, 1336, 157, 219,
10990 219, 274, 274, 162, 500, 500, 504, 2505, 2885, 245,
10991 11, 2905, 1351, 389, 2007, 458, 1973, 253, 2765, 2766,
10992 343, 1978, 1979, 3122, 499, 504, 510, 414, 504, 265,
10993 500, 2866, 272, 37, 500, 509, 416, 176, 158, 167,
10994 501, 500, 504, 442, 212, 2002, 2003, 341, 504, 26,
10995 2007, 345, 258, 212, 378, 32, 221, 2505, 283, 304,
10996 296, 304, 216, 504, 2021, 176, 1820, 2024, 504, 2026,
10997 214, 501, 1826, 232, 221, 267, 1909, 2575, 500, 201,
10998 2798, 375, 1915, 221, 288, 2042, 2043, 280, 500, 324,
10999 500, 454, 2049, 148, 148, 2052, 1909, 3067, 148, 148,
11000 462, 40, 1915, 267, 282, 501, 501, 498, 483, 483,
11001 2067, 347, 282, 501, 40, 501, 501, 501, 59, 167,
11002 279, 11, 514, 2080, 2052, 2066, 2630, 2575, 2066, 288,
11003 284, 40, 2066, 162, 370, 500, 2066, 176, 162, 2067,
11004 2097, 2098, 1909, 501, 2066, 267, 501, 501, 1915, 2066,
11005 272, 445, 2600, 389, 501, 501, 133, 2114, 499, 2116,
11006 3256, 500, 500, 416, 168, 8, 509, 504, 2125, 502,
11007 562, 563, 15, 16, 1909, 1929, 19, 20, 21, 501,
11008 1915, 501, 501, 3006, 167, 483, 2143, 2144, 2145, 500,
11009 500, 500, 500, 151, 459, 40, 59, 319, 489, 203,
11010 485, 283, 283, 504, 504, 439, 238, 1546, 59, 2657,
11011 59, 603, 258, 335, 416, 219, 267, 500, 2211, 2052,
11012 148, 197, 614, 148, 148, 229, 3101, 416, 499, 2186,
11013 2734, 416, 274, 416, 2067, 416, 274, 1849, 1850, 1851,
11014 1852, 1853, 1854, 40, 501, 1857, 1858, 1859, 1860, 1861,
11015 1862, 1863, 1864, 1865, 1866, 343, 500, 504, 7, 8,
11016 2217, 280, 2201, 12, 2201, 282, 2764, 659, 17, 2201,
11017 2201, 501, 21, 432, 23, 24, 462, 40, 2235, 28,
11018 29, 30, 148, 501, 33, 2052, 678, 36, 37, 499,
11019 499, 40, 272, 167, 43, 44, 501, 167, 59, 500,
11020 2067, 500, 180, 501, 501, 162, 78, 501, 139, 286,
11021 501, 433, 193, 167, 2271, 349, 2764, 2052, 500, 2276,
11022 442, 501, 71, 72, 501, 292, 283, 500, 176, 148,
11023 501, 510, 2067, 487, 488, 489, 171, 491, 492, 493,
11024 494, 495, 496, 1682, 504, 94, 501, 500, 352, 2985,
11025 2798, 501, 101, 102, 103, 104, 105, 2314, 504, 501,
11026 500, 427, 40, 500, 341, 369, 501, 3244, 345, 501,
11027 2866, 501, 501, 504, 500, 143, 40, 84, 442, 504,
11028 3255, 499, 167, 500, 461, 501, 2314, 501, 2381, 157,
11029 2002, 2003, 193, 501, 162, 501, 2150, 2354, 375, 504,
11030 2418, 501, 501, 448, 489, 282, 59, 1094, 501, 462,
11031 501, 37, 501, 2370, 501, 199, 42, 2374, 2375, 113,
11032 2413, 173, 2870, 40, 2381, 500, 2354, 221, 86, 186,
11033 3253, 305, 306, 307, 2391, 272, 272, 2394, 416, 2396,
11034 2194, 284, 502, 416, 212, 197, 2403, 2404, 489, 501,
11035 2407, 2408, 40, 1792, 267, 2412, 2413, 2211, 3069, 3053,
11036 500, 3055, 2419, 3090, 232, 502, 502, 502, 445, 502,
11037 2463, 502, 502, 99, 502, 502, 2433, 502, 105, 502,
11038 502, 502, 502, 235, 502, 40, 2443, 502, 502, 502,
11039 3065, 502, 502, 502, 368, 502, 2437, 1836, 462, 502,
11040 3068, 282, 502, 3071, 502, 502, 2463, 502, 3006, 1848,
11041 502, 279, 502, 502, 502, 502, 500, 2271, 9, 342,
11042 288, 500, 504, 326, 2278, 500, 2280, 96, 920, 501,
11043 2284, 405, 2286, 504, 59, 287, 501, 193, 186, 1878,
11044 499, 504, 168, 447, 89, 2502, 1885, 2314, 2505, 2506,
11045 3199, 2508, 501, 335, 3190, 500, 40, 148, 3006, 501,
11046 120, 953, 148, 437, 40, 501, 357, 357, 960, 3180,
11047 40, 501, 40, 500, 448, 504, 301, 203, 3, 2314,
11048 5, 500, 442, 500, 1923, 500, 272, 185, 1927, 243,
11049 442, 72, 500, 219, 1933, 2536, 285, 427, 167, 991,
11050 2539, 3176, 2539, 229, 78, 72, 9, 2539, 2539, 361,
11051 1002, 359, 501, 501, 500, 59, 501, 129, 2575, 91,
11052 489, 2562, 265, 282, 2565, 427, 500, 40, 500, 2622,
11053 285, 447, 500, 285, 501, 261, 501, 1029, 199, 501,
11054 2597, 282, 501, 2600, 487, 488, 489, 282, 491, 492,
11055 493, 494, 495, 496, 501, 375, 282, 409, 118, 411,
11056 2617, 2618, 439, 356, 432, 2622, 25, 36, 2625, 2138,
11057 678, 1699, 2489, 2502, 3092, 427, 3230, 2634, 3184, 305,
11058 2441, 433, 107, 108, 436, 3329, 312, 2758, 3205, 2646,
11059 3308, 2978, 3257, 3266, 2651, 2652, 3301, 2625, 2691, 2656,
11060 2657, 3029, 1134, 1390, 2661, 1392, 2131, 2664, 2665, 2144,
11061 3154, 3255, 2669, 2670, 1106, 1107, 2673, 1109, 3264, 2128,
11062 2677, 3252, 2481, 3227, 1384, 2508, 352, 2684, 1335, 2200,
11063 498, 1303, 2276, 2866, 502, 2114, 305, 306, 307, 2551,
11064 952, 1094, 2080, 369, 952, 1670, 1116, 2532, 1115, 2677,
11065 3239, 2505, 37, 2335, 2097, 3253, 1634, 42, 183, 184,
11066 3163, 3057, 1669, 21, 2067, 2625, 515, 1118, 1921, 2909,
11067 519, 2728, 614, 522, 930, 603, 2314, 2313, 2532, 2736,
11068 529, 2362, 2999, 1353, 3167, 928, 3166, 928, 1980, 3294,
11069 2025, 2375, 928, 1943, 928, 2407, 2408, 2081, 2755, 368,
11070 2022, 1466, 2684, 1982, 2066, 3253, 3152, 2764, 557, 558,
11071 559, 437, 2388, 1396, 99, 1929, 442, 597, 1610, 2442,
11072 1611, 14, 247, 248, 249, 250, 251, 252, 30, 94,
11073 255, 256, -1, -1, -1, 12, 405, -1, -1, -1,
11074 17, 2798, -1, -1, 2677, -1, -1, 596, 597, 598,
11075 -1, -1, 29, -1, 603, 424, 605, -1, -1, -1,
11076 -1, -1, -1, -1, 2677, 614, 43, 44, 437, 618,
11077 619, -1, -1, 2627, 623, 624, -1, -1, 2217, 448,
11078 -1, 2838, -1, 168, -1, -1, -1, -1, -1, 40,
11079 -1, 176, 2885, 462, -1, -1, -1, -1, -1, 648,
11080 649, -1, 651, -1, -1, -1, 2847, -1, -1, 2866,
11081 2677, -1, 2869, 2870, -1, 664, -1, 486, 203, -1,
11082 -1, 670, -1, -1, -1, 102, -1, 2681, 2885, -1,
11083 -1, 500, 681, -1, 219, -1, -1, -1, -1, -1,
11084 365, 366, 2677, -1, 229, -1, 695, -1, 2905, -1,
11085 101, -1, 103, -1, 105, 2912, -1, -1, -1, -1,
11086 -1, 8, -1, -1, 11, -1, 2923, 2924, 15, 16,
11087 2927, -1, 19, 20, 21, -1, 261, -1, -1, 37,
11088 729, 730, 731, 732, 42, 2597, -1, -1, -1, -1,
11089 1677, -1, -1, -1, -1, 2952, -1, 282, -1, 46,
11090 1687, -1, 1689, 1395, -1, 1692, 53, -1, -1, -1,
11091 -1, 1698, -1, 1700, -1, -1, -1, -1, -1, 2976,
11092 305, -1, -1, -1, -1, 1712, -1, 312, -1, -1,
11093 1717, 78, -1, -1, 1721, 1722, 1723, 1724, -1, 1726,
11094 1727, 99, -1, -1, -1, -1, -1, -1, -1, 3006,
11095 -1, -1, -1, 555, -1, 480, 481, -1, -1, -1,
11096 -1, 167, -1, -1, 2403, -1, -1, 352, -1, -1,
11097 555, -1, -1, -1, -1, -1, 3017, 3018, 1470, -1,
11098 1472, -1, 3039, 1475, 369, 37, 3043, -1, 1480, 2843,
11099 42, 1483, -1, 1485, -1, -1, 3053, 1489, 3055, -1,
11100 3057, -1, -1, -1, 3061, -1, 3063, -1, 3065, -1,
11101 168, 1503, 2866, -1, -1, 3043, -1, -1, 3075, -1,
11102 -1, -1, -1, -1, 2736, 172, 8, -1, -1, 11,
11103 -1, 3088, -1, 15, 16, -1, -1, 19, 20, 21,
11104 -1, 188, -1, -1, 3101, 203, 193, 99, 3089, 3106,
11105 3091, -1, 437, -1, 36, -1, -1, 442, -1, -1,
11106 -1, 219, -1, -1, -1, -1, 2505, -1, -1, 1561,
11107 -1, 229, -1, -1, -1, -1, -1, -1, -1, -1,
11108 929, 930, -1, 932, 231, 2939, 935, -1, -1, 3130,
11109 -1, -1, 941, 942, -1, -1, 3153, -1, 947, 305,
11110 306, 307, -1, 261, 953, 3146, 3163, -1, -1, 3150,
11111 -1, 960, -1, -1, 113, -1, 168, -1, -1, 3176,
11112 -1, 970, -1, -1, 282, -1, -1, -1, -1, -1,
11113 -1, 3188, -1, 55, 983, -1, 2575, 284, -1, 1631,
11114 -1, -1, -1, -1, -1, -1, -1, 305, -1, 3206,
11115 -1, 203, 3006, -1, 312, -1, -1, 2869, -1, -1,
11116 3188, 2600, 368, -1, -1, -1, -1, 219, 167, -1,
11117 -1, -1, -1, 3230, -1, -1, 3043, 229, 100, -1,
11118 -1, -1, -1, -1, 1033, -1, -1, 3244, 790, -1,
11119 -1, -1, -1, -1, 352, -1, 3253, 119, 3255, 405,
11120 -1, -1, 3230, -1, -1, 790, -1, -1, 3043, 261,
11121 -1, 369, -1, -1, -1, 137, -1, -1, 2657, 141,
11122 -1, 3278, -1, -1, -1, -1, -1, -1, 1077, 3270,
11123 1079, 437, -1, 380, 216, -1, 3293, 3294, -1, -1,
11124 -1, 163, 448, -1, 166, 1094, 1095, -1, -1, -1,
11125 3278, 1100, 529, 305, -1, 3296, 462, -1, -1, 181,
11126 312, -1, 3319, -1, 515, -1, -1, 1759, 519, 3123,
11127 -1, 522, -1, 1122, -1, -1, 1768, 2064, -1, 437,
11128 486, 558, 559, -1, 1133, 1134, -1, -1, -1, -1,
11129 -1, -1, -1, -1, 500, -1, 295, 1146, 3355, -1,
11130 352, -1, 284, 40, -1, -1, 305, 306, 307, -1,
11131 -1, -1, -1, -1, 1163, -1, -1, 369, 1167, -1,
11132 -1, 3188, 1171, 60, -1, 2764, -1, -1, -1, -1,
11133 -1, -1, -1, -1, -1, -1, -1, 484, -1, -1,
11134 487, 488, 489, -1, 491, 492, 493, 494, 495, 496,
11135 272, -1, -1, 3188, 605, -1, -1, -1, 280, 2798,
11136 -1, -1, -1, 3230, -1, -1, -1, 104, 105, 368,
11137 -1, -1, -1, -1, -1, -1, 113, 979, -1, 301,
11138 -1, -1, -1, -1, -1, 437, -1, -1, -1, -1,
11139 -1, -1, -1, 670, 979, 3230, -1, -1, -1, 3253,
11140 -1, -1, -1, -1, -1, 327, 405, -1, -1, -1,
11141 -1, 3278, -1, -1, -1, -1, -1, 1909, -1, -1,
11142 -1, -1, 8, 1915, -1, 11, -1, -1, -1, 15,
11143 16, 2870, -1, -1, 171, -1, 3290, -1, 437, -1,
11144 2227, -1, -1, 3278, 695, -1, -1, -1, -1, 448,
11145 -1, 1300, -1, 1302, -1, -1, -1, -1, 1307, 196,
11146 46, -1, -1, 462, -1, -1, -1, 53, -1, 1318,
11147 -1, -1, -1, -1, -1, -1, -1, -1, 729, 730,
11148 731, 732, -1, -1, -1, -1, -1, 486, -1, -1,
11149 -1, -1, 78, -1, -1, -1, -1, -1, -1, 1348,
11150 -1, 500, -1, -1, 1353, 487, 488, 489, 245, 491,
11151 492, 493, 494, 495, 496, 2007, 253, -1, -1, -1,
11152 0, -1, -1, -1, -1, -1, -1, -1, 265, -1,
11153 267, -1, 147, 2025, -1, 1384, -1, -1, 1387, -1,
11154 1389, 1390, -1, 1392, 1393, 1147, -1, -1, -1, 2041,
11155 -1, -1, 167, -1, -1, 141, -1, -1, -1, 296,
11156 2052, -1, 1147, -1, -1, -1, -1, 3006, -1, -1,
11157 -1, -1, -1, -1, 2066, 2067, -1, -1, -1, -1,
11158 -1, -1, -1, -1, -1, -1, 172, -1, 1437, 1438,
11159 -1, -1, -1, -1, 1443, -1, 1445, -1, -1, -1,
11160 -1, -1, 188, -1, -1, -1, -1, 193, -1, 1458,
11161 347, 1460, 1461, -1, -1, -1, -1, -1, 98, 1468,
11162 -1, 1470, -1, 1472, -1, -1, 1475, -1, -1, -1,
11163 -1, 1480, -1, 370, 1483, -1, 1485, -1, -1, -1,
11164 1489, -1, 1491, -1, 1493, 231, -1, -1, -1, 0,
11165 -1, -1, 389, -1, 391, -1, -1, 394, -1, -1,
11166 -1, -1, -1, 143, -1, -1, 1515, -1, -1, -1,
11167 947, 1520, -1, -1, -1, -1, -1, 157, -1, 2466,
11168 2467, 932, 162, -1, -1, -1, -1, 167, -1, -1,
11169 305, 306, 307, 970, -1, -1, 176, -1, 284, -1,
11170 180, -1, -1, -1, 1306, -1, -1, 2494, -1, 1558,
11171 -1, -1, -1, -1, -1, -1, -1, -1, -1, 2211,
11172 -1, 1306, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516,
11173 2517, 2518, 212, 1335, 1336, -1, -1, -1, -1, -1,
11174 -1, -1, -1, -1, -1, -1, -1, 98, -1, 1351,
11175 1335, 1336, 232, 368, -1, -1, 1033, -1, 1607, -1,
11176 1609, -1, 1611, 500, 555, -1, 1351, -1, -1, -1,
11177 -1, -1, 1621, 1622, -1, 147, -1, -1, -1, -1,
11178 -1, -1, -1, -1, -1, 1634, -1, -1, -1, -1,
11179 405, -1, 143, -1, 380, 167, -1, -1, -1, 279,
11180 -1, -1, 282, -1, -1, -1, 157, -1, 288, -1,
11181 1659, 162, 1661, -1, 3253, -1, 167, 1094, 1095, -1,
11182 -1, -1, 437, -1, -1, 176, -1, 1676, 1677, 180,
11183 -1, -1, -1, 448, -1, -1, -1, -1, 1687, 1688,
11184 1689, 1690, -1, 1692, -1, -1, 326, 462, -1, 1698,
11185 -1, 1700, -1, -1, -1, -1, -1, -1, -1, -1,
11186 -1, 212, 1711, 1712, -1, -1, -1, 1716, 1717, 349,
11187 -1, 486, 1721, 1722, 1723, 1724, -1, 1726, 1727, -1,
11188 -1, 232, 1133, -1, -1, 500, -1, -1, -1, 2381,
11189 -1, 167, -1, -1, -1, 1146, -1, -1, 484, 1748,
11190 1749, 1750, 1751, 1752, -1, 491, 492, 493, 494, 495,
11191 496, -1, -1, -1, -1, -1, 1167, 1766, -1, 8,
11192 -1, 2413, 11, -1, -1, 405, 15, 16, 279, -1,
11193 -1, 282, -1, 305, 306, 307, -1, 288, -1, -1,
11194 -1, -1, -1, -1, 1546, 2437, -1, -1, 2735, -1,
11195 -1, -1, 432, -1, -1, -1, -1, 46, -1, -1,
11196 -1, 1546, 442, -1, 53, -1, -1, -1, -1, -1,
11197 -1, 2463, -1, -1, -1, 326, -1, -1, -1, 459,
11198 -1, 461, 462, -1, -1, -1, -1, -1, -1, 78,
11199 -1, -1, -1, -1, -1, -1, 368, -1, 349, 790,
11200 1849, 1850, 1851, 1852, 1853, 1854, -1, -1, 1857, 1858,
11201 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 498, 295,
11202 -1, 501, 502, 503, -1, -1, -1, -1, -1, 305,
11203 306, 307, -1, 405, -1, -1, -1, -1, 1887, -1,
11204 -1, -1, -1, -1, 2536, -1, -1, -1, -1, -1,
11205 1899, 1302, 141, -1, 405, -1, 1307, -1, -1, -1,
11206 1909, -1, -1, -1, -1, 437, 1915, -1, -1, -1,
11207 2562, -1, 1921, 2565, -1, -1, 448, 1926, -1, -1,
11208 1682, 432, 555, 172, -1, -1, -1, -1, -1, -1,
11209 462, 442, 368, -1, -1, 8, -1, 1682, 11, 188,
11210 -1, -1, 15, 16, 193, -1, -1, -1, 459, -1,
11211 461, 462, 1389, 1390, 486, 1392, -1, -1, -1, -1,
11212 -1, -1, 1971, -1, -1, -1, 1975, -1, 500, 405,
11213 2622, 1980, -1, 46, -1, -1, -1, -1, -1, -1,
11214 53, -1, 231, -1, -1, -1, 555, 498, -1, -1,
11215 501, 502, 503, 2002, 2003, -1, -1, -1, -1, -1,
11216 -1, 437, -1, -1, -1, 78, 107, 108, -1, -1,
11217 2019, -1, 448, -1, -1, -1, -1, -1, -1, -1,
11218 -1, -1, -1, 1460, -1, 2677, 462, -1, 979, -1,
11219 1792, -1, -1, -1, -1, 284, -1, -1, -1, 2691,
11220 2987, -1, -1, 2052, -1, -1, -1, 1792, -1, -1,
11221 486, -1, -1, -1, 1491, 2064, 1493, 1468, 2067, -1,
11222 3007, 3008, 2071, -1, 500, -1, -1, -1, 141, -1,
11223 -1, -1, -1, -1, 1836, -1, -1, -1, -1, 3026,
11224 -1, -1, 183, 184, -1, -1, 1848, -1, -1, -1,
11225 -1, 1836, -1, -1, -1, -1, -1, -1, -1, 172,
11226 -1, -1, 2111, 1848, -1, 2114, -1, -1, 2117, -1,
11227 -1, -1, -1, -1, -1, 188, 1878, -1, -1, -1,
11228 193, -1, -1, 1885, 2133, -1, -1, -1, -1, -1,
11229 -1, 380, -1, 1878, -1, -1, -1, -1, -1, -1,
11230 1885, 917, -1, -1, -1, -1, 247, 248, 249, 250,
11231 251, 252, -1, -1, 255, 256, -1, 790, 231, -1,
11232 -1, 1923, -1, -1, -1, 1927, -1, -1, -1, -1,
11233 -1, 1933, -1, -1, -1, -1, -1, -1, 1923, -1,
11234 -1, -1, 1927, -1, -1, -1, -1, 2196, 1933, -1,
11235 -1, -1, -1, 2202, -1, 2847, 1147, -1, 1609, -1,
11236 1611, 977, -1, -1, 2213, 2214, 2215, 2216, -1, -1,
11237 1621, 284, -1, -1, -1, -1, -1, -1, 2227, -1,
11238 2229, 790, -1, 2232, 1661, -1, -1, -1, 2237, -1,
11239 -1, -1, -1, 2885, -1, 484, -1, -1, -1, -1,
11240 1677, 2250, 491, 492, 493, 494, 495, 496, 1659, -1,
11241 1687, -1, 1689, -1, -1, 1692, -1, -1, 2267, -1,
11242 -1, 1698, -1, 1700, 365, 366, -1, -1, -1, -1,
11243 -1, 1047, -1, 2282, 2283, 1712, 2285, -1, -1, -1,
11244 1717, -1, -1, -1, 1721, 1722, 1723, 1724, -1, 1726,
11245 1727, -1, -1, -1, -1, -1, -1, 1073, -1, 1075,
11246 1076, -1, 3249, -1, -1, 2314, -1, 380, -1, -1,
11247 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11248 -1, -1, -1, -1, -1, 2334, -1, -1, -1, -1,
11249 -1, -1, -1, 2342, 2343, 2344, -1, 1748, 1749, 1750,
11250 1751, 1752, -1, 2352, -1, 2354, 979, 2356, -1, -1,
11251 -1, -1, -1, 2362, -1, 1306, -1, -1, -1, -1,
11252 -1, -1, -1, -1, -1, 3017, 3018, -1, 2377, -1,
11253 -1, -1, 1148, -1, -1, 1151, 1152, -1, -1, 480,
11254 481, -1, -1, -1, 1335, 1336, -1, -1, -1, -1,
11255 -1, -1, -1, -1, -1, -1, -1, -1, 2407, 2408,
11256 1351, -1, -1, -1, 107, 108, -1, -1, -1, -1,
11257 979, 484, -1, -1, -1, -1, -1, -1, 491, 492,
11258 493, 494, 495, 496, -1, -1, 2435, -1, -1, -1,
11259 -1, -1, 2441, -1, -1, -1, -1, 3089, -1, 3091,
11260 -1, -1, -1, -1, -1, -1, -1, -1, 2457, -1,
11261 1887, -1, 2461, -1, -1, 2217, 2465, 2466, 2467, -1,
11262 -1, -1, 2471, 2472, 2473, -1, 2475, -1, -1, -1,
11263 -1, -1, 2217, -1, -1, -1, -1, -1, 3130, -1,
11264 183, 184, -1, -1, 1921, 2494, -1, 2496, 1899, 1926,
11265 -1, -1, -1, -1, 3146, -1, -1, -1, 3150, -1,
11266 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518,
11267 -1, -1, -1, -1, 1147, -1, -1, -1, -1, -1,
11268 -1, -1, -1, -1, -1, -1, 2535, -1, -1, -1,
11269 -1, -1, 2541, -1, 1971, -1, -1, -1, -1, -1,
11270 -1, -1, 2551, 1980, 247, 248, 249, 250, 251, 252,
11271 -1, -1, 255, 256, -1, -1, -1, 1333, 2567, -1,
11272 -1, -1, -1, -1, -1, -1, -1, -1, 1344, -1,
11273 1346, -1, -1, -1, -1, -1, -1, 2586, 1147, -1,
11274 1356, -1, -1, -1, -1, -1, -1, -1, 2597, -1,
11275 -1, -1, -1, -1, 2603, 1546, -1, 1373, -1, -1,
11276 -1, 2610, 2611, 2612, 2613, -1, -1, -1, -1, -1,
11277 -1, -1, -1, 2622, -1, -1, 2625, -1, 3270, -1,
11278 2629, 2630, -1, -1, -1, 1401, 1402, 2064, -1, -1,
11279 -1, 8, -1, -1, 11, -1, 2645, -1, 15, 16,
11280 -1, 2403, -1, -1, 3296, -1, -1, -1, -1, -1,
11281 -1, -1, -1, -1, -1, -1, -1, -1, 2403, -1,
11282 -1, -1, 365, 366, -1, -1, 2675, -1, 2677, 46,
11283 -1, -1, -1, 1306, 2111, -1, 53, -1, -1, -1,
11284 2117, -1, 2691, -1, -1, -1, 2695, -1, -1, -1,
11285 -1, -1, 2701, -1, -1, -1, -1, 8, -1, -1,
11286 11, 78, 1335, 1336, 15, 16, 2715, -1, 19, 20,
11287 21, -1, 2721, -1, -1, -1, -1, -1, 1351, -1,
11288 -1, -1, -1, -1, -1, 2734, 2735, 2736, -1, -1,
11289 -1, 1682, -1, 2742, -1, -1, -1, 1306, -1, -1,
11290 -1, -1, -1, 2505, -1, -1, -1, -1, -1, -1,
11291 2759, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11292 2505, -1, -1, -1, 141, -1, 1335, 1336, -1, -1,
11293 -1, -1, -1, -1, -1, -1, -1, 480, 481, -1,
11294 -1, -1, 1351, -1, -1, -1, -1, -1, -1, -1,
11295 2227, 2202, -1, -1, -1, 172, -1, 500, -1, -1,
11296 -1, -1, -1, 2214, 2215, 2216, -1, -1, 646, 647,
11297 -1, 188, -1, 2575, -1, -1, 193, -1, 2229, -1,
11298 -1, 2232, -1, -1, -1, 2834, 2237, -1, -1, -1,
11299 2575, -1, -1, -1, -1, -1, -1, 2846, 2600, -1,
11300 -1, 1792, -1, -1, -1, -1, -1, -1, -1, -1,
11301 -1, 2860, -1, -1, 231, 2600, -1, -1, -1, -1,
11302 2869, -1, -1, -1, -1, 935, -1, -1, -1, 1645,
11303 1646, -1, -1, 711, -1, -1, -1, 715, -1, -1,
11304 -1, -1, -1, -1, -1, 1836, 2895, -1, -1, -1,
11305 -1, -1, 2901, -1, -1, 2657, -1, 1848, -1, -1,
11306 2909, -1, -1, -1, -1, 216, -1, 284, -1, -1,
11307 -1, -1, 2657, 1546, -1, 2352, -1, -1, -1, 2356,
11308 -1, -1, -1, -1, -1, 2362, 2935, 1878, -1, 1705,
11309 -1, 2342, 2343, 2344, 1885, -1, -1, -1, -1, 1715,
11310 935, -1, 1718, -1, -1, -1, -1, 2956, -1, -1,
11311 -1, -1, 2961, 8, -1, -1, 11, -1, -1, -1,
11312 15, 16, -1, -1, 19, 20, 21, -1, -1, -1,
11313 -1, -1, 1923, 284, -1, -1, 1927, 1546, 2987, -1,
11314 -1, -1, 1933, -1, -1, -1, -1, -1, -1, -1,
11315 -1, -1, -1, -1, -1, -1, -1, -1, 3007, 3008,
11316 -1, -1, 2764, 380, -1, -1, -1, -1, -1, -1,
11317 -1, 3020, -1, 3022, -1, -1, -1, 3026, -1, 2764,
11318 1796, 1797, -1, -1, 2461, -1, -1, -1, 2465, 2466,
11319 2467, 3040, -1, -1, 3043, -1, 2798, -1, -1, -1,
11320 -1, -1, -1, 1113, 1820, -1, 2457, -1, -1, 1682,
11321 -1, -1, 1122, 2798, 3063, -1, -1, 2494, 3067, 3068,
11322 -1, -1, 3071, -1, -1, -1, -1, -1, -1, -1,
11323 -1, 0, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516,
11324 2517, 2518, -1, 3092, -1, -1, -1, 925, -1, -1,
11325 3099, -1, -1, 931, -1, -1, 934, -1, -1, 937,
11326 938, 939, 940, -1, -1, -1, -1, 484, 2870, -1,
11327 -1, -1, -1, 1682, 491, 492, 493, 494, 495, 496,
11328 3129, -1, -1, -1, -1, 2870, -1, 1122, -1, -1,
11329 2541, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11330 978, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11331 -1, -1, -1, 1929, -1, -1, -1, 995, 3167, 1792,
11332 -1, 216, -1, -1, -1, -1, 2603, -1, -1, 98,
11333 -1, -1, -1, -1, -1, 1013, 487, 488, 489, 3188,
11334 491, 492, 493, 494, 495, 496, 1024, 1025, 1026, -1,
11335 1028, 1029, 2629, -1, -1, -1, -1, -1, -1, 2610,
11336 2611, 2612, 2613, 1836, -1, -1, 3215, -1, -1, -1,
11337 -1, -1, -1, -1, 143, 1848, -1, -1, 3227, 3228,
11338 1058, 3230, 3231, 1792, -1, -1, -1, -1, 157, 284,
11339 3239, -1, -1, 162, -1, -1, -1, -1, 167, -1,
11340 3249, -1, -1, -1, 3006, 1878, -1, 176, -1, -1,
11341 -1, 180, 1885, -1, -1, -1, -1, -1, -1, -1,
11342 -1, 3006, 3271, -1, -1, -1, 2217, 1836, -1, 3278,
11343 1108, -1, -1, -1, 1112, 1113, -1, -1, -1, 1848,
11344 2056, 8, -1, 212, 11, 1123, 1124, -1, 15, 16,
11345 1923, -1, -1, -1, 1927, -1, -1, -1, 2735, -1,
11346 1933, -1, -1, 232, -1, -1, 3315, -1, -1, 1878,
11347 -1, 2087, 2088, -1, -1, -1, 1885, -1, -1, 46,
11348 3329, -1, -1, -1, -1, -1, 53, -1, -1, -1,
11349 -1, 2742, -1, -1, -1, -1, -1, -1, -1, -1,
11350 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11351 279, 78, -1, 282, 1923, -1, -1, -1, 1927, 288,
11352 -1, -1, -1, -1, 1933, -1, -1, 1437, 1438, -1,
11353 -1, -1, -1, 1443, -1, -1, -1, -1, -1, -1,
11354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11355 -1, -1, -1, -1, -1, -1, -1, 326, -1, -1,
11356 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11357 -1, -1, -1, -1, 141, -1, -1, -1, 1256, -1,
11358 349, -1, -1, -1, -1, -1, -1, 1265, -1, -1,
11359 -1, -1, 487, 488, 489, -1, 491, 492, 493, 494,
11360 495, 496, 1437, 1438, -1, 172, -1, -1, 1443, -1,
11361 -1, 1289, 2403, -1, -1, -1, -1, -1, -1, -1,
11362 -1, 188, -1, -1, 2901, -1, 193, 2243, -1, -1,
11363 -1, 8, 2909, -1, 11, -1, 405, -1, 15, 16,
11364 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11365 -1, 3253, -1, -1, -1, -1, -1, -1, -1, -1,
11366 -1, -1, -1, 432, 231, -1, -1, -1, 3253, 46,
11367 -1, -1, -1, 442, -1, -1, 53, -1, -1, 2956,
11368 -1, -1, -1, -1, 2961, -1, -1, -1, -1, -1,
11369 459, -1, 461, 462, -1, -1, -1, -1, -1, -1,
11370 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
11371 2987, -1, -1, -1, 2505, -1, -1, 284, -1, -1,
11372 -1, -1, -1, -1, 1634, -1, -1, -1, -1, 498,
11373 3007, 3008, 501, 502, 503, -1, -1, -1, -1, -1,
11374 1418, -1, -1, -1, 2217, -1, -1, -1, -1, 3026,
11375 -1, -1, 1587, -1, -1, -1, -1, -1, -1, -1,
11376 -1, -1, -1, -1, 141, -1, -1, -1, -1, 3020,
11377 -1, -1, 1450, -1, 1452, 1453, -1, -1, -1, -1,
11378 -1, -1, -1, -1, 2575, -1, -1, 1465, 1466, 3040,
11379 3067, -1, -1, -1, -1, 172, -1, -1, 8, 1634,
11380 -1, 11, -1, -1, 1482, 15, 16, -1, 2217, 2600,
11381 -1, 188, -1, 380, -1, -1, 193, -1, -1, -1,
11382 -1, -1, -1, -1, -1, 26, -1, -1, -1, -1,
11383 -1, 32, -1, 1511, -1, 1513, 46, -1, -1, 40,
11384 -1, -1, -1, 53, -1, -1, -1, -1, 3099, -1,
11385 -1, -1, -1, -1, 231, -1, -1, -1, -1, 60,
11386 -1, -1, -1, 1541, -1, -1, 2657, -1, 78, 1547,
11387 1548, 1549, 1550, 1551, 1552, 1553, 1554, -1, 3129, -1,
11388 -1, 1559, 1560, -1, -1, -1, 1564, -1, -1, 2505,
11389 1568, -1, -1, 1571, 1572, 1573, 1574, 1575, 1576, 1577,
11390 1578, 1579, -1, 104, 1582, -1, -1, 284, -1, -1,
11391 -1, 1589, -1, 1591, -1, -1, -1, 484, -1, -1,
11392 -1, -1, -1, -1, 491, 492, 493, 494, 495, 496,
11393 2403, -1, 133, -1, 1612, -1, -1, -1, -1, 1849,
11394 1850, 1851, 1852, 1853, 1854, -1, -1, 1857, 1858, 1859,
11395 1860, 1861, 1862, 1863, 1864, 1865, 1866, -1, -1, -1,
11396 -1, -1, 172, -1, -1, -1, -1, 1645, 1646, -1,
11397 -1, -1, 3249, 2764, -1, -1, -1, -1, 188, -1,
11398 -1, -1, -1, 193, -1, -1, -1, -1, -1, -1,
11399 -1, -1, -1, -1, 2403, 196, -1, -1, -1, -1,
11400 -1, -1, -1, 380, -1, -1, -1, 2798, -1, -1,
11401 24, -1, -1, -1, 1849, 1850, 1851, 1852, 1853, 1854,
11402 -1, 231, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864,
11403 1865, 1866, 2505, -1, -1, -1, -1, -1, -1, -1,
11404 -1, -1, -1, -1, 245, -1, -1, -1, -1, -1,
11405 -1, -1, 253, 1731, -1, -1, -1, 1735, -1, -1,
11406 1738, 1739, -1, -1, 265, 79, -1, -1, -1, -1,
11407 -1, -1, -1, -1, 284, -1, -1, -1, -1, 2870,
11408 -1, 95, -1, -1, -1, 286, -1, -1, -1, -1,
11409 -1, -1, 2002, 2003, 1772, 296, 2505, -1, -1, -1,
11410 -1, -1, 2575, -1, -1, -1, -1, 484, -1, -1,
11411 -1, -1, -1, -1, 491, 492, 493, 494, 495, 496,
11412 -1, -1, -1, -1, -1, -1, 0, 2600, 142, -1,
11413 -1, -1, -1, -1, -1, -1, -1, 2753, 152, -1,
11414 341, -1, 2758, -1, 345, -1, 347, -1, 22, -1,
11415 164, -1, -1, -1, -1, 169, -1, -1, 32, -1,
11416 34, 35, 1840, 1841, -1, 1843, 2575, 2002, 2003, 370,
11417 380, -1, -1, 47, 375, -1, -1, -1, 52, -1,
11418 -1, -1, -1, 197, 2657, -1, -1, 61, 389, 2805,
11419 2806, 2600, -1, -1, 1872, 1873, -1, -1, 1876, 73,
11420 -1, -1, -1, -1, 2114, -1, -1, -1, -1, -1,
11421 84, -1, -1, -1, -1, 3006, -1, -1, -1, -1,
11422 -1, -1, 96, -1, 98, -1, 240, 1905, -1, -1,
11423 244, -1, -1, 1911, -1, 109, -1, -1, -1, -1,
11424 -1, -1, -1, -1, 445, -1, -1, -1, 2657, 123,
11425 124, -1, -1, 1931, -1, -1, -1, -1, -1, 133,
11426 -1, -1, -1, -1, 1942, 139, -1, -1, -1, -1,
11427 -1, -1, -1, 147, 484, 149, 150, -1, -1, 2114,
11428 -1, 491, 492, 493, 494, 495, 496, -1, -1, 163,
11429 -1, 2764, -1, 167, -1, 1973, 310, -1, -1, -1,
11430 1978, 1979, -1, -1, -1, -1, -1, -1, -1, -1,
11431 -1, 325, -1, -1, -1, -1, -1, -1, 192, -1,
11432 -1, -1, -1, -1, -1, 2798, -1, -1, -1, -1,
11433 -1, -1, -1, -1, 208, -1, -1, -1, -1, -1,
11434 -1, -1, -1, 2021, 358, -1, 2024, 361, 2026, -1,
11435 -1, -1, -1, -1, -1, 2764, 370, -1, -1, 373,
11436 234, -1, -1, -1, 2042, -1, -1, -1, -1, -1,
11437 -1, -1, -1, -1, -1, -1, -1, 391, -1, 2995,
11438 2996, -1, -1, -1, -1, -1, -1, -1, -1, 2798,
11439 3006, 405, -1, -1, -1, -1, -1, 2870, 412, -1,
11440 -1, -1, 2080, -1, -1, -1, 935, 421, -1, -1,
11441 -1, -1, -1, 427, -1, -1, -1, -1, -1, 2097,
11442 2098, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11443 -1, 305, 306, 307, -1, -1, -1, -1, 2116, 313,
11444 454, -1, 316, -1, -1, -1, -1, 2125, -1, -1,
11445 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11446 -1, 2870, 3253, -1, -1, -1, 8, -1, -1, 11,
11447 -1, 345, -1, 15, 16, -1, -1, 19, 20, 21,
11448 354, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11449 -1, -1, -1, -1, 368, -1, -1, 2407, 2408, -1,
11450 -1, 375, -1, -1, 46, 379, -1, -1, 2186, -1,
11451 -1, 53, -1, -1, -1, 389, -1, -1, -1, 1048,
11452 -1, -1, -1, -1, -1, -1, -1, 401, -1, -1,
11453 -1, 405, -1, 3006, -1, -1, 78, -1, -1, -1,
11454 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11455 424, -1, -1, -1, -1, -1, -1, 2235, -1, -1,
11456 -1, 1090, -1, 437, -1, -1, 440, -1, -1, 443,
11457 -1, -1, 2407, 2408, 448, -1, -1, -1, -1, -1,
11458 -1, -1, -1, -1, -1, -1, -1, -1, 462, -1,
11459 -1, -1, -1, 1122, -1, -1, -1, 3006, -1, -1,
11460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11461 8, -1, 486, 11, -1, -1, -1, 15, 16, 17,
11462 18, 19, 20, 21, -1, -1, 500, -1, -1, 503,
11463 172, -1, -1, -1, -1, -1, -1, 3253, 36, -1,
11464 -1, -1, -1, -1, 1173, -1, 188, -1, 46, -1,
11465 -1, 193, -1, -1, -1, 53, -1, -1, -1, -1,
11466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11467 -1, -1, -1, -1, 216, 217, -1, -1, -1, -1,
11468 78, -1, -1, -1, -1, -1, -1, 2597, -1, 231,
11469 -1, -1, 2370, -1, -1, -1, 2374, 2375, -1, -1,
11470 -1, -1, -1, 2381, -1, 26, -1, -1, -1, -1,
11471 -1, 32, 2622, 2391, -1, -1, 2394, -1, 2396, 40,
11472 -1, -1, -1, -1, -1, 267, 2404, -1, 270, -1,
11473 -1, -1, -1, -1, 2412, 2413, 2646, -1, -1, 60,
11474 -1, 2419, 284, -1, -1, -1, -1, -1, -1, -1,
11475 -1, -1, -1, -1, -1, 2433, -1, -1, -1, -1,
11476 -1, -1, 2597, 1292, -1, 2443, -1, -1, -1, -1,
11477 -1, -1, -1, -1, 172, -1, -1, -1, -1, -1,
11478 3253, -1, -1, 104, -1, 2463, -1, 2622, -1, -1,
11479 188, -1, -1, -1, -1, 193, 8, -1, -1, 11,
11480 -1, -1, -1, 15, 16, 17, 18, 19, 20, 21,
11481 -1, -1, 133, -1, -1, -1, -1, -1, 216, 217,
11482 -1, -1, -1, -1, 36, -1, 2736, -1, -1, -1,
11483 -1, -1, -1, 231, 46, -1, -1, -1, 380, -1,
11484 -1, 53, -1, -1, 3253, -1, -1, -1, -1, -1,
11485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11486 -1, -1, -1, -1, -1, -1, 78, -1, -1, 267,
11487 -1, -1, 270, -1, -1, 196, -1, -1, -1, -1,
11488 -1, -1, -1, -1, -1, -1, 284, 1416, -1, 287,
11489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11490 -1, 2736, -1, -1, 1433, -1, 1435, -1, 1437, 1438,
11491 -1, 1440, -1, -1, 1443, -1, -1, 1446, -1, -1,
11492 1449, -1, -1, -1, 245, 1454, -1, -1, 1457, -1,
11493 -1, -1, 253, -1, -1, -1, -1, -1, -1, 2617,
11494 2618, -1, 484, -1, 265, 487, 488, 489, -1, 491,
11495 492, 493, 494, 495, 496, -1, 2634, -1, -1, 2869,
11496 172, -1, -1, -1, -1, 286, -1, -1, 2646, -1,
11497 -1, -1, -1, 2651, 2652, 296, 188, -1, 2656, -1,
11498 1509, 193, 380, 2661, -1, 1514, 2664, 2665, 1517, 1518,
11499 1519, 2669, 2670, -1, 1523, 2673, -1, -1, 1527, -1,
11500 -1, -1, -1, -1, 216, 217, 2684, -1, -1, -1,
11501 -1, -1, -1, -1, -1, -1, -1, -1, -1, 231,
11502 341, -1, -1, -1, 345, -1, 347, -1, -1, -1,
11503 3, -1, -1, -1, 2869, 8, -1, -1, 11, -1,
11504 -1, -1, 15, 16, 17, 18, 19, 20, 21, 370,
11505 2728, -1, -1, -1, 375, 267, -1, -1, 270, 1588,
11506 -1, -1, -1, 36, -1, -1, -1, 40, 389, -1,
11507 -1, -1, 284, 46, -1, 287, -1, 2755, -1, -1,
11508 53, -1, -1, -1, -1, -1, 484, -1, -1, 487,
11509 488, 489, -1, 491, 492, 493, 494, 495, 496, 1628,
11510 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
11511 -1, -1, 510, -1, -1, 1644, -1, -1, -1, -1,
11512 1649, -1, -1, -1, 445, -1, -1, -1, -1, -1,
11513 -1, -1, -1, -1, -1, -1, -1, 1666, -1, -1,
11514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11515 -1, -1, -1, 3063, -1, -1, -1, -1, -1, -1,
11516 2838, -1, -1, 8, -1, -1, 11, -1, 380, -1,
11517 15, 16, 17, 18, 19, 20, 21, -1, -1, -1,
11518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11519 -1, 36, -1, -1, -1, 40, -1, -1, -1, 172,
11520 -1, 46, -1, -1, -1, -1, -1, 2885, 53, -1,
11521 -1, -1, -1, -1, -1, 188, -1, -1, -1, -1,
11522 193, -1, -1, -1, -1, -1, -1, 2905, 3063, -1,
11523 -1, -1, -1, 78, 2912, -1, -1, -1, -1, -1,
11524 -1, -1, -1, 216, 217, 2923, 2924, -1, -1, 2927,
11525 -1, -1, -1, -1, -1, -1, -1, -1, 231, -1,
11526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11527 -1, -1, 484, -1, 2952, 487, 488, 489, -1, 491,
11528 492, 493, 494, 495, 496, -1, -1, -1, -1, -1,
11529 -1, -1, 504, -1, 267, -1, -1, 270, 2976, -1,
11530 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1838,
11531 -1, 284, -1, -1, 287, -1, -1, 1846, 1847, -1,
11532 1849, 1850, 1851, 1852, 1853, 1854, -1, 172, 1857, 1858,
11533 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, -1,
11534 -1, -1, -1, 188, -1, -1, -1, -1, 193, -1,
11535 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11536 -1, 3039, -1, -1, -1, -1, -1, -1, -1, -1,
11537 -1, 216, 217, -1, -1, -1, -1, -1, -1, 3057,
11538 -1, -1, -1, 3061, -1, -1, 231, 3065, -1, -1,
11539 -1, -1, -1, -1, -1, -1, -1, 3075, -1, -1,
11540 -1, -1, -1, -1, -1, -1, -1, 380, -1, -1,
11541 3088, -1, -1, -1, -1, -1, 1945, 1946, -1, -1,
11542 -1, -1, 267, -1, -1, 270, -1, -1, 3106, -1,
11543 -1, -1, -1, -1, -1, -1, -1, -1, -1, 284,
11544 -1, -1, 287, -1, -1, -1, -1, -1, -1, -1,
11545 -1, -1, -1, -1, -1, -1, 1985, -1, -1, -1,
11546 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, -1, -1,
11547 -1, -1, -1, 2002, 2003, 3153, 2005, 2006, -1, -1,
11548 -1, -1, -1, -1, -1, 3163, -1, -1, 2017, -1,
11549 -1, 2020, -1, -1, -1, -1, -1, -1, 3176, 2028,
11550 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, -1,
11551 -1, 484, -1, -1, 487, 488, 489, -1, 491, 492,
11552 493, 494, 495, 496, -1, -1, -1, -1, 3206, -1,
11553 -1, -1, -1, 8, 2063, 380, 11, -1, -1, -1,
11554 15, 16, 17, 18, 19, 20, 21, -1, -1, -1,
11555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11556 -1, 36, -1, -1, -1, -1, -1, -1, -1, -1,
11557 -1, 46, -1, -1, -1, -1, -1, -1, 53, -1,
11558 -1, -1, -1, -1, -1, 2114, -1, -1, -1, -1,
11559 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11560 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
11561 -1, -1, -1, -1, -1, 3293, 3294, -1, -1, -1,
11562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11563 -1, -1, -1, -1, -1, -1, -1, -1, -1, 484,
11564 -1, 3319, 487, 488, 489, -1, 491, 492, 493, 494,
11565 495, 496, 2181, -1, -1, -1, 501, -1, -1, -1,
11566 -1, -1, 2191, 2192, -1, -1, -1, -1, -1, -1,
11567 -1, -1, -1, -1, -1, -1, -1, 3355, -1, -1,
11568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11569 -1, -1, -1, -1, -1, -1, -1, 172, -1, -1,
11570 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11571 -1, -1, -1, 188, -1, -1, -1, -1, 193, -1,
11572 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11574 -1, 216, 217, -1, -1, -1, -1, -1, -1, -1,
11575 -1, -1, -1, -1, -1, -1, 231, -1, -1, -1,
11576 2289, 2290, 2291, -1, -1, 2294, 2295, 2296, 2297, 2298,
11577 2299, -1, -1, -1, 2303, 2304, 2305, 2306, 2307, 2308,
11578 2309, 2310, 2311, 2312, -1, -1, -1, -1, 2317, 2318,
11579 -1, -1, 267, -1, -1, 270, -1, -1, -1, -1,
11580 -1, -1, -1, -1, -1, -1, -1, -1, -1, 284,
11581 -1, -1, 287, -1, -1, -1, 2345, -1, -1, -1,
11582 8, -1, 2351, 11, -1, -1, -1, 15, 16, 17,
11583 18, 19, 20, 21, -1, -1, -1, -1, -1, -1,
11584 2369, -1, -1, -1, -1, -1, -1, -1, 36, -1,
11585 -1, -1, -1, 2382, -1, -1, 2385, 2386, 46, -1,
11586 -1, -1, -1, 2392, 2393, 53, -1, -1, -1, -1,
11587 -1, -1, -1, -1, -1, -1, -1, 2406, 2407, 2408,
11588 2409, -1, 2411, -1, -1, -1, 2415, -1, -1, -1,
11589 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11590 -1, -1, -1, -1, -1, 380, -1, -1, -1, -1,
11591 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11593 -1, -1, -1, -1, -1, -1, -1, -1, 8, 2468,
11594 -1, 11, -1, -1, -1, 15, 16, 17, 18, 19,
11595 20, 21, -1, -1, -1, -1, -1, -1, -1, -1,
11596 -1, -1, -1, -1, -1, -1, 36, -1, -1, -1,
11597 -1, -1, -1, -1, -1, -1, 46, -1, -1, -1,
11598 -1, -1, -1, 53, 172, -1, -1, -1, -1, -1,
11599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11600 188, -1, -1, -1, -1, 193, -1, -1, 78, 484,
11601 -1, -1, 487, 488, 489, -1, 491, 492, 493, 494,
11602 495, 496, -1, -1, -1, -1, 501, -1, 216, 217,
11603 -1, -1, -1, -1, -1, -1, -1, 2566, -1, -1,
11604 -1, -1, -1, 231, -1, -1, -1, -1, -1, -1,
11605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11606 -1, -1, -1, -1, -1, -1, -1, -1, 2597, -1,
11607 -1, -1, -1, -1, -1, -1, -1, -1, -1, 267,
11608 -1, -1, 270, -1, -1, -1, -1, -1, -1, -1,
11609 -1, -1, -1, -1, -1, -1, 284, -1, -1, 287,
11610 -1, -1, 172, -1, -1, -1, 2635, -1, 2637, -1,
11611 -1, -1, 2641, -1, -1, -1, -1, -1, 188, -1,
11612 -1, 2650, -1, 193, 2653, -1, 2655, -1, -1, -1,
11613 2659, -1, -1, 2662, 2663, -1, -1, 2666, 2667, -1,
11614 -1, -1, -1, -1, -1, 2674, 216, 217, -1, -1,
11615 -1, -1, -1, -1, 2683, -1, -1, -1, -1, -1,
11616 -1, 231, -1, -1, -1, -1, -1, -1, -1, 2698,
11617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11618 -1, -1, -1, 8, -1, -1, 11, -1, -1, -1,
11619 15, 16, 380, -1, 19, 20, 21, 267, -1, -1,
11620 270, -1, -1, -1, -1, -1, -1, 2736, -1, -1,
11621 -1, 36, -1, -1, 284, -1, -1, 287, -1, -1,
11622 -1, 46, -1, -1, -1, -1, -1, -1, 53, -1,
11623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11625 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
11626 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11627 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11628 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11629 -1, -1, -1, -1, -1, -1, 484, -1, -1, 487,
11630 488, 489, -1, 491, 492, 493, 494, 495, 496, -1,
11631 380, -1, -1, 501, -1, -1, -1, -1, -1, -1,
11632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11633 -1, -1, -1, -1, -1, -1, -1, -1, -1, 2868,
11634 2869, -1, -1, -1, -1, -1, -1, 172, -1, -1,
11635 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11636 -1, -1, -1, 188, 2893, 2894, -1, -1, 193, -1,
11637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11638 -1, -1, 2911, -1, -1, -1, 2915, -1, 2917, 2918,
11639 2919, 216, 217, 2922, -1, -1, 2925, 2926, -1, -1,
11640 -1, -1, -1, -1, 2933, -1, 231, -1, -1, -1,
11641 -1, -1, -1, -1, 484, -1, -1, 487, 488, 489,
11642 -1, 491, 492, 493, 494, 495, 496, -1, -1, -1,
11643 -1, 501, -1, -1, -1, -1, -1, -1, -1, -1,
11644 -1, -1, 267, -1, 2973, 270, -1, -1, -1, -1,
11645 2979, -1, -1, -1, -1, -1, -1, -1, -1, 284,
11646 -1, -1, 287, 2992, -1, -1, -1, -1, -1, -1,
11647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11649 3019, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11650 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11651 -1, -1, -1, -1, -1, -1, 3045, -1, -1, -1,
11652 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11654 -1, -1, -1, -1, -1, -1, -1, -1, 3077, 3078,
11655 3079, -1, -1, -1, -1, 380, -1, -1, -1, -1,
11656 -1, -1, -1, -1, -1, -1, 3095, -1, -1, -1,
11657 -1, -1, -1, -1, -1, -1, -1, -1, 3107, -1,
11658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11659 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11660 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11662 -1, -1, 3151, -1, -1, -1, -1, -1, -1, -1,
11663 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3168,
11664 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3178,
11665 -1, -1, -1, -1, -1, -1, -1, -1, -1, 484,
11666 -1, -1, 487, 488, 489, -1, 491, 492, 493, 494,
11667 495, 496, 3201, -1, -1, -1, -1, -1, -1, -1,
11668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11669 -1, -1, -1, -1, -1, -1, -1, 3226, -1, -1,
11670 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
11671 8, 9, 10, -1, -1, -1, -1, -1, -1, -1,
11672 -1, -1, -1, -1, 22, 23, 24, 25, 26, 27,
11673 28, 29, -1, 31, 32, 33, -1, -1, -1, 3268,
11674 -1, 39, -1, -1, 42, 43, 44, -1, 46, 47,
11675 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
11676 -1, 59, 60, 61, 62, 63, 64, 65, 66, 67,
11677 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
11678 -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
11679 88, 89, 90, 3322, 92, 93, 94, 95, 96, 97,
11680 -1, 99, 100, 101, 102, 103, 104, 105, 106, 107,
11681 108, 109, 110, 111, 112, 113, 114, -1, 116, 117,
11682 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
11683 -1, -1, 130, 131, 132, 133, 134, -1, 136, 137,
11684 138, -1, 140, 141, 142, -1, 144, 145, 146, 147,
11685 148, 149, 150, 151, 152, 153, 154, 155, 156, -1,
11686 158, 159, 160, 161, -1, 163, -1, 165, 166, 167,
11687 168, 169, 170, 171, 172, 173, -1, 175, -1, 177,
11688 178, 179, -1, 181, 182, 183, 184, 185, 186, 187,
11689 188, 189, 190, 191, 192, -1, 194, 195, 196, 197,
11690 198, 199, 200, -1, 202, 203, 204, 205, 206, 207,
11691 208, 209, 210, 211, -1, 213, -1, 215, 216, 217,
11692 218, 219, 220, 221, 222, 223, 224, 225, -1, -1,
11693 228, 229, 230, 231, -1, 233, 234, 235, 236, 237,
11694 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
11695 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
11696 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
11697 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
11698 278, -1, 280, 281, -1, -1, 284, 285, 286, -1,
11699 -1, 289, 290, 291, 292, 293, 294, 295, 296, 297,
11700 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
11701 -1, 309, 310, 311, 312, 313, 314, 315, 316, 317,
11702 318, -1, 320, 321, 322, 323, 324, 325, -1, 327,
11703 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
11704 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
11705 348, -1, 350, 351, 352, 353, 354, 355, 356, 357,
11706 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
11707 368, -1, 370, 371, 372, 373, 374, 375, 376, 377,
11708 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
11709 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
11710 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
11711 408, 409, 410, 411, 412, -1, 414, 415, -1, -1,
11712 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
11713 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
11714 438, 439, 440, 441, -1, 443, 444, 445, 446, 447,
11715 448, 449, -1, 451, 452, 453, 454, 455, 456, 457,
11716 -1, -1, 460, -1, 462, 463, 464, 465, 466, 467,
11717 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
11718 478, 479, 480, 481, 482, 483, 484, -1, 486, -1,
11719 -1, -1, -1, 491, 492, 493, -1, -1, -1, -1,
11720 498, -1, 500, 501, -1, -1, -1, 505, 506, 507,
11721 508, 3, 4, 5, 6, 7, 8, 9, 10, -1,
11722 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11723 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
11724 32, 33, -1, -1, -1, -1, -1, 39, -1, -1,
11725 42, 43, 44, -1, 46, 47, 48, 49, 50, 51,
11726 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
11727 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
11728 -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
11729 82, 83, 84, 85, 86, 87, 88, 89, 90, -1,
11730 92, 93, 94, 95, 96, 97, -1, 99, 100, 101,
11731 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
11732 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
11733 -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
11734 132, 133, 134, -1, 136, 137, 138, -1, 140, 141,
11735 142, -1, 144, 145, 146, 147, 148, 149, 150, 151,
11736 152, 153, 154, 155, 156, -1, 158, 159, 160, 161,
11737 -1, 163, -1, 165, 166, 167, 168, 169, 170, 171,
11738 172, 173, -1, 175, -1, 177, 178, 179, -1, 181,
11739 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
11740 192, -1, 194, 195, 196, 197, 198, 199, 200, -1,
11741 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
11742 -1, 213, -1, 215, 216, 217, 218, 219, 220, 221,
11743 222, 223, 224, 225, -1, -1, 228, 229, 230, 231,
11744 -1, 233, 234, 235, 236, 237, 238, 239, 240, 241,
11745 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
11746 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
11747 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
11748 272, 273, 274, 275, 276, 277, 278, -1, 280, 281,
11749 -1, -1, 284, 285, 286, -1, -1, 289, 290, 291,
11750 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
11751 302, 303, 304, 305, 306, 307, -1, 309, 310, 311,
11752 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
11753 322, 323, 324, 325, -1, 327, 328, 329, 330, 331,
11754 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
11755 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
11756 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
11757 362, 363, 364, 365, 366, 367, 368, -1, 370, 371,
11758 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
11759 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
11760 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
11761 -1, 403, 404, 405, 406, 407, 408, 409, 410, 411,
11762 412, -1, 414, 415, -1, -1, 418, 419, 420, 421,
11763 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
11764 -1, -1, 434, 435, 436, 437, 438, 439, 440, 441,
11765 -1, 443, 444, 445, 446, 447, 448, 449, -1, 451,
11766 452, 453, 454, 455, 456, 457, -1, -1, 460, -1,
11767 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
11768 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
11769 482, 483, 484, -1, 486, -1, -1, -1, -1, 491,
11770 492, 493, -1, -1, -1, -1, 498, -1, 500, -1,
11771 -1, -1, -1, 505, 506, 507, 508, 3, 4, 5,
11772 6, 7, 8, 9, 10, -1, -1, -1, -1, -1,
11773 -1, -1, -1, -1, -1, -1, 22, 23, 24, 25,
11774 26, 27, 28, 29, 30, 31, 32, 33, -1, -1,
11775 -1, 37, -1, 39, -1, -1, 42, 43, 44, -1,
11776 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
11777 56, 57, -1, 59, 60, 61, 62, 63, 64, 65,
11778 66, 67, 68, 69, 70, 71, -1, 73, 74, 75,
11779 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
11780 86, 87, 88, 89, 90, -1, 92, 93, 94, 95,
11781 96, 97, -1, 99, 100, 101, 102, 103, 104, 105,
11782 106, 107, 108, 109, 110, 111, 112, 113, 114, -1,
11783 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
11784 126, 127, 128, -1, 130, 131, 132, 133, 134, -1,
11785 136, 137, 138, -1, 140, 141, 142, -1, 144, 145,
11786 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
11787 156, -1, 158, 159, 160, 161, -1, 163, -1, 165,
11788 166, -1, 168, 169, 170, 171, 172, 173, -1, 175,
11789 -1, 177, 178, 179, -1, 181, 182, 183, 184, 185,
11790 186, 187, 188, 189, 190, 191, 192, -1, 194, 195,
11791 196, 197, 198, 199, 200, -1, 202, 203, 204, 205,
11792 206, 207, 208, 209, 210, 211, -1, 213, -1, 215,
11793 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
11794 -1, -1, 228, 229, 230, 231, -1, 233, 234, 235,
11795 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
11796 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
11797 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
11798 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
11799 276, 277, 278, -1, 280, 281, -1, -1, 284, 285,
11800 286, -1, -1, 289, 290, 291, 292, 293, 294, 295,
11801 296, 297, 298, 299, 300, 301, 302, 303, 304, -1,
11802 -1, -1, -1, 309, 310, 311, 312, 313, 314, 315,
11803 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
11804 -1, 327, 328, 329, 330, 331, 332, 333, 334, -1,
11805 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
11806 346, 347, 348, -1, 350, 351, 352, 353, 354, 355,
11807 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
11808 366, 367, -1, 369, 370, 371, 372, 373, 374, 375,
11809 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
11810 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
11811 396, 397, 398, 399, 400, 401, -1, 403, 404, -1,
11812 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
11813 -1, -1, 418, 419, 420, 421, 422, 423, 424, 425,
11814 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
11815 436, -1, 438, 439, 440, 441, -1, 443, 444, 445,
11816 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
11817 456, 457, -1, -1, 460, -1, -1, 463, 464, 465,
11818 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
11819 476, 477, 478, 479, 480, 481, 482, 483, 484, -1,
11820 -1, -1, -1, -1, -1, 491, 492, 493, -1, -1,
11821 -1, -1, 498, -1, 500, 501, -1, -1, -1, 505,
11822 506, 507, 508, 3, 4, 5, 6, 7, 8, 9,
11823 10, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11824 -1, -1, 22, 23, 24, 25, 26, 27, 28, 29,
11825 -1, 31, 32, 33, -1, -1, -1, -1, -1, 39,
11826 -1, -1, 42, 43, 44, -1, 46, 47, 48, 49,
11827 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
11828 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
11829 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
11830 -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
11831 90, -1, 92, 93, 94, 95, 96, 97, -1, 99,
11832 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
11833 110, 111, 112, 113, 114, -1, 116, 117, 118, 119,
11834 120, 121, -1, 123, 124, 125, 126, 127, -1, -1,
11835 130, 131, 132, 133, 134, -1, 136, 137, 138, -1,
11836 140, 141, 142, -1, 144, 145, 146, 147, 148, 149,
11837 150, 151, 152, 153, 154, 155, 156, -1, 158, 159,
11838 160, 161, -1, 163, -1, 165, 166, 167, 168, 169,
11839 170, 171, 172, 173, -1, 175, -1, 177, 178, 179,
11840 -1, 181, 182, 183, 184, 185, 186, 187, 188, 189,
11841 190, 191, 192, -1, 194, 195, 196, 197, 198, 199,
11842 200, -1, 202, 203, 204, 205, 206, 207, 208, 209,
11843 210, 211, -1, 213, -1, 215, 216, 217, 218, 219,
11844 220, 221, 222, 223, 224, 225, -1, 227, 228, 229,
11845 230, 231, -1, 233, 234, 235, 236, 237, 238, 239,
11846 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
11847 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
11848 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
11849 270, 271, 272, 273, 274, 275, 276, 277, 278, -1,
11850 280, 281, -1, -1, 284, 285, 286, -1, -1, 289,
11851 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
11852 300, 301, 302, 303, 304, -1, -1, -1, -1, 309,
11853 310, 311, 312, 313, 314, 315, 316, 317, 318, -1,
11854 320, 321, 322, 323, 324, 325, -1, 327, 328, 329,
11855 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
11856 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
11857 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
11858 360, 361, 362, 363, 364, 365, 366, 367, -1, -1,
11859 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
11860 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
11861 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
11862 400, 401, -1, 403, 404, -1, 406, 407, 408, 409,
11863 410, 411, 412, -1, 414, 415, -1, 417, 418, 419,
11864 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
11865 430, 431, -1, -1, 434, 435, 436, -1, 438, 439,
11866 440, 441, -1, 443, 444, 445, 446, 447, 448, 449,
11867 -1, 451, 452, 453, 454, 455, 456, 457, -1, -1,
11868 460, -1, -1, 463, 464, 465, 466, 467, 468, 469,
11869 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
11870 480, 481, 482, 483, 484, -1, -1, -1, -1, -1,
11871 -1, 491, 492, 493, -1, -1, -1, -1, 498, -1,
11872 500, -1, -1, -1, -1, 505, 506, 507, 508, 3,
11873 4, 5, 6, 7, 8, 9, 10, -1, -1, -1,
11874 -1, -1, -1, -1, -1, -1, -1, -1, 22, 23,
11875 24, 25, 26, 27, 28, 29, -1, 31, 32, 33,
11876 -1, -1, -1, 37, -1, 39, -1, -1, 42, 43,
11877 44, -1, 46, 47, 48, 49, 50, 51, 52, 53,
11878 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
11879 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
11880 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
11881 84, 85, 86, 87, 88, 89, 90, -1, 92, 93,
11882 94, 95, 96, 97, -1, 99, 100, 101, 102, 103,
11883 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
11884 114, -1, 116, 117, 118, 119, 120, 121, -1, 123,
11885 124, 125, 126, 127, -1, -1, 130, 131, 132, 133,
11886 134, -1, 136, 137, 138, -1, 140, 141, 142, -1,
11887 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
11888 154, 155, 156, -1, 158, 159, 160, 161, -1, 163,
11889 -1, 165, 166, -1, 168, 169, 170, 171, 172, 173,
11890 -1, 175, -1, 177, 178, 179, -1, 181, 182, 183,
11891 184, 185, 186, 187, 188, 189, 190, 191, 192, -1,
11892 194, 195, 196, 197, 198, 199, 200, -1, 202, 203,
11893 204, 205, 206, 207, 208, 209, 210, 211, -1, 213,
11894 -1, 215, 216, 217, 218, 219, 220, 221, 222, 223,
11895 224, 225, -1, -1, 228, 229, 230, 231, -1, 233,
11896 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
11897 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
11898 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
11899 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
11900 274, 275, 276, 277, 278, -1, 280, 281, -1, -1,
11901 284, 285, 286, -1, -1, 289, 290, 291, 292, 293,
11902 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
11903 304, -1, -1, -1, -1, 309, 310, 311, 312, 313,
11904 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
11905 324, 325, -1, 327, 328, 329, 330, 331, 332, 333,
11906 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
11907 344, 345, 346, 347, 348, -1, 350, 351, 352, 353,
11908 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
11909 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
11910 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
11911 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
11912 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
11913 404, -1, 406, 407, 408, 409, 410, 411, 412, -1,
11914 414, 415, -1, -1, 418, 419, 420, 421, 422, 423,
11915 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
11916 434, 435, 436, -1, 438, 439, 440, 441, -1, 443,
11917 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
11918 454, 455, 456, 457, -1, -1, 460, -1, -1, 463,
11919 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
11920 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
11921 484, -1, -1, -1, -1, -1, -1, 491, 492, 493,
11922 -1, -1, -1, -1, 498, -1, 500, -1, -1, -1,
11923 -1, 505, 506, 507, 508, 3, 4, 5, 6, 7,
11924 8, 9, 10, -1, -1, -1, -1, -1, -1, -1,
11925 -1, -1, -1, -1, 22, 23, 24, 25, 26, 27,
11926 28, 29, -1, 31, 32, 33, -1, -1, -1, 37,
11927 -1, 39, -1, -1, 42, 43, 44, -1, 46, 47,
11928 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
11929 -1, 59, 60, 61, 62, 63, 64, 65, 66, 67,
11930 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
11931 -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
11932 88, 89, 90, -1, 92, 93, 94, 95, 96, 97,
11933 -1, 99, 100, 101, 102, 103, 104, 105, 106, 107,
11934 108, 109, 110, 111, 112, 113, 114, -1, 116, 117,
11935 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
11936 -1, -1, 130, 131, 132, 133, 134, -1, 136, 137,
11937 138, -1, 140, 141, 142, -1, 144, 145, 146, 147,
11938 148, 149, 150, 151, 152, 153, 154, 155, 156, -1,
11939 158, 159, 160, 161, -1, 163, -1, 165, 166, -1,
11940 168, 169, 170, 171, 172, 173, -1, 175, -1, 177,
11941 178, 179, -1, 181, 182, 183, 184, 185, 186, 187,
11942 188, 189, 190, 191, 192, -1, 194, 195, 196, 197,
11943 198, 199, 200, -1, 202, 203, 204, 205, 206, 207,
11944 208, 209, 210, 211, -1, 213, -1, 215, 216, 217,
11945 218, 219, 220, 221, 222, 223, 224, 225, -1, -1,
11946 228, 229, 230, 231, -1, 233, 234, 235, 236, 237,
11947 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
11948 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
11949 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
11950 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
11951 278, -1, 280, 281, -1, -1, 284, 285, 286, -1,
11952 -1, 289, 290, 291, 292, 293, 294, 295, 296, 297,
11953 298, 299, 300, 301, 302, 303, 304, -1, -1, -1,
11954 -1, 309, 310, 311, 312, 313, 314, 315, 316, 317,
11955 318, -1, 320, 321, 322, 323, 324, 325, -1, 327,
11956 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
11957 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
11958 348, -1, 350, 351, 352, 353, 354, 355, 356, 357,
11959 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
11960 -1, 369, 370, 371, 372, 373, 374, 375, 376, 377,
11961 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
11962 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
11963 398, 399, 400, 401, -1, 403, 404, -1, 406, 407,
11964 408, 409, 410, 411, 412, -1, 414, 415, -1, -1,
11965 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
11966 428, 429, 430, 431, -1, -1, 434, 435, 436, -1,
11967 438, 439, 440, 441, -1, 443, 444, 445, 446, 447,
11968 448, 449, -1, 451, 452, 453, 454, 455, 456, 457,
11969 -1, -1, 460, -1, -1, 463, 464, 465, 466, 467,
11970 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
11971 478, 479, 480, 481, 482, 483, 484, -1, -1, -1,
11972 -1, -1, -1, 491, 492, 493, -1, -1, -1, -1,
11973 498, -1, 500, 501, -1, -1, -1, 505, 506, 507,
11974 508, 3, 4, 5, 6, 7, 8, 9, 10, -1,
11975 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11976 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
11977 32, 33, -1, -1, -1, -1, 38, 39, -1, -1,
11978 42, 43, 44, -1, 46, 47, 48, 49, 50, 51,
11979 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
11980 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
11981 -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
11982 82, 83, 84, 85, 86, 87, 88, 89, 90, -1,
11983 92, 93, 94, 95, 96, 97, -1, 99, 100, 101,
11984 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
11985 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
11986 -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
11987 132, 133, 134, -1, 136, 137, 138, -1, 140, 141,
11988 142, -1, 144, 145, 146, 147, 148, 149, 150, 151,
11989 152, 153, 154, 155, 156, -1, 158, 159, 160, 161,
11990 -1, 163, -1, 165, 166, -1, 168, 169, 170, 171,
11991 172, 173, -1, 175, -1, 177, 178, 179, -1, 181,
11992 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
11993 192, -1, 194, 195, 196, 197, 198, 199, 200, -1,
11994 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
11995 -1, 213, -1, 215, 216, 217, 218, 219, 220, 221,
11996 222, 223, 224, 225, -1, -1, 228, 229, 230, 231,
11997 -1, 233, 234, 235, 236, 237, 238, 239, 240, 241,
11998 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
11999 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
12000 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
12001 272, 273, 274, 275, 276, 277, 278, -1, 280, 281,
12002 -1, -1, 284, 285, 286, -1, -1, 289, 290, 291,
12003 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
12004 302, 303, 304, -1, -1, -1, -1, 309, 310, 311,
12005 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
12006 322, 323, 324, 325, -1, 327, 328, 329, 330, 331,
12007 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
12008 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
12009 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
12010 362, 363, 364, 365, 366, 367, -1, -1, 370, 371,
12011 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
12012 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
12013 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
12014 -1, 403, 404, -1, 406, 407, 408, 409, 410, 411,
12015 412, -1, 414, 415, -1, -1, 418, 419, 420, 421,
12016 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
12017 -1, -1, 434, 435, 436, -1, 438, 439, 440, 441,
12018 -1, 443, 444, 445, 446, 447, 448, 449, -1, 451,
12019 452, 453, 454, 455, 456, 457, -1, -1, 460, -1,
12020 -1, 463, 464, 465, 466, 467, 468, 469, 470, 471,
12021 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
12022 482, 483, 484, -1, -1, -1, -1, -1, -1, 491,
12023 492, 493, -1, -1, -1, -1, 498, -1, 500, -1,
12024 -1, -1, -1, 505, 506, 507, 508, 3, 4, 5,
12025 6, 7, 8, 9, 10, -1, -1, -1, -1, -1,
12026 -1, -1, -1, -1, -1, -1, 22, 23, 24, 25,
12027 26, 27, 28, 29, -1, 31, 32, 33, -1, -1,
12028 -1, 37, -1, 39, -1, -1, 42, 43, 44, -1,
12029 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
12030 56, 57, -1, 59, 60, 61, 62, 63, 64, 65,
12031 66, 67, 68, 69, 70, 71, -1, 73, 74, 75,
12032 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
12033 86, 87, 88, 89, 90, -1, 92, 93, 94, 95,
12034 96, 97, -1, 99, 100, 101, 102, 103, 104, 105,
12035 106, 107, 108, 109, 110, 111, 112, 113, 114, -1,
12036 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
12037 126, 127, -1, -1, 130, 131, 132, 133, 134, -1,
12038 136, 137, 138, -1, 140, 141, 142, -1, 144, 145,
12039 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
12040 156, -1, 158, 159, 160, 161, -1, 163, -1, 165,
12041 166, -1, 168, 169, 170, 171, 172, 173, -1, 175,
12042 -1, 177, 178, 179, -1, 181, 182, 183, 184, 185,
12043 186, 187, 188, 189, 190, 191, 192, -1, 194, 195,
12044 196, 197, 198, 199, 200, -1, 202, 203, 204, 205,
12045 206, 207, 208, 209, 210, 211, -1, 213, -1, 215,
12046 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
12047 -1, -1, 228, 229, 230, 231, -1, 233, 234, 235,
12048 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
12049 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
12050 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
12051 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
12052 276, 277, 278, -1, 280, 281, -1, -1, 284, 285,
12053 286, -1, -1, 289, 290, 291, 292, 293, 294, 295,
12054 296, 297, 298, 299, 300, 301, 302, 303, 304, -1,
12055 -1, -1, -1, 309, 310, 311, 312, 313, 314, 315,
12056 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
12057 -1, 327, 328, 329, 330, 331, 332, 333, 334, -1,
12058 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
12059 346, 347, 348, -1, 350, 351, 352, 353, 354, 355,
12060 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
12061 366, 367, -1, 369, 370, 371, 372, 373, 374, 375,
12062 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
12063 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
12064 396, 397, 398, 399, 400, 401, -1, 403, 404, -1,
12065 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
12066 -1, -1, 418, 419, 420, 421, 422, 423, 424, 425,
12067 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
12068 436, -1, 438, 439, 440, 441, -1, 443, 444, 445,
12069 446, 447, 448, 449, -1, 451, 452, 453, 454, 455,
12070 456, 457, -1, -1, 460, -1, -1, 463, 464, 465,
12071 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
12072 476, 477, 478, 479, 480, 481, 482, 483, 484, -1,
12073 -1, -1, -1, -1, -1, 491, 492, 493, -1, -1,
12074 -1, -1, 498, -1, 500, 501, -1, -1, -1, 505,
12075 506, 507, 508, 3, 4, 5, 6, 7, 8, 9,
12076 10, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12077 -1, -1, 22, 23, 24, 25, 26, 27, 28, 29,
12078 -1, 31, 32, 33, -1, -1, -1, 37, -1, 39,
12079 -1, -1, 42, 43, 44, -1, 46, 47, 48, 49,
12080 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
12081 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
12082 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
12083 -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
12084 90, -1, 92, 93, 94, 95, 96, 97, -1, 99,
12085 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
12086 110, 111, 112, 113, 114, -1, 116, 117, 118, 119,
12087 120, 121, -1, 123, 124, 125, 126, 127, -1, -1,
12088 130, 131, 132, 133, 134, -1, 136, 137, 138, -1,
12089 140, 141, 142, -1, 144, 145, 146, 147, 148, 149,
12090 150, 151, 152, 153, 154, 155, 156, -1, 158, 159,
12091 160, 161, -1, 163, -1, 165, 166, -1, 168, 169,
12092 170, 171, 172, 173, -1, 175, -1, 177, 178, 179,
12093 -1, 181, 182, 183, 184, 185, 186, 187, 188, 189,
12094 190, 191, 192, -1, 194, 195, 196, 197, 198, 199,
12095 200, -1, 202, 203, 204, 205, 206, 207, 208, 209,
12096 210, 211, -1, 213, -1, 215, 216, 217, 218, 219,
12097 220, 221, 222, 223, 224, 225, -1, -1, 228, 229,
12098 230, 231, -1, 233, 234, 235, 236, 237, 238, 239,
12099 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
12100 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
12101 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
12102 270, 271, 272, 273, 274, 275, 276, 277, 278, -1,
12103 280, 281, -1, -1, 284, 285, 286, -1, -1, 289,
12104 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
12105 300, 301, 302, 303, 304, -1, -1, -1, -1, 309,
12106 310, 311, 312, 313, 314, 315, 316, 317, 318, -1,
12107 320, 321, 322, 323, 324, 325, -1, 327, 328, 329,
12108 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
12109 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
12110 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
12111 360, 361, 362, 363, 364, 365, 366, 367, -1, 369,
12112 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
12113 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
12114 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
12115 400, 401, -1, 403, 404, -1, 406, 407, 408, 409,
12116 410, 411, 412, -1, 414, 415, -1, -1, 418, 419,
12117 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
12118 430, 431, -1, -1, 434, 435, 436, -1, 438, 439,
12119 440, 441, -1, 443, 444, 445, 446, 447, 448, 449,
12120 -1, 451, 452, 453, 454, 455, 456, 457, -1, -1,
12121 460, -1, -1, 463, 464, 465, 466, 467, 468, 469,
12122 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
12123 480, 481, 482, 483, 484, -1, -1, -1, -1, -1,
12124 -1, 491, 492, 493, -1, -1, -1, -1, 498, -1,
12125 500, -1, -1, -1, -1, 505, 506, 507, 508, 3,
12126 4, 5, 6, 7, -1, 9, 10, -1, -1, -1,
12127 -1, -1, -1, -1, -1, -1, -1, -1, 22, 23,
12128 24, 25, 26, 27, 28, 29, -1, 31, 32, 33,
12129 -1, -1, -1, -1, -1, 39, -1, -1, 42, 43,
12130 44, -1, 46, 47, 48, 49, 50, 51, 52, 53,
12131 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
12132 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
12133 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
12134 84, 85, 86, 87, 88, 89, 90, -1, 92, 93,
12135 94, 95, 96, 97, -1, 99, 100, 101, 102, 103,
12136 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
12137 114, -1, 116, 117, 118, 119, 120, 121, -1, 123,
12138 124, 125, 126, 127, -1, -1, 130, 131, 132, 133,
12139 134, -1, 136, 137, 138, -1, 140, 141, 142, -1,
12140 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
12141 154, 155, 156, -1, 158, 159, 160, 161, -1, 163,
12142 -1, 165, 166, 167, 168, 169, 170, 171, 172, 173,
12143 -1, 175, -1, 177, 178, 179, -1, 181, 182, 183,
12144 184, 185, 186, 187, 188, 189, 190, 191, 192, -1,
12145 194, 195, 196, 197, 198, 199, 200, -1, 202, 203,
12146 204, 205, 206, 207, 208, 209, 210, 211, -1, 213,
12147 -1, 215, 216, 217, 218, 219, 220, 221, 222, 223,
12148 224, 225, -1, -1, 228, 229, 230, 231, -1, 233,
12149 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
12150 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
12151 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
12152 264, 265, 266, -1, 268, 269, 270, 271, 272, 273,
12153 274, 275, 276, 277, 278, -1, 280, 281, -1, -1,
12154 284, 285, 286, -1, -1, 289, 290, 291, 292, 293,
12155 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
12156 304, 305, 306, 307, -1, 309, 310, 311, 312, 313,
12157 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
12158 324, 325, -1, 327, 328, 329, 330, 331, 332, 333,
12159 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
12160 344, 345, 346, 347, 348, -1, 350, 351, 352, 353,
12161 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
12162 364, 365, 366, 367, 368, -1, 370, 371, 372, 373,
12163 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
12164 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
12165 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
12166 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
12167 414, 415, -1, -1, 418, 419, 420, 421, 422, 423,
12168 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
12169 434, 435, 436, 437, 438, 439, 440, 441, -1, 443,
12170 444, 445, 446, 447, 448, 449, -1, 451, 452, 453,
12171 454, 455, 456, 457, -1, -1, 460, -1, 462, 463,
12172 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
12173 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
12174 -1, -1, 486, -1, -1, -1, 3, 4, 5, 6,
12175 7, 8, 9, 10, 498, -1, 500, -1, -1, -1,
12176 -1, 505, 506, 507, 508, 22, 23, 24, 25, 26,
12177 27, 28, 29, 30, 31, 32, 33, -1, -1, -1,
12178 -1, -1, 39, -1, -1, 42, 43, 44, -1, 46,
12179 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
12180 57, -1, 59, 60, 61, 62, 63, 64, 65, 66,
12181 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
12182 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
12183 87, 88, 89, 90, -1, 92, 93, 94, 95, 96,
12184 97, -1, 99, 100, 101, 102, 103, 104, 105, 106,
12185 107, 108, 109, 110, 111, 112, 113, 114, -1, 116,
12186 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
12187 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
12188 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
12189 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
12190 -1, 158, 159, 160, 161, -1, 163, -1, 165, 166,
12191 -1, 168, 169, 170, 171, 172, 173, -1, 175, -1,
12192 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
12193 187, 188, 189, 190, 191, 192, -1, 194, 195, 196,
12194 197, 198, 199, 200, -1, 202, 203, 204, 205, 206,
12195 207, 208, 209, 210, 211, -1, 213, -1, 215, 216,
12196 217, 218, 219, 220, 221, 222, 223, 224, 225, -1,
12197 -1, 228, 229, 230, 231, -1, 233, 234, 235, 236,
12198 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
12199 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
12200 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
12201 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
12202 277, 278, -1, 280, 281, -1, -1, 284, 285, 286,
12203 -1, -1, 289, 290, 291, 292, 293, 294, 295, 296,
12204 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
12205 -1, -1, 309, 310, 311, 312, 313, 314, 315, 316,
12206 317, 318, -1, 320, 321, 322, 323, 324, 325, -1,
12207 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
12208 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
12209 347, 348, -1, 350, 351, 352, 353, 354, 355, 356,
12210 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
12211 367, -1, -1, 370, 371, 372, 373, 374, 375, 376,
12212 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
12213 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
12214 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
12215 407, 408, 409, 410, 411, 412, -1, 414, 415, -1,
12216 -1, 418, 419, 420, 421, 422, 423, 424, 425, 426,
12217 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
12218 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
12219 447, 448, 449, -1, 451, 452, 453, 454, 455, 456,
12220 457, -1, -1, 460, -1, -1, 463, 464, 465, 466,
12221 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
12222 477, 478, 479, 480, 481, 482, 483, 484, -1, -1,
12223 -1, -1, -1, -1, 491, 492, 493, -1, -1, -1,
12224 -1, 498, -1, 500, -1, -1, -1, -1, 505, 506,
12225 507, 508, 3, 4, 5, 6, 7, 8, 9, 10,
12226 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12227 -1, 22, 23, 24, 25, 26, 27, 28, 29, 30,
12228 31, 32, 33, -1, -1, -1, -1, -1, 39, -1,
12229 -1, 42, 43, 44, -1, 46, 47, 48, 49, 50,
12230 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
12231 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
12232 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
12233 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
12234 -1, 92, 93, 94, 95, 96, 97, -1, 99, 100,
12235 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
12236 111, 112, 113, 114, -1, 116, 117, 118, 119, 120,
12237 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
12238 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
12239 141, 142, -1, 144, 145, 146, 147, 148, 149, 150,
12240 151, 152, 153, 154, 155, 156, -1, 158, 159, 160,
12241 161, -1, 163, -1, 165, 166, -1, 168, 169, 170,
12242 171, 172, 173, -1, 175, -1, 177, 178, 179, -1,
12243 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
12244 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
12245 -1, 202, 203, 204, 205, 206, 207, 208, 209, 210,
12246 211, -1, 213, -1, 215, 216, 217, 218, 219, 220,
12247 221, 222, 223, 224, 225, -1, -1, 228, 229, 230,
12248 231, -1, 233, 234, 235, 236, 237, 238, 239, 240,
12249 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
12250 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
12251 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
12252 271, 272, 273, 274, 275, 276, 277, 278, -1, 280,
12253 281, -1, -1, 284, 285, 286, -1, -1, 289, 290,
12254 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
12255 301, 302, 303, 304, -1, -1, -1, -1, 309, 310,
12256 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
12257 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
12258 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
12259 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
12260 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
12261 361, 362, 363, 364, 365, 366, 367, -1, -1, 370,
12262 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
12263 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
12264 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
12265 401, -1, 403, 404, -1, 406, 407, 408, 409, 410,
12266 411, 412, -1, 414, 415, -1, -1, 418, 419, 420,
12267 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
12268 431, -1, -1, 434, 435, 436, -1, 438, 439, 440,
12269 441, -1, 443, 444, 445, 446, 447, 448, 449, -1,
12270 451, 452, 453, 454, 455, 456, 457, -1, -1, 460,
12271 -1, -1, 463, 464, 465, 466, 467, 468, 469, 470,
12272 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
12273 481, 482, 483, 484, -1, -1, -1, -1, -1, -1,
12274 491, 492, 493, -1, -1, -1, -1, 498, -1, 500,
12275 -1, -1, -1, -1, 505, 506, 507, 508, 3, 4,
12276 5, 6, 7, 8, 9, 10, -1, -1, -1, -1,
12277 -1, -1, -1, -1, -1, -1, -1, 22, 23, 24,
12278 25, 26, 27, 28, 29, -1, 31, 32, 33, -1,
12279 -1, -1, -1, -1, 39, -1, -1, 42, 43, 44,
12280 -1, 46, 47, 48, 49, 50, 51, 52, 53, 54,
12281 55, 56, 57, -1, 59, 60, 61, 62, 63, 64,
12282 65, 66, 67, 68, 69, 70, 71, -1, 73, 74,
12283 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
12284 85, 86, 87, 88, 89, 90, -1, 92, 93, 94,
12285 95, 96, 97, -1, 99, 100, 101, 102, 103, 104,
12286 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
12287 -1, 116, 117, 118, 119, 120, 121, -1, 123, 124,
12288 125, 126, 127, -1, -1, 130, 131, 132, 133, 134,
12289 -1, 136, 137, 138, -1, 140, 141, 142, -1, 144,
12290 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
12291 155, 156, -1, 158, 159, 160, 161, -1, 163, -1,
12292 165, 166, 167, 168, 169, 170, 171, 172, 173, -1,
12293 175, -1, 177, 178, 179, -1, 181, 182, 183, 184,
12294 185, 186, 187, 188, 189, 190, 191, 192, -1, 194,
12295 195, 196, 197, 198, 199, 200, -1, 202, 203, 204,
12296 205, 206, 207, 208, 209, 210, 211, -1, 213, -1,
12297 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
12298 225, -1, -1, 228, 229, 230, 231, -1, 233, 234,
12299 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
12300 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
12301 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
12302 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
12303 275, 276, 277, 278, -1, 280, 281, -1, -1, 284,
12304 285, 286, -1, -1, 289, 290, 291, 292, 293, 294,
12305 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
12306 -1, -1, -1, -1, 309, 310, 311, 312, 313, 314,
12307 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
12308 325, -1, 327, 328, 329, 330, 331, 332, 333, 334,
12309 -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
12310 345, 346, 347, 348, -1, 350, 351, 352, 353, 354,
12311 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
12312 365, 366, 367, -1, -1, 370, 371, 372, 373, 374,
12313 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
12314 -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
12315 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
12316 -1, 406, 407, 408, 409, 410, 411, 412, -1, 414,
12317 415, -1, -1, 418, 419, 420, 421, 422, 423, 424,
12318 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
12319 435, 436, -1, 438, 439, 440, 441, -1, 443, 444,
12320 445, 446, 447, 448, 449, -1, 451, 452, 453, 454,
12321 455, 456, 457, -1, -1, 460, -1, -1, 463, 464,
12322 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
12323 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
12324 -1, -1, -1, -1, -1, -1, 491, 492, 493, -1,
12325 -1, -1, -1, 498, -1, 500, -1, -1, -1, -1,
12326 505, 506, 507, 508, 3, 4, 5, 6, 7, 8,
12327 9, 10, -1, -1, -1, -1, -1, -1, -1, -1,
12328 -1, -1, -1, 22, 23, 24, 25, 26, 27, 28,
12329 29, -1, 31, 32, 33, -1, -1, -1, -1, -1,
12330 39, -1, -1, 42, 43, 44, -1, 46, 47, 48,
12331 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
12332 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
12333 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
12334 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
12335 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
12336 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
12337 109, 110, 111, 112, 113, 114, -1, 116, 117, 118,
12338 119, 120, 121, -1, 123, 124, 125, 126, 127, -1,
12339 -1, 130, 131, 132, 133, 134, -1, 136, 137, 138,
12340 -1, 140, 141, 142, -1, 144, 145, 146, 147, 148,
12341 149, 150, 151, 152, 153, 154, 155, 156, -1, 158,
12342 159, 160, 161, -1, 163, -1, 165, 166, -1, 168,
12343 169, 170, 171, 172, 173, -1, 175, -1, 177, 178,
12344 179, -1, 181, 182, 183, 184, 185, 186, 187, 188,
12345 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
12346 199, 200, -1, 202, 203, 204, 205, 206, 207, 208,
12347 209, 210, 211, -1, 213, -1, 215, 216, 217, 218,
12348 219, 220, 221, 222, 223, 224, 225, -1, -1, 228,
12349 229, 230, 231, -1, 233, 234, 235, 236, 237, 238,
12350 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
12351 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
12352 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
12353 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
12354 -1, 280, 281, -1, -1, 284, 285, 286, -1, -1,
12355 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
12356 299, 300, 301, 302, 303, 304, -1, -1, -1, -1,
12357 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
12358 -1, 320, 321, 322, 323, 324, 325, -1, 327, 328,
12359 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
12360 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
12361 -1, 350, 351, 352, 353, 354, 355, 356, 357, 358,
12362 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
12363 -1, 370, 371, 372, 373, 374, 375, 376, 377, 378,
12364 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
12365 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
12366 399, 400, 401, -1, 403, 404, -1, 406, 407, 408,
12367 409, 410, 411, 412, -1, 414, 415, -1, -1, 418,
12368 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
12369 429, 430, 431, -1, -1, 434, 435, 436, -1, 438,
12370 439, 440, 441, -1, 443, 444, 445, 446, 447, 448,
12371 449, -1, 451, 452, 453, 454, 455, 456, 457, -1,
12372 -1, 460, -1, -1, 463, 464, 465, 466, 467, 468,
12373 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
12374 479, 480, 481, 482, 483, 484, -1, -1, -1, -1,
12375 -1, -1, 491, 492, 493, -1, -1, -1, -1, 498,
12376 -1, 500, 501, -1, -1, -1, 505, 506, 507, 508,
12377 3, 4, 5, 6, 7, 8, 9, 10, -1, -1,
12378 -1, -1, -1, -1, -1, -1, -1, -1, -1, 22,
12379 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
12380 33, -1, -1, -1, -1, -1, 39, -1, -1, 42,
12381 43, 44, -1, 46, 47, 48, 49, 50, 51, 52,
12382 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
12383 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
12384 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
12385 83, 84, 85, 86, 87, 88, 89, 90, -1, 92,
12386 93, 94, 95, 96, 97, -1, 99, 100, 101, 102,
12387 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
12388 113, 114, -1, 116, 117, 118, 119, 120, 121, -1,
12389 123, 124, 125, 126, 127, -1, -1, 130, 131, 132,
12390 133, 134, -1, 136, 137, 138, -1, 140, 141, 142,
12391 -1, 144, 145, 146, 147, 148, 149, 150, 151, 152,
12392 153, 154, 155, 156, -1, 158, 159, 160, 161, -1,
12393 163, -1, 165, 166, -1, 168, 169, 170, 171, 172,
12394 173, -1, 175, -1, 177, 178, 179, -1, 181, 182,
12395 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
12396 -1, 194, 195, 196, 197, 198, 199, 200, -1, 202,
12397 203, 204, 205, 206, 207, 208, 209, 210, 211, -1,
12398 213, -1, 215, 216, 217, 218, 219, 220, 221, 222,
12399 223, 224, 225, -1, -1, 228, 229, 230, 231, -1,
12400 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
12401 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
12402 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
12403 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
12404 273, 274, 275, 276, 277, 278, -1, 280, 281, -1,
12405 -1, 284, 285, 286, -1, -1, 289, 290, 291, 292,
12406 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
12407 303, 304, -1, -1, -1, -1, 309, 310, 311, 312,
12408 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
12409 323, 324, 325, -1, 327, 328, 329, 330, 331, 332,
12410 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
12411 343, 344, 345, 346, 347, 348, -1, 350, 351, 352,
12412 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
12413 363, 364, 365, 366, 367, -1, -1, 370, 371, 372,
12414 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
12415 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
12416 393, 394, 395, 396, 397, 398, 399, 400, 401, -1,
12417 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
12418 -1, 414, 415, -1, -1, 418, 419, 420, 421, 422,
12419 423, 424, 425, 426, 427, 428, 429, 430, 431, -1,
12420 -1, 434, 435, 436, -1, 438, 439, 440, 441, -1,
12421 443, 444, 445, 446, 447, 448, 449, -1, 451, 452,
12422 453, 454, 455, 456, 457, -1, -1, 460, -1, -1,
12423 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
12424 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
12425 483, 484, -1, -1, -1, -1, -1, -1, 491, 492,
12426 493, -1, -1, -1, -1, 498, -1, 500, -1, -1,
12427 -1, -1, 505, 506, 507, 508, 3, 4, 5, 6,
12428 7, 8, 9, 10, -1, -1, -1, -1, -1, -1,
12429 -1, -1, -1, -1, -1, 22, 23, 24, 25, 26,
12430 27, 28, 29, -1, 31, 32, 33, -1, -1, -1,
12431 -1, -1, 39, -1, -1, 42, 43, 44, -1, 46,
12432 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
12433 57, -1, 59, 60, 61, 62, 63, 64, 65, 66,
12434 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
12435 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
12436 87, 88, 89, 90, -1, 92, 93, 94, 95, 96,
12437 97, -1, 99, 100, 101, 102, 103, 104, 105, 106,
12438 107, 108, 109, 110, 111, 112, 113, 114, -1, 116,
12439 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
12440 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
12441 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
12442 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
12443 -1, 158, 159, 160, 161, -1, 163, -1, 165, 166,
12444 -1, 168, 169, 170, 171, 172, 173, -1, 175, -1,
12445 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
12446 187, 188, 189, 190, 191, 192, -1, 194, 195, 196,
12447 197, 198, 199, 200, -1, 202, 203, 204, 205, 206,
12448 207, 208, 209, 210, 211, -1, 213, -1, 215, 216,
12449 217, 218, 219, 220, 221, 222, 223, 224, 225, -1,
12450 -1, 228, 229, 230, 231, -1, 233, 234, 235, 236,
12451 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
12452 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
12453 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
12454 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
12455 277, 278, -1, 280, 281, -1, -1, 284, 285, 286,
12456 -1, -1, 289, 290, 291, 292, 293, 294, 295, 296,
12457 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
12458 -1, -1, 309, 310, 311, 312, 313, 314, 315, 316,
12459 317, 318, -1, 320, 321, 322, 323, 324, 325, -1,
12460 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
12461 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
12462 347, 348, -1, 350, 351, 352, 353, 354, 355, 356,
12463 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
12464 367, -1, -1, 370, 371, 372, 373, 374, 375, 376,
12465 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
12466 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
12467 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
12468 407, 408, 409, 410, 411, 412, -1, 414, 415, -1,
12469 -1, 418, 419, 420, 421, 422, 423, 424, 425, 426,
12470 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
12471 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
12472 447, 448, 449, -1, 451, 452, 453, 454, 455, 456,
12473 457, -1, 459, 460, -1, -1, 463, 464, 465, 466,
12474 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
12475 477, 478, 479, 480, 481, 482, 483, 484, -1, -1,
12476 -1, -1, -1, -1, 491, 492, 493, -1, -1, -1,
12477 -1, 498, -1, 500, -1, -1, -1, -1, 505, 506,
12478 507, 508, 3, 4, 5, 6, 7, 8, 9, 10,
12479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12480 -1, 22, 23, 24, 25, 26, 27, 28, 29, 30,
12481 31, 32, 33, -1, -1, -1, -1, -1, 39, -1,
12482 -1, 42, 43, 44, -1, 46, 47, 48, 49, 50,
12483 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
12484 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
12485 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
12486 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
12487 -1, 92, 93, 94, 95, 96, 97, -1, 99, 100,
12488 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
12489 111, 112, 113, 114, -1, 116, 117, 118, 119, 120,
12490 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
12491 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
12492 141, 142, -1, 144, 145, 146, 147, 148, 149, 150,
12493 151, 152, 153, 154, 155, 156, -1, 158, 159, 160,
12494 161, -1, 163, -1, 165, 166, -1, 168, 169, 170,
12495 171, 172, 173, -1, 175, -1, 177, 178, 179, -1,
12496 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
12497 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
12498 -1, 202, 203, 204, 205, 206, 207, 208, 209, 210,
12499 211, -1, 213, -1, 215, 216, 217, 218, 219, 220,
12500 221, 222, 223, 224, 225, -1, -1, 228, 229, 230,
12501 231, -1, 233, 234, 235, 236, 237, 238, 239, 240,
12502 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
12503 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
12504 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
12505 271, 272, 273, 274, 275, 276, 277, 278, -1, 280,
12506 281, -1, -1, 284, 285, 286, -1, -1, 289, 290,
12507 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
12508 301, 302, 303, 304, -1, -1, -1, -1, 309, 310,
12509 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
12510 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
12511 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
12512 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
12513 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
12514 361, 362, 363, 364, 365, 366, 367, -1, -1, 370,
12515 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
12516 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
12517 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
12518 401, -1, 403, 404, -1, 406, 407, 408, 409, 410,
12519 411, 412, -1, 414, 415, -1, -1, 418, 419, 420,
12520 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
12521 431, -1, -1, 434, 435, 436, -1, 438, 439, 440,
12522 441, -1, 443, 444, 445, 446, 447, 448, 449, -1,
12523 451, 452, 453, 454, 455, 456, 457, -1, -1, 460,
12524 -1, -1, 463, 464, 465, 466, 467, 468, 469, 470,
12525 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
12526 481, 482, 483, 484, -1, -1, -1, -1, -1, -1,
12527 491, 492, 493, -1, -1, -1, -1, 498, -1, 500,
12528 -1, -1, -1, -1, 505, 506, 507, 508, 3, 4,
12529 5, 6, 7, 8, 9, 10, -1, -1, -1, -1,
12530 -1, -1, -1, -1, -1, -1, -1, 22, 23, 24,
12531 25, 26, 27, 28, 29, -1, 31, 32, 33, -1,
12532 -1, -1, -1, -1, 39, -1, -1, 42, 43, 44,
12533 -1, 46, 47, 48, 49, 50, 51, 52, 53, 54,
12534 55, 56, 57, -1, 59, 60, 61, 62, 63, 64,
12535 65, 66, 67, 68, 69, 70, 71, -1, 73, 74,
12536 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
12537 85, 86, 87, 88, 89, 90, -1, 92, 93, 94,
12538 95, 96, 97, -1, 99, 100, 101, 102, 103, 104,
12539 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
12540 -1, 116, 117, 118, 119, 120, 121, -1, 123, 124,
12541 125, 126, 127, -1, -1, 130, 131, 132, 133, 134,
12542 -1, 136, 137, 138, -1, 140, 141, 142, -1, 144,
12543 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
12544 155, 156, -1, 158, 159, 160, 161, -1, 163, -1,
12545 165, 166, -1, 168, 169, 170, 171, 172, 173, -1,
12546 175, -1, 177, 178, 179, -1, 181, 182, 183, 184,
12547 185, 186, 187, 188, 189, 190, 191, 192, -1, 194,
12548 195, 196, 197, 198, 199, 200, -1, 202, 203, 204,
12549 205, 206, 207, 208, 209, 210, 211, -1, 213, -1,
12550 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
12551 225, -1, -1, 228, 229, 230, 231, -1, 233, 234,
12552 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
12553 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
12554 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
12555 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
12556 275, 276, 277, 278, -1, 280, 281, -1, -1, 284,
12557 285, 286, -1, -1, 289, 290, 291, 292, 293, 294,
12558 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
12559 -1, -1, -1, -1, 309, 310, 311, 312, 313, 314,
12560 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
12561 325, -1, 327, 328, 329, 330, 331, 332, 333, 334,
12562 -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
12563 345, 346, 347, 348, -1, 350, 351, 352, 353, 354,
12564 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
12565 365, 366, 367, -1, -1, 370, 371, 372, 373, 374,
12566 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
12567 -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
12568 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
12569 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
12570 415, -1, -1, 418, 419, 420, 421, 422, 423, 424,
12571 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
12572 435, 436, -1, 438, 439, 440, 441, -1, 443, 444,
12573 445, 446, 447, 448, 449, -1, 451, 452, 453, 454,
12574 455, 456, 457, -1, -1, 460, -1, -1, 463, 464,
12575 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
12576 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
12577 -1, -1, -1, -1, -1, -1, 491, 492, 493, -1,
12578 -1, -1, -1, 498, -1, 500, -1, -1, -1, -1,
12579 505, 506, 507, 508, 3, 4, 5, 6, 7, 8,
12580 9, 10, -1, -1, -1, -1, -1, -1, -1, -1,
12581 -1, -1, -1, 22, 23, 24, 25, 26, 27, 28,
12582 29, -1, 31, 32, 33, -1, -1, -1, -1, -1,
12583 39, -1, -1, 42, 43, 44, -1, 46, 47, 48,
12584 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
12585 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
12586 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
12587 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
12588 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
12589 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
12590 109, 110, 111, 112, 113, 114, -1, 116, 117, 118,
12591 119, 120, 121, -1, 123, 124, 125, 126, 127, -1,
12592 -1, 130, 131, 132, 133, 134, -1, 136, 137, 138,
12593 -1, 140, 141, 142, -1, 144, 145, 146, 147, 148,
12594 149, 150, 151, 152, 153, 154, 155, 156, -1, 158,
12595 159, 160, 161, -1, 163, -1, 165, 166, -1, 168,
12596 169, 170, 171, 172, 173, -1, 175, -1, 177, 178,
12597 179, -1, 181, 182, 183, 184, 185, 186, 187, 188,
12598 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
12599 199, 200, -1, 202, 203, 204, 205, 206, 207, 208,
12600 209, 210, 211, -1, 213, -1, 215, 216, 217, 218,
12601 219, 220, 221, 222, 223, 224, 225, -1, -1, 228,
12602 229, 230, 231, -1, 233, 234, 235, 236, 237, 238,
12603 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
12604 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
12605 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
12606 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
12607 -1, 280, 281, -1, -1, 284, 285, 286, -1, -1,
12608 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
12609 299, 300, 301, 302, 303, 304, -1, -1, -1, -1,
12610 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
12611 -1, 320, 321, 322, 323, 324, 325, -1, 327, 328,
12612 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
12613 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
12614 -1, 350, 351, 352, 353, 354, 355, 356, 357, 358,
12615 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
12616 -1, 370, 371, 372, 373, 374, 375, 376, 377, 378,
12617 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
12618 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
12619 399, 400, 401, -1, 403, 404, 405, 406, 407, 408,
12620 409, 410, 411, 412, -1, 414, 415, -1, -1, 418,
12621 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
12622 429, 430, 431, -1, -1, 434, 435, 436, -1, 438,
12623 439, 440, 441, -1, 443, 444, 445, 446, 447, 448,
12624 449, -1, 451, 452, 453, 454, 455, 456, 457, -1,
12625 -1, 460, -1, -1, 463, 464, 465, 466, 467, 468,
12626 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
12627 479, 480, 481, 482, 483, 484, -1, -1, -1, -1,
12628 -1, -1, 491, 492, 493, -1, -1, -1, -1, 498,
12629 -1, 500, -1, -1, -1, -1, 505, 506, 507, 508,
12630 3, 4, 5, 6, 7, 8, 9, 10, -1, -1,
12631 -1, -1, -1, -1, -1, -1, -1, -1, -1, 22,
12632 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
12633 33, -1, -1, -1, -1, -1, 39, -1, -1, 42,
12634 43, 44, -1, 46, 47, 48, 49, 50, 51, 52,
12635 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
12636 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
12637 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
12638 83, 84, 85, 86, 87, 88, 89, 90, -1, 92,
12639 93, 94, 95, 96, 97, -1, 99, 100, 101, 102,
12640 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
12641 113, 114, -1, 116, 117, 118, 119, 120, 121, -1,
12642 123, 124, 125, 126, 127, -1, -1, 130, 131, 132,
12643 133, 134, -1, 136, 137, 138, -1, 140, 141, 142,
12644 -1, 144, 145, 146, 147, 148, 149, 150, 151, 152,
12645 153, 154, 155, 156, -1, 158, 159, 160, 161, -1,
12646 163, -1, 165, 166, -1, 168, 169, 170, 171, 172,
12647 173, -1, 175, -1, 177, 178, 179, -1, 181, 182,
12648 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
12649 -1, 194, 195, 196, 197, 198, 199, 200, -1, 202,
12650 203, 204, 205, 206, 207, 208, 209, 210, 211, -1,
12651 213, -1, 215, 216, 217, 218, 219, 220, 221, 222,
12652 223, 224, 225, -1, -1, 228, 229, 230, 231, -1,
12653 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
12654 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
12655 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
12656 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
12657 273, 274, 275, 276, 277, 278, -1, 280, 281, -1,
12658 -1, 284, 285, 286, -1, -1, 289, 290, 291, 292,
12659 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
12660 303, 304, -1, -1, -1, -1, 309, 310, 311, 312,
12661 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
12662 323, 324, 325, -1, 327, 328, 329, 330, 331, 332,
12663 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
12664 343, 344, 345, 346, 347, 348, -1, 350, 351, 352,
12665 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
12666 363, 364, 365, 366, 367, -1, -1, 370, 371, 372,
12667 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
12668 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
12669 393, 394, 395, 396, 397, 398, 399, 400, 401, -1,
12670 403, 404, -1, 406, 407, 408, 409, 410, 411, 412,
12671 -1, 414, 415, -1, -1, 418, 419, 420, 421, 422,
12672 423, 424, 425, 426, 427, 428, 429, 430, 431, -1,
12673 -1, 434, 435, 436, -1, 438, 439, 440, 441, -1,
12674 443, 444, 445, 446, 447, 448, 449, -1, 451, 452,
12675 453, 454, 455, 456, 457, -1, -1, 460, -1, -1,
12676 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
12677 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
12678 483, 484, -1, -1, -1, -1, -1, -1, 491, 492,
12679 493, -1, -1, -1, -1, 498, -1, 500, -1, -1,
12680 -1, -1, 505, 506, 507, 508, 3, 4, 5, 6,
12681 7, 8, 9, 10, -1, -1, -1, -1, -1, -1,
12682 -1, -1, -1, -1, -1, 22, 23, 24, 25, 26,
12683 27, 28, 29, -1, 31, 32, 33, -1, -1, -1,
12684 -1, -1, 39, -1, -1, 42, 43, 44, -1, 46,
12685 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
12686 57, -1, 59, 60, 61, 62, 63, 64, 65, 66,
12687 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
12688 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
12689 87, 88, 89, 90, -1, 92, 93, 94, 95, 96,
12690 97, -1, 99, 100, 101, 102, 103, 104, 105, 106,
12691 107, 108, 109, 110, 111, 112, 113, 114, -1, 116,
12692 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
12693 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
12694 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
12695 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
12696 -1, 158, 159, 160, 161, -1, 163, -1, 165, 166,
12697 -1, 168, 169, 170, 171, 172, 173, -1, 175, -1,
12698 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
12699 187, 188, 189, 190, 191, 192, -1, 194, 195, 196,
12700 197, 198, 199, 200, -1, 202, 203, 204, 205, 206,
12701 207, 208, 209, 210, 211, -1, 213, -1, 215, 216,
12702 217, 218, 219, 220, 221, 222, 223, 224, 225, -1,
12703 -1, 228, 229, 230, 231, -1, 233, 234, 235, 236,
12704 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
12705 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
12706 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
12707 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
12708 277, 278, -1, 280, 281, -1, -1, 284, 285, 286,
12709 -1, -1, 289, 290, 291, 292, 293, 294, 295, 296,
12710 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
12711 -1, -1, 309, 310, 311, 312, 313, 314, 315, 316,
12712 317, 318, -1, 320, 321, 322, 323, 324, 325, -1,
12713 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
12714 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
12715 347, 348, -1, 350, 351, 352, 353, 354, 355, 356,
12716 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
12717 367, -1, -1, 370, 371, 372, 373, 374, 375, 376,
12718 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
12719 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
12720 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
12721 407, 408, 409, 410, 411, 412, -1, 414, 415, -1,
12722 -1, 418, 419, 420, 421, 422, 423, 424, 425, 426,
12723 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
12724 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
12725 447, 448, 449, -1, 451, 452, 453, 454, 455, 456,
12726 457, -1, -1, 460, -1, -1, 463, 464, 465, 466,
12727 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
12728 477, 478, 479, 480, 481, 482, 483, 484, -1, -1,
12729 -1, -1, -1, -1, 491, 492, 493, -1, -1, -1,
12730 -1, 498, -1, 500, -1, -1, -1, -1, 505, 506,
12731 507, 508, 3, 4, 5, 6, 7, 8, 9, 10,
12732 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12733 -1, 22, 23, 24, 25, 26, 27, 28, 29, -1,
12734 31, 32, 33, -1, -1, -1, -1, -1, 39, -1,
12735 -1, 42, 43, 44, -1, 46, 47, 48, 49, 50,
12736 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
12737 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
12738 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
12739 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
12740 -1, 92, 93, 94, 95, 96, 97, -1, 99, 100,
12741 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
12742 111, 112, 113, 114, -1, 116, 117, 118, 119, 120,
12743 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
12744 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
12745 141, 142, -1, 144, 145, 146, 147, 148, 149, 150,
12746 151, 152, 153, 154, 155, 156, -1, 158, 159, 160,
12747 161, -1, 163, -1, 165, 166, -1, 168, 169, 170,
12748 171, 172, 173, -1, 175, -1, 177, 178, 179, -1,
12749 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
12750 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
12751 -1, 202, 203, 204, 205, 206, 207, 208, 209, 210,
12752 211, -1, 213, -1, 215, 216, 217, 218, 219, 220,
12753 221, 222, 223, 224, 225, -1, -1, 228, 229, 230,
12754 231, -1, 233, 234, 235, 236, 237, 238, 239, 240,
12755 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
12756 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
12757 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
12758 271, 272, 273, 274, 275, 276, 277, 278, -1, 280,
12759 281, -1, -1, 284, 285, 286, -1, -1, 289, 290,
12760 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
12761 301, 302, 303, 304, -1, -1, -1, -1, 309, 310,
12762 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
12763 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
12764 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
12765 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
12766 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
12767 361, 362, 363, 364, 365, 366, 367, -1, -1, 370,
12768 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
12769 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
12770 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
12771 401, -1, 403, 404, -1, 406, 407, 408, 409, 410,
12772 411, 412, -1, 414, 415, -1, -1, 418, 419, 420,
12773 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
12774 431, -1, -1, 434, 435, 436, -1, 438, 439, 440,
12775 441, -1, 443, 444, 445, 446, 447, 448, 449, -1,
12776 451, 452, 453, 454, 455, 456, 457, -1, -1, 460,
12777 -1, -1, 463, 464, 465, 466, 467, 468, 469, 470,
12778 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
12779 481, 482, 483, 484, -1, -1, -1, -1, -1, -1,
12780 491, 492, 493, -1, -1, -1, -1, 498, -1, 500,
12781 -1, -1, -1, -1, 505, 506, 507, 508, 3, 4,
12782 5, 6, 7, 8, 9, 10, -1, -1, -1, -1,
12783 -1, -1, -1, -1, -1, -1, -1, 22, 23, 24,
12784 25, 26, 27, 28, 29, -1, 31, 32, 33, -1,
12785 -1, -1, -1, -1, 39, -1, -1, 42, 43, 44,
12786 -1, 46, 47, 48, 49, 50, 51, 52, 53, 54,
12787 55, 56, 57, -1, 59, 60, 61, 62, 63, 64,
12788 65, 66, 67, 68, 69, 70, 71, -1, 73, 74,
12789 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
12790 85, 86, 87, 88, 89, 90, -1, 92, 93, 94,
12791 95, 96, 97, -1, 99, 100, 101, 102, 103, 104,
12792 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
12793 -1, 116, 117, 118, 119, 120, 121, -1, 123, 124,
12794 125, 126, 127, -1, -1, 130, 131, 132, 133, 134,
12795 -1, 136, 137, 138, -1, 140, 141, 142, -1, 144,
12796 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
12797 155, 156, -1, 158, 159, 160, 161, -1, 163, -1,
12798 165, 166, -1, 168, 169, 170, 171, 172, 173, -1,
12799 175, -1, 177, 178, 179, -1, 181, 182, 183, 184,
12800 185, 186, 187, 188, 189, 190, 191, 192, -1, 194,
12801 195, 196, 197, 198, 199, 200, -1, 202, 203, 204,
12802 205, 206, 207, 208, 209, 210, 211, -1, 213, -1,
12803 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
12804 225, -1, -1, 228, 229, 230, 231, -1, 233, 234,
12805 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
12806 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
12807 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
12808 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
12809 275, 276, 277, 278, -1, 280, 281, -1, -1, 284,
12810 285, 286, -1, -1, 289, 290, 291, 292, 293, 294,
12811 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
12812 -1, -1, -1, -1, 309, 310, 311, 312, 313, 314,
12813 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
12814 325, -1, 327, 328, 329, 330, 331, 332, 333, 334,
12815 -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
12816 345, 346, 347, 348, -1, 350, 351, 352, 353, 354,
12817 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
12818 365, 366, 367, -1, -1, 370, 371, 372, 373, 374,
12819 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
12820 -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
12821 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
12822 -1, 406, 407, 408, 409, 410, 411, 412, -1, 414,
12823 415, -1, -1, 418, 419, 420, 421, 422, 423, 424,
12824 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
12825 435, 436, -1, 438, 439, 440, 441, -1, 443, 444,
12826 445, 446, 447, 448, 449, -1, 451, 452, 453, 454,
12827 455, 456, 457, -1, -1, 460, -1, -1, 463, 464,
12828 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
12829 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
12830 -1, -1, -1, -1, -1, -1, 491, 492, 493, -1,
12831 -1, -1, -1, 498, -1, 500, -1, -1, -1, -1,
12832 505, 506, 507, 508, 3, 4, 5, 6, 7, 8,
12833 9, 10, -1, -1, -1, -1, -1, -1, -1, -1,
12834 -1, -1, -1, 22, 23, 24, 25, 26, 27, 28,
12835 29, -1, 31, 32, 33, -1, -1, -1, -1, -1,
12836 39, -1, -1, 42, 43, 44, -1, 46, 47, 48,
12837 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
12838 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
12839 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
12840 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
12841 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
12842 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
12843 109, 110, 111, 112, 113, 114, -1, 116, 117, 118,
12844 119, 120, 121, -1, 123, 124, 125, 126, 127, -1,
12845 -1, 130, 131, 132, 133, 134, -1, 136, 137, 138,
12846 -1, 140, 141, 142, -1, 144, 145, 146, 147, 148,
12847 149, 150, 151, 152, 153, 154, 155, 156, -1, 158,
12848 159, 160, 161, -1, 163, -1, 165, 166, -1, 168,
12849 169, 170, 171, 172, 173, -1, 175, -1, 177, 178,
12850 179, -1, 181, 182, 183, 184, 185, 186, 187, 188,
12851 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
12852 199, 200, -1, 202, 203, 204, 205, 206, 207, 208,
12853 209, 210, 211, -1, 213, -1, 215, 216, 217, 218,
12854 219, 220, 221, 222, 223, 224, 225, -1, -1, 228,
12855 229, 230, 231, -1, 233, 234, 235, 236, 237, 238,
12856 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
12857 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
12858 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
12859 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
12860 -1, 280, 281, -1, -1, 284, 285, 286, -1, -1,
12861 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
12862 299, 300, 301, 302, 303, 304, -1, -1, -1, -1,
12863 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
12864 -1, 320, 321, 322, 323, 324, 325, -1, 327, 328,
12865 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
12866 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
12867 -1, 350, 351, 352, 353, 354, 355, 356, 357, 358,
12868 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
12869 -1, 370, 371, 372, 373, 374, 375, 376, 377, 378,
12870 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
12871 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
12872 399, 400, 401, -1, 403, 404, -1, 406, 407, 408,
12873 409, 410, 411, 412, -1, 414, 415, -1, -1, 418,
12874 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
12875 429, 430, 431, -1, -1, 434, 435, 436, -1, 438,
12876 439, 440, 441, -1, 443, 444, 445, 446, 447, 448,
12877 449, -1, 451, 452, 453, 454, 455, 456, 457, -1,
12878 -1, 460, -1, -1, 463, 464, 465, 466, 467, 468,
12879 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
12880 479, 480, 481, 482, 483, 484, -1, -1, -1, -1,
12881 -1, -1, 491, 492, 493, -1, -1, -1, -1, 498,
12882 -1, 500, -1, -1, -1, -1, 505, 506, 507, 508,
12883 3, 4, 5, 6, 7, 8, 9, 10, -1, -1,
12884 -1, -1, -1, -1, -1, -1, -1, -1, -1, 22,
12885 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
12886 33, -1, -1, -1, -1, -1, 39, -1, -1, 42,
12887 43, 44, -1, 46, 47, 48, 49, 50, 51, 52,
12888 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
12889 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
12890 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
12891 83, 84, 85, 86, 87, 88, 89, 90, -1, 92,
12892 93, 94, 95, 96, 97, -1, 99, 100, 101, 102,
12893 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
12894 113, 114, -1, 116, 117, 118, 119, 120, 121, -1,
12895 123, 124, 125, 126, 127, -1, -1, 130, 131, 132,
12896 133, 134, -1, 136, 137, 138, -1, 140, 141, 142,
12897 -1, 144, 145, 146, 147, 148, 149, 150, 151, 152,
12898 153, 154, 155, 156, -1, 158, 159, 160, 161, -1,
12899 163, -1, 165, 166, -1, 168, 169, 170, 171, 172,
12900 173, -1, 175, -1, 177, 178, 179, -1, 181, 182,
12901 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
12902 -1, 194, 195, 196, 197, 198, 199, 200, -1, 202,
12903 203, 204, 205, 206, 207, 208, 209, 210, 211, -1,
12904 213, -1, 215, 216, 217, 218, 219, 220, 221, 222,
12905 223, 224, 225, -1, -1, 228, 229, 230, 231, -1,
12906 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
12907 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
12908 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
12909 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
12910 273, 274, 275, 276, 277, 278, -1, 280, 281, -1,
12911 -1, 284, 285, 286, -1, -1, 289, 290, 291, 292,
12912 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
12913 303, 304, -1, -1, -1, -1, 309, 310, 311, 312,
12914 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
12915 323, 324, 325, -1, 327, 328, 329, 330, 331, 332,
12916 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
12917 343, 344, 345, 346, 347, 348, -1, 350, 351, 352,
12918 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
12919 363, 364, 365, 366, 367, -1, -1, 370, 371, 372,
12920 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
12921 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
12922 393, 394, 395, 396, 397, 398, 399, 400, 401, -1,
12923 403, 404, -1, 406, 407, 408, 409, 410, 411, 412,
12924 -1, 414, 415, -1, -1, 418, 419, 420, 421, 422,
12925 423, 424, 425, 426, 427, 428, 429, 430, 431, -1,
12926 -1, 434, 435, 436, -1, 438, 439, 440, 441, -1,
12927 443, 444, 445, 446, 447, 448, 449, -1, 451, 452,
12928 453, 454, 455, 456, 457, -1, -1, 460, -1, -1,
12929 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
12930 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
12931 483, 484, -1, -1, -1, -1, -1, -1, 491, 492,
12932 493, -1, -1, -1, -1, 498, -1, 500, -1, -1,
12933 -1, -1, 505, 506, 507, 508, 3, 4, 5, 6,
12934 7, 8, 9, 10, -1, -1, -1, -1, -1, -1,
12935 -1, -1, -1, -1, -1, 22, 23, 24, 25, 26,
12936 27, 28, 29, -1, 31, 32, 33, -1, -1, -1,
12937 -1, -1, 39, -1, -1, 42, 43, 44, -1, 46,
12938 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
12939 57, -1, 59, 60, 61, 62, 63, 64, 65, 66,
12940 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
12941 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
12942 87, 88, 89, 90, -1, 92, 93, 94, 95, 96,
12943 97, -1, 99, 100, 101, 102, 103, 104, 105, 106,
12944 107, 108, 109, 110, 111, 112, 113, 114, -1, 116,
12945 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
12946 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
12947 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
12948 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
12949 -1, 158, 159, 160, 161, -1, 163, -1, 165, 166,
12950 -1, 168, 169, 170, 171, 172, 173, -1, 175, -1,
12951 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
12952 187, 188, 189, 190, 191, 192, -1, 194, 195, 196,
12953 197, 198, 199, 200, -1, 202, 203, 204, 205, 206,
12954 207, 208, 209, 210, 211, -1, 213, -1, 215, 216,
12955 217, 218, 219, 220, 221, 222, 223, 224, 225, -1,
12956 -1, 228, 229, 230, 231, -1, 233, 234, 235, 236,
12957 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
12958 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
12959 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
12960 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
12961 277, 278, -1, 280, 281, -1, -1, 284, 285, 286,
12962 -1, -1, 289, 290, 291, 292, 293, 294, 295, 296,
12963 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
12964 -1, -1, 309, 310, 311, 312, 313, 314, 315, 316,
12965 317, 318, -1, 320, 321, 322, 323, 324, 325, -1,
12966 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
12967 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
12968 347, 348, -1, 350, 351, 352, 353, 354, 355, 356,
12969 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
12970 367, -1, -1, 370, 371, 372, 373, 374, 375, 376,
12971 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
12972 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
12973 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
12974 407, 408, 409, 410, 411, 412, -1, 414, 415, -1,
12975 -1, 418, 419, 420, 421, 422, 423, 424, 425, 426,
12976 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
12977 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
12978 447, 448, 449, -1, 451, 452, 453, 454, 455, 456,
12979 457, -1, -1, 460, -1, -1, 463, 464, 465, 466,
12980 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
12981 477, 478, 479, 480, 481, 482, 483, 484, -1, -1,
12982 -1, -1, -1, -1, 491, 492, 493, -1, -1, -1,
12983 -1, 498, -1, 500, -1, -1, -1, -1, 505, 506,
12984 507, 508, 3, 4, 5, 6, 7, 8, 9, 10,
12985 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12986 -1, 22, 23, 24, 25, 26, 27, 28, 29, -1,
12987 31, 32, 33, -1, -1, -1, -1, -1, 39, -1,
12988 -1, 42, 43, 44, -1, 46, 47, 48, 49, 50,
12989 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
12990 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
12991 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
12992 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
12993 -1, 92, 93, 94, 95, 96, 97, -1, 99, 100,
12994 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
12995 111, 112, -1, 114, -1, 116, 117, 118, 119, 120,
12996 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
12997 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
12998 141, 142, -1, 144, 145, 146, 147, 148, 149, 150,
12999 151, 152, 153, 154, 155, 156, -1, 158, 159, 160,
13000 161, -1, 163, -1, 165, 166, -1, 168, 169, 170,
13001 171, 172, 173, -1, 175, -1, 177, 178, 179, -1,
13002 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
13003 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
13004 -1, 202, 203, 204, 205, 206, 207, 208, 209, 210,
13005 211, -1, 213, -1, 215, 216, 217, 218, 219, 220,
13006 221, 222, 223, 224, 225, -1, -1, 228, 229, 230,
13007 231, -1, 233, 234, 235, 236, 237, 238, 239, 240,
13008 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
13009 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
13010 261, 262, 263, 264, 265, 266, -1, 268, 269, 270,
13011 271, 272, 273, 274, 275, 276, 277, 278, -1, 280,
13012 281, -1, -1, 284, 285, 286, -1, -1, 289, 290,
13013 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
13014 301, 302, 303, 304, -1, -1, -1, -1, 309, 310,
13015 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
13016 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
13017 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
13018 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
13019 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
13020 361, 362, 363, 364, 365, 366, 367, -1, -1, 370,
13021 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
13022 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
13023 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
13024 401, -1, 403, 404, -1, 406, 407, 408, 409, 410,
13025 411, 412, -1, 414, 415, -1, -1, 418, 419, 420,
13026 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
13027 431, -1, -1, 434, 435, 436, -1, 438, 439, 440,
13028 441, -1, 443, 444, 445, 446, 447, 448, 449, -1,
13029 451, 452, 453, 454, 455, 456, 457, -1, -1, 460,
13030 -1, -1, 463, 464, 465, 466, 467, 468, 469, 470,
13031 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
13032 481, 482, 483, -1, -1, -1, -1, -1, -1, -1,
13033 491, 492, -1, -1, -1, -1, -1, 498, -1, 500,
13034 -1, -1, -1, -1, 505, 506, 507, 508, 3, 4,
13035 5, 6, 7, 8, 9, 10, -1, -1, -1, -1,
13036 -1, -1, -1, -1, -1, -1, -1, 22, 23, 24,
13037 25, 26, 27, 28, 29, -1, 31, 32, 33, -1,
13038 -1, -1, -1, -1, 39, -1, -1, 42, 43, 44,
13039 -1, 46, 47, 48, 49, 50, 51, 52, 53, 54,
13040 55, 56, 57, -1, 59, 60, 61, 62, 63, 64,
13041 65, 66, 67, 68, 69, 70, 71, -1, 73, 74,
13042 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
13043 85, 86, 87, 88, 89, 90, -1, 92, 93, 94,
13044 95, 96, 97, -1, 99, 100, 101, 102, 103, 104,
13045 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
13046 -1, 116, 117, 118, 119, 120, 121, -1, 123, 124,
13047 125, 126, 127, -1, -1, 130, 131, 132, 133, 134,
13048 -1, 136, 137, 138, -1, 140, 141, 142, -1, 144,
13049 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
13050 155, 156, -1, 158, 159, 160, 161, -1, 163, -1,
13051 165, 166, -1, 168, 169, 170, 171, 172, 173, -1,
13052 175, -1, 177, 178, 179, -1, 181, 182, 183, 184,
13053 185, 186, 187, 188, 189, 190, 191, 192, -1, 194,
13054 195, 196, 197, 198, 199, 200, -1, 202, 203, 204,
13055 205, 206, 207, 208, 209, 210, 211, -1, 213, -1,
13056 215, -1, -1, 218, 219, 220, 221, 222, 223, 224,
13057 225, -1, -1, 228, 229, 230, 231, -1, 233, 234,
13058 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
13059 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
13060 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
13061 265, 266, -1, 268, 269, -1, 271, 272, 273, 274,
13062 275, 276, 277, 278, -1, 280, 281, -1, -1, 284,
13063 285, 286, -1, -1, 289, 290, 291, 292, 293, 294,
13064 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
13065 -1, -1, -1, -1, 309, 310, 311, 312, 313, 314,
13066 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
13067 325, -1, 327, 328, 329, 330, 331, 332, 333, 334,
13068 -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
13069 345, 346, 347, 348, -1, 350, 351, 352, 353, 354,
13070 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
13071 365, 366, 367, -1, -1, 370, 371, 372, 373, 374,
13072 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
13073 -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
13074 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
13075 -1, 406, 407, 408, 409, 410, 411, 412, -1, 414,
13076 415, -1, -1, 418, 419, 420, 421, 422, 423, 424,
13077 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
13078 435, 436, -1, 438, 439, 440, 441, -1, 443, 444,
13079 445, 446, 447, 448, 449, -1, 451, 452, 453, 454,
13080 455, 456, 457, -1, -1, 460, -1, -1, 463, 464,
13081 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
13082 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
13083 -1, -1, -1, -1, -1, -1, 491, 492, 493, -1,
13084 -1, -1, -1, 498, -1, 500, -1, -1, -1, -1,
13085 505, 506, 507, 508, 3, 4, 5, 6, 7, -1,
13086 9, 10, -1, -1, -1, -1, -1, -1, -1, -1,
13087 -1, -1, -1, 22, 23, 24, 25, 26, 27, 28,
13088 29, -1, 31, 32, 33, -1, -1, -1, -1, -1,
13089 39, -1, -1, 42, 43, 44, -1, 46, 47, 48,
13090 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
13091 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
13092 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
13093 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
13094 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
13095 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
13096 109, 110, 111, 112, -1, 114, -1, 116, 117, 118,
13097 119, 120, 121, -1, 123, 124, 125, 126, 127, -1,
13098 -1, 130, 131, 132, 133, 134, -1, 136, 137, 138,
13099 -1, 140, 141, 142, -1, 144, 145, 146, 147, 148,
13100 149, 150, 151, 152, 153, 154, 155, 156, -1, 158,
13101 159, 160, 161, -1, 163, -1, 165, 166, -1, 168,
13102 169, 170, 171, 172, 173, -1, 175, -1, 177, 178,
13103 179, -1, 181, 182, 183, 184, 185, 186, 187, 188,
13104 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
13105 199, 200, -1, 202, 203, 204, 205, 206, 207, 208,
13106 209, 210, 211, -1, 213, -1, 215, 216, 217, 218,
13107 219, 220, 221, 222, 223, 224, 225, -1, -1, 228,
13108 229, 230, 231, -1, 233, 234, 235, 236, 237, 238,
13109 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
13110 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
13111 259, 260, 261, 262, 263, 264, 265, 266, -1, 268,
13112 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
13113 -1, 280, 281, -1, -1, 284, 285, 286, -1, -1,
13114 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
13115 299, 300, 301, 302, 303, 304, -1, -1, -1, -1,
13116 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
13117 -1, 320, 321, 322, 323, 324, 325, -1, 327, 328,
13118 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
13119 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
13120 -1, 350, 351, 352, 353, 354, 355, 356, 357, 358,
13121 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
13122 -1, 370, 371, 372, 373, 374, 375, 376, 377, 378,
13123 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
13124 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
13125 399, 400, 401, -1, 403, 404, -1, 406, 407, 408,
13126 409, 410, 411, 412, -1, 414, 415, -1, -1, 418,
13127 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
13128 429, 430, 431, -1, -1, 434, 435, 436, -1, 438,
13129 439, 440, 441, -1, 443, 444, 445, 446, 447, 448,
13130 449, -1, 451, 452, 453, 454, 455, 456, 457, -1,
13131 -1, 460, -1, -1, 463, 464, 465, 466, 467, 468,
13132 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
13133 479, 480, 481, 482, 483, -1, -1, -1, -1, -1,
13134 -1, -1, 491, 492, -1, -1, -1, -1, -1, 498,
13135 -1, 500, -1, -1, -1, -1, 505, 506, 507, 508,
13136 3, 4, 5, 6, 7, 8, 9, 10, -1, -1,
13137 -1, -1, -1, -1, -1, -1, -1, -1, -1, 22,
13138 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
13139 33, -1, -1, -1, -1, -1, 39, -1, -1, 42,
13140 43, 44, -1, 46, 47, 48, 49, 50, 51, 52,
13141 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
13142 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
13143 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
13144 83, 84, 85, 86, 87, 88, 89, 90, -1, 92,
13145 93, 94, 95, 96, 97, -1, 99, 100, 101, 102,
13146 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
13147 -1, 114, -1, 116, 117, 118, 119, 120, 121, -1,
13148 123, 124, 125, 126, 127, -1, -1, 130, 131, 132,
13149 133, 134, -1, 136, 137, 138, -1, 140, 141, 142,
13150 -1, 144, 145, 146, 147, 148, 149, 150, 151, 152,
13151 153, 154, 155, 156, -1, 158, 159, 160, 161, -1,
13152 163, -1, 165, 166, -1, 168, 169, 170, 171, 172,
13153 173, -1, 175, -1, 177, 178, 179, -1, 181, 182,
13154 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
13155 -1, 194, 195, 196, 197, 198, 199, 200, -1, 202,
13156 203, 204, 205, 206, 207, 208, 209, 210, 211, -1,
13157 213, -1, 215, -1, 217, 218, 219, 220, 221, 222,
13158 223, 224, 225, -1, -1, 228, 229, 230, 231, -1,
13159 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
13160 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
13161 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
13162 263, 264, 265, 266, -1, 268, 269, 270, 271, 272,
13163 273, 274, 275, 276, 277, 278, -1, 280, 281, -1,
13164 -1, 284, 285, 286, -1, -1, 289, 290, 291, 292,
13165 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
13166 303, 304, -1, -1, -1, -1, 309, 310, 311, 312,
13167 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
13168 323, 324, 325, -1, 327, 328, 329, 330, 331, 332,
13169 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
13170 343, 344, 345, 346, 347, 348, -1, 350, 351, 352,
13171 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
13172 363, 364, 365, 366, 367, -1, -1, 370, 371, 372,
13173 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
13174 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
13175 393, 394, 395, 396, 397, 398, 399, 400, 401, -1,
13176 403, 404, -1, 406, 407, 408, 409, 410, 411, 412,
13177 -1, 414, 415, -1, -1, 418, 419, 420, 421, 422,
13178 423, 424, 425, 426, 427, 428, 429, 430, 431, -1,
13179 -1, 434, 435, 436, -1, 438, 439, 440, 441, -1,
13180 443, 444, 445, 446, 447, 448, 449, -1, 451, 452,
13181 453, 454, 455, 456, 457, -1, -1, 460, -1, -1,
13182 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
13183 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
13184 483, -1, -1, -1, -1, -1, -1, -1, 491, 492,
13185 -1, -1, -1, -1, -1, 498, -1, 500, -1, -1,
13186 -1, -1, 505, 506, 507, 508, 3, 4, 5, 6,
13187 7, -1, 9, 10, -1, -1, -1, -1, -1, -1,
13188 -1, -1, -1, -1, -1, 22, 23, 24, 25, 26,
13189 27, 28, 29, -1, 31, 32, 33, -1, -1, -1,
13190 -1, -1, 39, -1, -1, 42, 43, 44, -1, 46,
13191 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
13192 57, -1, 59, 60, 61, 62, 63, 64, 65, 66,
13193 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
13194 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
13195 87, 88, 89, 90, -1, 92, 93, 94, 95, 96,
13196 97, -1, 99, 100, 101, 102, 103, 104, 105, 106,
13197 107, 108, 109, 110, 111, 112, -1, 114, -1, 116,
13198 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
13199 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
13200 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
13201 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
13202 -1, 158, 159, 160, 161, -1, 163, -1, 165, 166,
13203 -1, 168, 169, 170, 171, 172, 173, -1, 175, -1,
13204 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
13205 187, 188, 189, 190, 191, 192, -1, 194, 195, 196,
13206 197, 198, 199, 200, -1, 202, 203, 204, 205, 206,
13207 207, 208, 209, 210, 211, -1, 213, -1, 215, 216,
13208 217, 218, 219, 220, 221, 222, 223, 224, 225, -1,
13209 -1, 228, 229, 230, 231, -1, 233, 234, 235, 236,
13210 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
13211 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
13212 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
13213 -1, 268, 269, 270, 271, 272, 273, 274, 275, 276,
13214 277, 278, -1, 280, 281, -1, -1, 284, 285, 286,
13215 -1, -1, 289, 290, 291, 292, 293, 294, 295, 296,
13216 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
13217 -1, -1, 309, 310, 311, 312, 313, 314, 315, 316,
13218 317, 318, -1, 320, 321, 322, 323, 324, 325, -1,
13219 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
13220 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
13221 347, 348, -1, 350, 351, 352, 353, 354, 355, 356,
13222 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
13223 367, -1, -1, 370, 371, 372, 373, 374, 375, 376,
13224 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
13225 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
13226 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
13227 407, 408, 409, 410, 411, 412, -1, 414, 415, -1,
13228 -1, 418, 419, 420, 421, 422, 423, 424, 425, 426,
13229 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
13230 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
13231 447, 448, 449, -1, 451, 452, 453, 454, 455, 456,
13232 457, -1, -1, 460, -1, -1, 463, 464, 465, 466,
13233 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
13234 477, 478, 479, 480, 481, 482, 483, -1, -1, -1,
13235 -1, -1, -1, 3, 4, 5, 6, 7, 8, 9,
13236 10, 498, -1, 500, -1, -1, -1, -1, 505, 506,
13237 507, 508, 22, 23, 24, 25, 26, 27, 28, 29,
13238 -1, 31, 32, 33, -1, -1, -1, -1, -1, 39,
13239 -1, -1, 42, 43, 44, -1, 46, 47, 48, 49,
13240 50, 51, 52, -1, 54, 55, 56, 57, -1, 59,
13241 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
13242 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
13243 -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
13244 90, -1, 92, 93, 94, 95, 96, 97, -1, 99,
13245 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
13246 110, 111, 112, 113, 114, -1, 116, 117, 118, 119,
13247 120, 121, -1, 123, 124, 125, 126, 127, -1, -1,
13248 130, 131, 132, 133, 134, -1, 136, 137, 138, -1,
13249 140, -1, 142, -1, 144, 145, 146, 147, 148, 149,
13250 150, 151, 152, 153, 154, 155, 156, -1, 158, 159,
13251 160, 161, -1, 163, -1, 165, 166, -1, 168, 169,
13252 170, 171, -1, 173, -1, 175, -1, 177, 178, 179,
13253 -1, 181, 182, 183, 184, 185, 186, 187, -1, 189,
13254 190, 191, 192, -1, 194, 195, 196, 197, 198, 199,
13255 200, -1, 202, 203, 204, 205, 206, 207, 208, 209,
13256 210, 211, -1, 213, -1, 215, -1, -1, 218, 219,
13257 220, 221, 222, 223, 224, 225, -1, -1, 228, 229,
13258 230, -1, -1, 233, 234, 235, 236, 237, 238, 239,
13259 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
13260 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
13261 260, 261, 262, 263, 264, 265, 266, -1, 268, 269,
13262 -1, 271, 272, 273, 274, 275, 276, 277, 278, -1,
13263 280, 281, -1, -1, 284, 285, 286, -1, -1, 289,
13264 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
13265 300, 301, 302, 303, 304, -1, -1, -1, -1, 309,
13266 310, 311, 312, 313, 314, 315, 316, 317, 318, -1,
13267 320, 321, 322, 323, 324, 325, -1, 327, 328, 329,
13268 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
13269 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
13270 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
13271 360, 361, 362, 363, 364, 365, 366, 367, -1, -1,
13272 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
13273 -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
13274 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
13275 400, 401, -1, 403, 404, -1, 406, 407, 408, 409,
13276 410, 411, 412, -1, 414, 415, -1, -1, 418, 419,
13277 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
13278 430, 431, -1, -1, 434, 435, 436, -1, 438, 439,
13279 440, 441, -1, 443, 444, 445, 446, 447, 448, 449,
13280 -1, 451, 452, 453, 454, 455, 456, 457, -1, -1,
13281 460, -1, -1, 463, 464, 465, 466, 467, 468, 469,
13282 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
13283 480, 481, 482, 483, -1, -1, -1, -1, -1, -1,
13284 -1, 491, 492, 493, -1, -1, -1, -1, 498, -1,
13285 500, -1, -1, -1, -1, 505, 506, 507, 508, 3,
13286 4, 5, 6, 7, -1, 9, -1, -1, -1, -1,
13287 -1, -1, -1, -1, -1, -1, -1, -1, 22, 23,
13288 24, 25, 26, 27, 28, 29, -1, 31, 32, 33,
13289 -1, -1, -1, -1, -1, 39, -1, -1, 42, 43,
13290 44, -1, 46, 47, 48, 49, 50, 51, 52, 53,
13291 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
13292 64, 65, -1, 67, 68, 69, 70, 71, -1, 73,
13293 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
13294 84, 85, 86, 87, 88, 89, 90, -1, 92, 93,
13295 94, 95, 96, 97, -1, 99, 100, 101, 102, 103,
13296 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
13297 114, -1, 116, 117, 118, 119, 120, 121, -1, 123,
13298 124, 125, 126, 127, -1, -1, 130, 131, 132, 133,
13299 134, -1, 136, 137, 138, -1, 140, 141, 142, -1,
13300 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
13301 154, 155, 156, -1, 158, 159, 160, 161, -1, 163,
13302 -1, 165, 166, -1, 168, 169, 170, 171, 172, 173,
13303 -1, 175, 176, 177, 178, 179, -1, 181, 182, 183,
13304 184, 185, 186, 187, 188, 189, 190, 191, 192, -1,
13305 194, 195, 196, 197, 198, 199, 200, -1, 202, 203,
13306 204, 205, 206, 207, 208, 209, 210, 211, -1, 213,
13307 -1, 215, 216, 217, 218, 219, 220, 221, 222, 223,
13308 224, 225, -1, -1, 228, 229, 230, 231, -1, 233,
13309 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
13310 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
13311 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
13312 264, 265, 266, -1, 268, 269, 270, 271, 272, 273,
13313 274, 275, 276, 277, 278, -1, 280, 281, -1, -1,
13314 284, 285, 286, -1, -1, 289, 290, 291, 292, 293,
13315 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
13316 304, -1, -1, -1, -1, 309, 310, 311, 312, 313,
13317 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
13318 324, 325, -1, 327, 328, 329, 330, 331, 332, 333,
13319 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
13320 344, 345, 346, 347, 348, -1, 350, 351, 352, 353,
13321 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
13322 364, 365, 366, 367, -1, -1, 370, 371, 372, 373,
13323 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
13324 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
13325 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
13326 404, -1, 406, 407, 408, 409, 410, 411, 412, -1,
13327 414, 415, -1, -1, 418, 419, 420, 421, 422, 423,
13328 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
13329 434, 435, 436, -1, 438, 439, 440, 441, -1, 443,
13330 444, 445, 446, 447, 448, 449, -1, 451, 452, 453,
13331 454, 455, 456, 457, -1, -1, 460, -1, -1, 463,
13332 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
13333 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
13334 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
13335 9, -1, -1, -1, 498, -1, 500, -1, -1, -1,
13336 -1, 505, 506, 22, 23, 24, 25, 26, 27, 28,
13337 29, -1, 31, 32, 33, -1, -1, -1, -1, -1,
13338 39, -1, -1, 42, 43, 44, -1, 46, 47, 48,
13339 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
13340 59, 60, 61, 62, 63, 64, 65, -1, 67, 68,
13341 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
13342 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
13343 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
13344 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
13345 109, 110, 111, 112, -1, 114, -1, 116, 117, 118,
13346 119, 120, 121, -1, 123, 124, 125, 126, 127, -1,
13347 -1, 130, 131, 132, 133, 134, -1, 136, 137, 138,
13348 -1, 140, 141, 142, -1, 144, 145, 146, 147, 148,
13349 149, 150, 151, 152, 153, 154, 155, 156, -1, 158,
13350 159, 160, 161, -1, 163, -1, 165, 166, -1, 168,
13351 169, 170, 171, 172, 173, -1, 175, -1, 177, 178,
13352 179, -1, 181, 182, 183, 184, 185, 186, 187, 188,
13353 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
13354 199, 200, -1, 202, 203, 204, 205, 206, 207, 208,
13355 209, 210, 211, -1, 213, -1, 215, 216, 217, 218,
13356 219, 220, 221, 222, 223, 224, 225, -1, -1, 228,
13357 229, 230, 231, -1, 233, 234, 235, 236, 237, 238,
13358 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
13359 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
13360 259, 260, 261, 262, 263, 264, 265, 266, -1, 268,
13361 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
13362 -1, 280, 281, -1, -1, 284, 285, 286, -1, -1,
13363 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
13364 299, 300, 301, 302, 303, 304, -1, -1, -1, -1,
13365 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
13366 -1, 320, 321, 322, 323, 324, 325, -1, 327, 328,
13367 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
13368 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
13369 -1, 350, 351, 352, 353, 354, 355, 356, 357, 358,
13370 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
13371 -1, 370, 371, 372, 373, 374, 375, 376, 377, 378,
13372 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
13373 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
13374 399, 400, 401, -1, 403, 404, -1, 406, 407, 408,
13375 409, 410, 411, 412, -1, 414, 415, -1, -1, 418,
13376 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
13377 429, 430, 431, -1, -1, 434, 435, 436, -1, 438,
13378 439, 440, 441, -1, 443, 444, 445, 446, 447, 448,
13379 449, -1, 451, 452, 453, 454, 455, 456, 457, -1,
13380 -1, 460, -1, -1, 463, 464, 465, 466, 467, 468,
13381 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
13382 479, 480, 481, 482, 483, -1, -1, -1, -1, 3,
13383 -1, -1, -1, -1, -1, -1, -1, -1, -1, 498,
13384 -1, 500, -1, -1, -1, -1, 505, 506, 22, 23,
13385 24, 25, 26, 27, 28, 29, -1, 31, 32, 33,
13386 -1, -1, -1, -1, -1, -1, 40, -1, -1, 43,
13387 44, -1, 46, 47, 48, -1, 50, 51, 52, 53,
13388 54, -1, 56, 57, -1, 59, 60, 61, 62, 63,
13389 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
13390 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
13391 84, 85, 86, -1, 88, 89, 90, -1, 92, 93,
13392 94, 95, 96, 97, -1, -1, 100, 101, 102, 103,
13393 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
13394 114, -1, 116, 117, 118, 119, 120, 121, -1, 123,
13395 124, 125, 126, 127, -1, -1, 130, 131, 132, 133,
13396 134, -1, 136, 137, 138, -1, 140, 141, 142, 143,
13397 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
13398 154, -1, 156, 157, 158, 159, 160, 161, 162, 163,
13399 -1, 165, -1, -1, -1, 169, 170, 171, -1, 173,
13400 -1, 175, -1, 177, 178, 179, -1, 181, 182, 183,
13401 184, 185, 186, 187, -1, 189, 190, 191, 192, -1,
13402 194, 195, 196, 197, 198, 199, 200, -1, 202, -1,
13403 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
13404 -1, 215, -1, -1, 218, -1, 220, 221, 222, 223,
13405 224, 225, -1, -1, 228, -1, 230, -1, 232, 233,
13406 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
13407 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
13408 254, 255, 256, 257, 258, 259, 260, -1, 262, 263,
13409 264, 265, 266, -1, 268, 269, -1, 271, -1, 273,
13410 274, 275, 276, 277, 278, 279, 280, 281, -1, -1,
13411 284, 285, 286, -1, 288, 289, 290, -1, 292, -1,
13412 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
13413 304, -1, -1, -1, -1, 309, 310, 311, -1, 313,
13414 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
13415 324, 325, -1, 327, 328, 329, 330, 331, 332, 333,
13416 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
13417 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
13418 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
13419 364, 365, 366, 367, -1, -1, 370, 371, 372, 373,
13420 374, 375, 376, 377, 378, 379, -1, 381, 382, 383,
13421 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
13422 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
13423 404, -1, 406, -1, 408, 409, 410, 411, 412, -1,
13424 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
13425 424, 425, 426, 427, 428, 429, 430, 431, 432, -1,
13426 434, 435, 436, -1, 438, 439, 440, 441, -1, 443,
13427 444, 445, 446, 447, 448, 449, -1, 451, -1, 453,
13428 454, 455, 456, 457, -1, -1, 460, -1, -1, 463,
13429 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
13430 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
13431 3, -1, 5, -1, -1, -1, -1, -1, -1, -1,
13432 -1, -1, -1, -1, -1, -1, -1, 501, -1, 22,
13433 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
13434 33, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13435 43, 44, -1, 46, 47, 48, -1, 50, 51, 52,
13436 53, 54, -1, 56, 57, -1, 59, 60, 61, 62,
13437 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
13438 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
13439 83, 84, 85, 86, -1, 88, 89, 90, -1, 92,
13440 93, 94, 95, 96, 97, -1, -1, 100, 101, 102,
13441 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
13442 -1, 114, -1, 116, 117, 118, 119, 120, 121, -1,
13443 123, 124, 125, 126, 127, -1, -1, 130, 131, 132,
13444 133, 134, -1, 136, 137, 138, -1, 140, 141, 142,
13445 -1, 144, 145, 146, 147, 148, 149, 150, 151, 152,
13446 153, 154, -1, 156, -1, 158, 159, 160, 161, -1,
13447 163, -1, 165, -1, -1, -1, 169, 170, 171, -1,
13448 173, -1, 175, -1, 177, 178, 179, -1, 181, 182,
13449 183, 184, 185, 186, 187, -1, 189, 190, 191, 192,
13450 -1, 194, 195, 196, 197, 198, 199, 200, -1, 202,
13451 -1, 204, 205, 206, 207, 208, 209, 210, 211, -1,
13452 213, -1, 215, -1, -1, 218, -1, 220, 221, 222,
13453 223, 224, 225, -1, -1, 228, -1, 230, -1, -1,
13454 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
13455 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
13456 253, 254, 255, 256, 257, 258, 259, 260, -1, 262,
13457 263, 264, 265, 266, -1, 268, 269, -1, 271, -1,
13458 273, 274, 275, 276, 277, 278, -1, 280, 281, -1,
13459 -1, 284, 285, 286, -1, -1, 289, 290, -1, 292,
13460 -1, 294, 295, 296, 297, 298, 299, 300, 301, 302,
13461 303, 304, -1, -1, -1, -1, 309, 310, 311, -1,
13462 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
13463 323, 324, 325, -1, 327, 328, 329, 330, 331, 332,
13464 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
13465 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
13466 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
13467 363, 364, 365, 366, 367, -1, -1, 370, 371, 372,
13468 373, 374, 375, 376, 377, 378, 379, -1, 381, 382,
13469 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
13470 393, 394, 395, 396, 397, 398, 399, 400, 401, -1,
13471 403, 404, -1, 406, -1, 408, 409, 410, 411, 412,
13472 -1, 414, 415, -1, -1, 418, 419, 420, 421, 422,
13473 -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
13474 -1, 434, 435, 436, -1, 438, 439, 440, 441, -1,
13475 443, 444, 445, 446, 447, 448, 449, -1, 451, -1,
13476 453, 454, 455, 456, 457, -1, -1, 460, -1, -1,
13477 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
13478 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
13479 483, 3, -1, -1, -1, -1, -1, -1, -1, -1,
13480 -1, -1, -1, -1, -1, -1, -1, 500, 501, -1,
13481 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
13482 32, 33, 34, 35, -1, 37, -1, -1, -1, -1,
13483 42, 43, 44, -1, 46, 47, 48, 49, 50, 51,
13484 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
13485 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
13486 -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
13487 82, 83, 84, 85, 86, 87, 88, 89, 90, -1,
13488 92, 93, 94, 95, 96, 97, -1, 99, 100, 101,
13489 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
13490 112, -1, 114, -1, 116, 117, 118, 119, 120, 121,
13491 -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
13492 132, 133, 134, -1, 136, 137, 138, -1, 140, 141,
13493 142, -1, 144, 145, 146, 147, 148, 149, 150, 151,
13494 152, 153, 154, -1, 156, -1, 158, 159, 160, 161,
13495 -1, 163, -1, 165, 166, 167, 168, 169, 170, 171,
13496 172, 173, -1, 175, -1, 177, 178, 179, -1, 181,
13497 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
13498 192, -1, 194, 195, 196, 197, 198, 199, 200, -1,
13499 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
13500 -1, 213, -1, 215, 216, 217, 218, 219, 220, 221,
13501 222, 223, 224, 225, -1, -1, 228, 229, 230, 231,
13502 -1, 233, 234, 235, 236, 237, 238, 239, 240, 241,
13503 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
13504 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
13505 262, 263, 264, 265, 266, -1, 268, 269, 270, 271,
13506 -1, 273, 274, 275, 276, 277, 278, -1, 280, 281,
13507 -1, -1, 284, 285, 286, -1, -1, 289, 290, 291,
13508 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
13509 302, 303, 304, 305, 306, 307, -1, 309, 310, 311,
13510 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
13511 322, 323, 324, 325, -1, 327, 328, 329, 330, 331,
13512 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
13513 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
13514 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
13515 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
13516 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
13517 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
13518 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
13519 -1, 403, 404, 405, 406, 407, 408, 409, 410, 411,
13520 412, -1, 414, 415, -1, -1, 418, 419, 420, 421,
13521 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
13522 -1, -1, 434, 435, 436, 437, 438, 439, 440, 441,
13523 -1, 443, 444, 445, 446, 447, 448, 449, -1, 451,
13524 452, 453, 454, 455, 456, 457, -1, -1, 460, -1,
13525 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
13526 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
13527 482, 483, -1, 3, 486, 5, -1, -1, -1, -1,
13528 -1, -1, -1, -1, -1, -1, -1, -1, 500, -1,
13529 -1, -1, 22, 23, 24, 25, 26, 27, 28, 29,
13530 -1, 31, 32, 33, -1, -1, -1, -1, -1, -1,
13531 -1, -1, 42, 43, 44, -1, 46, 47, 48, 49,
13532 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
13533 60, 61, 62, 63, 64, -1, 66, 67, 68, 69,
13534 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
13535 -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
13536 90, -1, 92, 93, 94, 95, 96, 97, -1, 99,
13537 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
13538 110, 111, 112, -1, 114, -1, 116, 117, 118, 119,
13539 120, 121, -1, 123, 124, 125, 126, 127, -1, -1,
13540 130, 131, 132, 133, 134, -1, 136, 137, 138, -1,
13541 140, 141, 142, -1, 144, 145, 146, 147, 148, 149,
13542 150, 151, 152, 153, 154, -1, 156, -1, 158, 159,
13543 160, 161, -1, 163, -1, 165, 166, 167, 168, 169,
13544 170, 171, 172, 173, -1, 175, -1, 177, 178, 179,
13545 -1, 181, 182, 183, 184, 185, 186, 187, 188, 189,
13546 190, 191, 192, -1, 194, 195, 196, 197, 198, 199,
13547 200, -1, 202, 203, 204, 205, 206, 207, 208, 209,
13548 210, 211, -1, 213, -1, 215, 216, 217, 218, 219,
13549 220, 221, 222, 223, 224, 225, 226, -1, 228, 229,
13550 230, 231, -1, 233, 234, 235, 236, 237, 238, 239,
13551 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
13552 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
13553 260, 261, 262, 263, 264, 265, 266, -1, 268, 269,
13554 270, 271, -1, 273, 274, 275, 276, 277, 278, -1,
13555 280, 281, -1, 283, 284, 285, 286, -1, -1, 289,
13556 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
13557 300, 301, 302, 303, 304, 305, 306, 307, -1, 309,
13558 310, 311, 312, 313, 314, 315, 316, 317, 318, -1,
13559 320, 321, 322, 323, 324, 325, -1, 327, 328, 329,
13560 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
13561 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
13562 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
13563 360, 361, 362, 363, 364, 365, 366, 367, 368, -1,
13564 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
13565 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
13566 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
13567 400, 401, -1, 403, 404, 405, 406, 407, 408, 409,
13568 410, 411, 412, -1, 414, 415, -1, -1, 418, 419,
13569 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
13570 430, 431, -1, -1, 434, 435, 436, 437, 438, 439,
13571 440, 441, -1, 443, 444, 445, 446, 447, 448, 449,
13572 -1, 451, 452, 453, 454, 455, 456, 457, -1, -1,
13573 460, -1, 462, 463, 464, 465, 466, 467, 468, 469,
13574 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
13575 480, 481, 482, 483, -1, -1, 486, 3, 4, 5,
13576 -1, -1, -1, 9, -1, -1, -1, -1, -1, -1,
13577 500, -1, -1, -1, -1, -1, 22, 23, 24, 25,
13578 26, 27, 28, 29, -1, 31, 32, 33, -1, -1,
13579 -1, 37, -1, -1, -1, -1, 42, 43, 44, -1,
13580 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
13581 56, 57, -1, 59, 60, 61, 62, 63, 64, -1,
13582 -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
13583 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
13584 86, 87, 88, 89, 90, -1, 92, 93, 94, 95,
13585 96, 97, -1, 99, 100, 101, 102, 103, 104, 105,
13586 106, 107, 108, 109, 110, 111, 112, -1, 114, -1,
13587 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
13588 126, 127, -1, -1, 130, 131, 132, 133, 134, -1,
13589 136, 137, 138, -1, 140, 141, 142, -1, 144, 145,
13590 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
13591 156, -1, 158, 159, 160, 161, -1, 163, -1, 165,
13592 166, -1, 168, 169, 170, 171, 172, 173, -1, 175,
13593 -1, 177, 178, 179, -1, 181, 182, 183, 184, 185,
13594 186, 187, 188, 189, 190, 191, 192, -1, 194, 195,
13595 196, 197, 198, 199, 200, -1, 202, 203, 204, 205,
13596 206, 207, 208, 209, 210, 211, -1, 213, -1, 215,
13597 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
13598 -1, -1, 228, 229, 230, 231, -1, 233, 234, 235,
13599 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
13600 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
13601 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
13602 266, -1, 268, 269, 270, 271, -1, 273, 274, 275,
13603 276, 277, 278, -1, 280, 281, 282, -1, 284, 285,
13604 286, -1, -1, 289, 290, 291, 292, 293, 294, 295,
13605 296, 297, 298, 299, 300, 301, 302, 303, 304, -1,
13606 -1, -1, -1, 309, 310, 311, 312, 313, 314, 315,
13607 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
13608 -1, 327, 328, 329, 330, 331, 332, 333, 334, -1,
13609 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
13610 346, 347, 348, -1, 350, 351, 352, 353, 354, 355,
13611 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
13612 366, 367, -1, 369, 370, 371, 372, 373, 374, 375,
13613 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
13614 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
13615 396, 397, 398, 399, 400, 401, -1, 403, 404, -1,
13616 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
13617 -1, -1, 418, 419, 420, 421, 422, 423, 424, 425,
13618 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
13619 436, -1, 438, 439, 440, 441, -1, 443, 444, 445,
13620 446, 447, 448, 449, -1, 451, 452, 453, 454, 455,
13621 456, 457, -1, -1, 460, -1, -1, 463, 464, 465,
13622 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
13623 476, 477, 478, 479, 480, 481, 482, 483, 3, -1,
13624 5, -1, -1, -1, -1, 491, 492, 493, -1, -1,
13625 -1, -1, -1, -1, 500, -1, -1, 22, 23, 24,
13626 25, 26, 27, 28, 29, -1, 31, 32, 33, -1,
13627 -1, -1, -1, -1, -1, -1, -1, 42, 43, 44,
13628 -1, 46, 47, 48, 49, 50, 51, 52, 53, 54,
13629 55, 56, 57, -1, 59, 60, 61, 62, 63, 64,
13630 -1, 66, 67, 68, 69, 70, 71, -1, 73, 74,
13631 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
13632 85, 86, 87, 88, 89, 90, -1, 92, 93, 94,
13633 95, 96, 97, -1, 99, 100, 101, 102, 103, 104,
13634 105, 106, 107, 108, 109, 110, 111, 112, -1, 114,
13635 -1, 116, 117, 118, 119, 120, 121, -1, 123, 124,
13636 125, 126, 127, -1, -1, 130, 131, 132, 133, 134,
13637 -1, 136, 137, 138, -1, 140, 141, 142, -1, 144,
13638 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
13639 -1, 156, -1, 158, 159, 160, 161, -1, 163, -1,
13640 165, 166, -1, 168, 169, 170, 171, 172, 173, -1,
13641 175, -1, 177, 178, 179, -1, 181, 182, 183, 184,
13642 185, 186, 187, 188, 189, 190, 191, 192, -1, 194,
13643 195, 196, 197, 198, 199, 200, -1, 202, 203, 204,
13644 205, 206, 207, 208, 209, 210, 211, -1, 213, -1,
13645 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
13646 225, 226, -1, 228, 229, 230, 231, -1, 233, 234,
13647 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
13648 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
13649 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
13650 265, 266, -1, 268, 269, 270, 271, -1, 273, 274,
13651 275, 276, 277, 278, -1, 280, 281, -1, 283, 284,
13652 285, 286, -1, -1, 289, 290, 291, 292, 293, 294,
13653 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
13654 -1, -1, -1, -1, 309, 310, 311, 312, 313, 314,
13655 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
13656 325, -1, 327, 328, 329, 330, 331, 332, 333, 334,
13657 -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
13658 345, 346, 347, 348, -1, 350, 351, 352, 353, 354,
13659 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
13660 365, 366, 367, -1, -1, 370, 371, 372, 373, 374,
13661 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
13662 -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
13663 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
13664 -1, 406, 407, 408, 409, 410, 411, 412, -1, 414,
13665 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
13666 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
13667 435, 436, -1, 438, 439, 440, 441, -1, 443, 444,
13668 445, 446, 447, 448, 449, -1, 451, 452, 453, 454,
13669 455, 456, 457, -1, -1, 460, -1, -1, 463, 464,
13670 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
13671 475, 476, 477, 478, 479, 480, 481, 482, 483, 3,
13672 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13673 -1, -1, -1, -1, -1, 500, -1, -1, 22, 23,
13674 24, 25, 26, 27, 28, 29, -1, 31, 32, 33,
13675 -1, -1, -1, -1, -1, -1, -1, -1, 42, 43,
13676 44, -1, 46, 47, 48, 49, 50, 51, 52, 53,
13677 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
13678 64, -1, 66, 67, 68, 69, 70, 71, -1, 73,
13679 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
13680 84, 85, 86, 87, 88, 89, 90, -1, 92, 93,
13681 94, 95, 96, 97, -1, 99, 100, 101, 102, 103,
13682 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
13683 114, -1, 116, 117, 118, 119, 120, 121, -1, 123,
13684 124, 125, 126, 127, -1, -1, 130, 131, 132, 133,
13685 134, -1, 136, 137, 138, -1, 140, 141, 142, -1,
13686 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
13687 154, -1, 156, -1, 158, 159, 160, 161, -1, 163,
13688 -1, 165, 166, -1, 168, 169, 170, 171, 172, 173,
13689 -1, 175, -1, 177, 178, 179, -1, 181, 182, 183,
13690 184, 185, 186, 187, 188, 189, 190, 191, 192, -1,
13691 194, 195, 196, 197, 198, 199, 200, -1, 202, 203,
13692 204, 205, 206, 207, 208, 209, 210, 211, -1, 213,
13693 -1, 215, 216, 217, 218, 219, 220, 221, 222, 223,
13694 224, 225, -1, -1, 228, 229, 230, 231, -1, 233,
13695 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
13696 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
13697 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
13698 264, 265, 266, -1, 268, 269, 270, 271, -1, 273,
13699 274, 275, 276, 277, 278, -1, 280, 281, -1, -1,
13700 284, 285, 286, -1, -1, 289, 290, 291, 292, 293,
13701 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
13702 304, -1, -1, -1, -1, 309, 310, 311, 312, 313,
13703 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
13704 324, 325, -1, 327, 328, 329, 330, 331, 332, 333,
13705 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
13706 344, 345, 346, 347, 348, -1, 350, 351, 352, 353,
13707 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
13708 364, 365, 366, 367, -1, -1, 370, 371, 372, 373,
13709 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
13710 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
13711 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
13712 404, -1, 406, 407, 408, 409, 410, 411, 412, -1,
13713 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
13714 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
13715 434, 435, 436, -1, 438, 439, 440, 441, -1, 443,
13716 444, 445, 446, 447, 448, 449, -1, 451, 452, 453,
13717 454, 455, 456, 457, -1, -1, 460, -1, -1, 463,
13718 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
13719 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
13720 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13721 -1, -1, -1, -1, -1, -1, 500, -1, -1, 22,
13722 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
13723 33, -1, -1, -1, -1, -1, -1, -1, -1, 42,
13724 43, 44, -1, 46, 47, 48, 49, 50, 51, 52,
13725 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
13726 63, 64, -1, 66, 67, 68, 69, 70, 71, -1,
13727 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
13728 83, 84, 85, 86, 87, 88, 89, 90, -1, 92,
13729 93, 94, 95, 96, 97, -1, 99, 100, 101, 102,
13730 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
13731 -1, 114, -1, 116, 117, 118, 119, 120, 121, -1,
13732 123, 124, 125, 126, 127, -1, -1, 130, 131, 132,
13733 133, 134, -1, 136, 137, 138, -1, 140, 141, 142,
13734 -1, 144, 145, 146, 147, 148, 149, 150, 151, 152,
13735 153, 154, -1, 156, -1, 158, 159, 160, 161, -1,
13736 163, -1, 165, 166, -1, 168, 169, 170, 171, 172,
13737 173, -1, 175, -1, 177, 178, 179, -1, 181, 182,
13738 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
13739 -1, 194, 195, 196, 197, 198, 199, 200, -1, 202,
13740 203, 204, 205, 206, 207, 208, 209, 210, 211, -1,
13741 213, -1, 215, 216, 217, 218, 219, 220, 221, 222,
13742 223, 224, 225, -1, -1, 228, 229, 230, 231, -1,
13743 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
13744 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
13745 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
13746 263, 264, 265, 266, -1, 268, 269, 270, 271, -1,
13747 273, 274, 275, 276, 277, 278, -1, 280, 281, -1,
13748 -1, 284, 285, 286, -1, -1, 289, 290, 291, 292,
13749 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
13750 303, 304, -1, -1, -1, -1, 309, 310, 311, 312,
13751 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
13752 323, 324, 325, -1, 327, 328, 329, 330, 331, 332,
13753 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
13754 343, 344, 345, 346, 347, 348, -1, 350, 351, 352,
13755 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
13756 363, 364, 365, 366, 367, -1, -1, 370, 371, 372,
13757 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
13758 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
13759 393, 394, 395, 396, 397, 398, 399, 400, 401, -1,
13760 403, 404, -1, 406, 407, 408, 409, 410, 411, 412,
13761 -1, 414, 415, -1, -1, 418, 419, 420, 421, 422,
13762 -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
13763 -1, 434, 435, 436, -1, 438, 439, 440, 441, -1,
13764 443, 444, 445, 446, 447, 448, 449, -1, 451, 452,
13765 453, 454, 455, 456, 457, -1, -1, 460, -1, -1,
13766 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
13767 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
13768 483, 3, -1, -1, -1, -1, -1, -1, -1, -1,
13769 -1, -1, -1, -1, -1, -1, -1, 500, -1, -1,
13770 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
13771 32, 33, -1, -1, -1, -1, -1, -1, -1, -1,
13772 -1, 43, 44, -1, 46, 47, 48, -1, 50, 51,
13773 52, 53, 54, -1, 56, 57, -1, 59, 60, 61,
13774 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
13775 -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
13776 82, 83, 84, 85, 86, -1, 88, 89, 90, -1,
13777 92, 93, 94, 95, 96, 97, -1, -1, 100, 101,
13778 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
13779 112, -1, 114, -1, 116, 117, 118, 119, 120, 121,
13780 -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
13781 132, 133, 134, -1, 136, 137, 138, -1, 140, 141,
13782 142, -1, 144, 145, 146, 147, 148, 149, 150, 151,
13783 152, 153, 154, -1, 156, -1, 158, 159, 160, 161,
13784 -1, 163, -1, 165, -1, 167, -1, 169, 170, 171,
13785 -1, 173, -1, 175, -1, 177, 178, 179, -1, 181,
13786 182, 183, 184, 185, 186, 187, -1, 189, 190, 191,
13787 192, -1, 194, 195, 196, 197, 198, 199, 200, -1,
13788 202, -1, 204, 205, 206, 207, 208, 209, 210, 211,
13789 -1, 213, -1, 215, -1, -1, 218, -1, 220, 221,
13790 222, 223, 224, 225, -1, -1, 228, -1, 230, -1,
13791 -1, 233, 234, 235, 236, 237, 238, 239, 240, 241,
13792 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
13793 252, 253, 254, 255, 256, 257, 258, 259, 260, -1,
13794 262, 263, 264, 265, 266, -1, 268, 269, -1, 271,
13795 -1, 273, 274, 275, 276, 277, 278, -1, 280, 281,
13796 -1, -1, 284, 285, 286, -1, -1, 289, 290, -1,
13797 292, -1, 294, 295, 296, 297, 298, 299, 300, 301,
13798 302, 303, 304, 305, 306, 307, -1, 309, 310, 311,
13799 -1, 313, 314, 315, 316, 317, 318, -1, 320, 321,
13800 322, 323, 324, 325, -1, 327, 328, 329, 330, 331,
13801 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
13802 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
13803 -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
13804 362, 363, 364, 365, 366, 367, 368, -1, 370, 371,
13805 372, 373, 374, 375, 376, 377, 378, 379, -1, 381,
13806 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
13807 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
13808 -1, 403, 404, 405, 406, -1, 408, 409, 410, 411,
13809 412, -1, 414, 415, -1, -1, 418, 419, 420, 421,
13810 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
13811 -1, -1, 434, 435, 436, 437, 438, 439, 440, 441,
13812 -1, 443, 444, 445, 446, 447, 448, 449, -1, 451,
13813 -1, 453, 454, 455, 456, 457, -1, -1, 460, -1,
13814 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
13815 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
13816 482, 483, 3, -1, 486, -1, -1, -1, -1, -1,
13817 -1, -1, -1, -1, -1, -1, -1, -1, 500, -1,
13818 -1, 22, 23, 24, 25, 26, 27, 28, 29, -1,
13819 31, 32, 33, -1, -1, -1, -1, -1, -1, -1,
13820 -1, -1, 43, 44, -1, 46, 47, 48, -1, 50,
13821 51, 52, 53, 54, -1, 56, 57, -1, 59, 60,
13822 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
13823 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
13824 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
13825 -1, 92, 93, 94, 95, 96, 97, -1, -1, 100,
13826 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
13827 111, 112, -1, 114, -1, 116, 117, 118, 119, 120,
13828 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
13829 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
13830 141, 142, -1, 144, 145, 146, 147, 148, 149, 150,
13831 151, 152, 153, 154, -1, 156, -1, 158, 159, 160,
13832 161, -1, 163, -1, 165, -1, 167, -1, 169, 170,
13833 171, -1, 173, -1, 175, -1, 177, 178, 179, -1,
13834 181, 182, 183, 184, 185, 186, 187, -1, 189, 190,
13835 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
13836 -1, 202, -1, 204, 205, 206, 207, 208, 209, 210,
13837 211, -1, 213, -1, 215, -1, -1, 218, -1, 220,
13838 221, 222, 223, 224, 225, -1, -1, 228, -1, 230,
13839 -1, -1, 233, 234, 235, 236, 237, 238, 239, 240,
13840 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
13841 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
13842 -1, 262, 263, 264, 265, 266, -1, 268, 269, -1,
13843 271, -1, 273, 274, 275, 276, 277, 278, -1, 280,
13844 281, -1, -1, 284, 285, 286, -1, -1, 289, 290,
13845 -1, 292, -1, 294, 295, 296, 297, 298, 299, 300,
13846 301, 302, 303, 304, 305, 306, 307, -1, 309, 310,
13847 311, -1, 313, 314, 315, 316, 317, 318, -1, 320,
13848 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
13849 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
13850 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
13851 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
13852 361, 362, 363, 364, 365, 366, 367, 368, -1, 370,
13853 371, 372, 373, 374, 375, 376, 377, 378, 379, -1,
13854 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
13855 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
13856 401, -1, 403, 404, 405, 406, -1, 408, 409, 410,
13857 411, 412, -1, 414, 415, -1, -1, 418, 419, 420,
13858 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
13859 431, -1, -1, 434, 435, 436, 437, 438, 439, 440,
13860 441, -1, 443, 444, 445, 446, 447, 448, 449, -1,
13861 451, -1, 453, 454, 455, 456, 457, -1, -1, 460,
13862 -1, 462, 463, 464, 465, 466, 467, 468, 469, 470,
13863 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
13864 481, 482, 483, -1, 3, 486, 5, -1, -1, -1,
13865 -1, -1, -1, -1, -1, -1, -1, -1, -1, 500,
13866 -1, -1, -1, 22, 23, 24, 25, 26, 27, 28,
13867 29, -1, 31, 32, 33, -1, -1, -1, -1, -1,
13868 -1, -1, -1, -1, 43, 44, -1, 46, 47, 48,
13869 -1, 50, 51, 52, 53, 54, -1, 56, 57, -1,
13870 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
13871 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
13872 -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
13873 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
13874 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
13875 109, 110, 111, 112, -1, 114, -1, 116, 117, 118,
13876 119, 120, 121, -1, 123, 124, 125, 126, 127, -1,
13877 -1, 130, 131, 132, 133, 134, -1, 136, 137, 138,
13878 -1, 140, 141, 142, -1, 144, 145, 146, 147, 148,
13879 149, 150, 151, 152, 153, 154, -1, 156, -1, 158,
13880 159, 160, 161, -1, 163, -1, 165, -1, -1, -1,
13881 169, 170, 171, -1, 173, -1, 175, -1, 177, 178,
13882 179, -1, 181, 182, 183, 184, 185, 186, 187, -1,
13883 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
13884 199, 200, -1, 202, -1, 204, 205, 206, 207, 208,
13885 209, 210, 211, -1, 213, -1, 215, -1, -1, 218,
13886 -1, 220, 221, 222, 223, 224, 225, -1, -1, 228,
13887 -1, 230, -1, -1, 233, 234, 235, 236, 237, 238,
13888 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
13889 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
13890 259, 260, -1, 262, 263, 264, 265, 266, -1, 268,
13891 269, -1, 271, -1, 273, 274, 275, 276, 277, 278,
13892 -1, 280, 281, -1, -1, 284, 285, 286, -1, -1,
13893 289, 290, -1, 292, -1, 294, 295, 296, 297, 298,
13894 299, 300, 301, 302, 303, 304, -1, -1, -1, -1,
13895 309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
13896 -1, 320, 321, 322, 323, 324, 325, -1, 327, 328,
13897 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
13898 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
13899 -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
13900 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
13901 -1, 370, 371, 372, 373, 374, 375, 376, 377, 378,
13902 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
13903 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
13904 399, 400, 401, -1, 403, 404, -1, 406, -1, 408,
13905 409, 410, 411, 412, -1, 414, 415, -1, -1, 418,
13906 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
13907 429, 430, 431, -1, -1, 434, 435, 436, -1, 438,
13908 439, 440, 441, -1, 443, 444, 445, 446, 447, 448,
13909 449, -1, 451, -1, 453, 454, 455, 456, 457, -1,
13910 -1, 460, -1, -1, 463, 464, 465, 466, 467, 468,
13911 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
13912 479, 480, 481, 482, 483, 3, -1, 5, -1, -1,
13913 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13914 -1, 500, -1, -1, 22, 23, 24, 25, 26, 27,
13915 28, 29, -1, 31, 32, 33, -1, -1, -1, -1,
13916 -1, -1, -1, -1, -1, 43, 44, -1, 46, 47,
13917 48, -1, 50, 51, 52, 53, 54, -1, 56, 57,
13918 -1, 59, 60, 61, 62, 63, 64, -1, -1, 67,
13919 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
13920 -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
13921 88, 89, 90, -1, 92, 93, 94, 95, 96, 97,
13922 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
13923 108, 109, 110, 111, 112, -1, 114, -1, 116, 117,
13924 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
13925 -1, -1, 130, 131, 132, 133, 134, -1, 136, 137,
13926 138, -1, 140, 141, 142, -1, 144, 145, 146, 147,
13927 148, 149, 150, 151, 152, 153, 154, -1, 156, -1,
13928 158, 159, 160, 161, -1, 163, -1, 165, -1, -1,
13929 -1, 169, 170, 171, -1, 173, -1, 175, -1, 177,
13930 178, 179, -1, 181, 182, 183, 184, 185, 186, 187,
13931 -1, 189, 190, 191, 192, -1, 194, 195, 196, 197,
13932 198, 199, 200, -1, 202, -1, 204, 205, 206, 207,
13933 208, 209, 210, 211, -1, 213, -1, 215, -1, -1,
13934 218, -1, 220, 221, 222, 223, 224, 225, -1, -1,
13935 228, -1, 230, -1, -1, 233, 234, 235, 236, 237,
13936 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
13937 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
13938 258, 259, 260, -1, 262, 263, 264, 265, 266, -1,
13939 268, 269, -1, 271, -1, 273, 274, 275, 276, 277,
13940 278, -1, 280, 281, -1, -1, 284, 285, 286, -1,
13941 -1, 289, 290, -1, 292, -1, 294, 295, 296, 297,
13942 298, 299, 300, 301, 302, 303, 304, -1, -1, -1,
13943 -1, 309, 310, 311, -1, 313, 314, 315, 316, 317,
13944 318, -1, 320, 321, 322, 323, 324, 325, -1, 327,
13945 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
13946 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
13947 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
13948 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
13949 -1, -1, 370, 371, 372, 373, 374, 375, 376, 377,
13950 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
13951 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
13952 398, 399, 400, 401, -1, 403, 404, -1, 406, -1,
13953 408, 409, 410, 411, 412, -1, 414, 415, -1, -1,
13954 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
13955 428, 429, 430, 431, -1, -1, 434, 435, 436, -1,
13956 438, 439, 440, 441, -1, 443, 444, 445, 446, 447,
13957 448, 449, -1, 451, -1, 453, 454, 455, 456, 457,
13958 -1, -1, 460, -1, -1, 463, 464, 465, 466, 467,
13959 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
13960 478, 479, 480, 481, 482, 483, 3, -1, 5, -1,
13961 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13962 -1, -1, 500, -1, -1, 22, 23, 24, 25, 26,
13963 27, 28, 29, -1, 31, 32, 33, -1, -1, -1,
13964 -1, -1, -1, -1, -1, -1, 43, 44, -1, 46,
13965 47, 48, -1, 50, 51, 52, 53, 54, -1, 56,
13966 57, -1, 59, 60, 61, 62, 63, 64, -1, -1,
13967 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
13968 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
13969 -1, 88, 89, 90, -1, 92, 93, 94, 95, 96,
13970 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
13971 107, 108, 109, 110, 111, 112, -1, 114, -1, 116,
13972 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
13973 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
13974 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
13975 147, 148, 149, 150, 151, 152, 153, 154, -1, 156,
13976 -1, 158, 159, 160, 161, -1, 163, -1, 165, -1,
13977 -1, -1, 169, 170, 171, -1, 173, -1, 175, -1,
13978 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
13979 187, -1, 189, 190, 191, 192, -1, 194, 195, 196,
13980 197, 198, 199, 200, -1, 202, -1, 204, 205, 206,
13981 207, 208, 209, 210, 211, -1, 213, -1, 215, -1,
13982 -1, 218, -1, 220, 221, 222, 223, 224, 225, -1,
13983 -1, 228, -1, 230, -1, -1, 233, 234, 235, 236,
13984 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
13985 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
13986 257, 258, 259, 260, -1, 262, 263, 264, 265, 266,
13987 -1, 268, 269, -1, 271, -1, 273, 274, 275, 276,
13988 277, 278, -1, 280, 281, -1, -1, 284, 285, 286,
13989 -1, -1, 289, 290, -1, 292, -1, 294, 295, 296,
13990 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
13991 -1, -1, 309, 310, 311, -1, 313, 314, 315, 316,
13992 317, 318, -1, 320, 321, 322, 323, 324, 325, -1,
13993 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
13994 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
13995 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
13996 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
13997 367, -1, -1, 370, 371, 372, 373, 374, 375, 376,
13998 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
13999 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
14000 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
14001 -1, 408, 409, 410, 411, 412, -1, 414, 415, -1,
14002 -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
14003 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
14004 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
14005 447, 448, 449, -1, 451, -1, 453, 454, 455, 456,
14006 457, -1, -1, 460, -1, -1, 463, 464, 465, 466,
14007 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
14008 477, 478, 479, 480, 481, 482, 483, 3, -1, 5,
14009 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14010 -1, -1, -1, 500, -1, -1, 22, 23, 24, 25,
14011 26, 27, 28, 29, -1, 31, 32, 33, -1, -1,
14012 -1, -1, -1, -1, -1, -1, -1, 43, 44, -1,
14013 46, 47, 48, -1, 50, 51, 52, 53, 54, -1,
14014 56, 57, -1, 59, 60, 61, 62, 63, 64, -1,
14015 -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
14016 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
14017 86, -1, 88, 89, 90, -1, 92, 93, 94, 95,
14018 96, 97, -1, -1, 100, 101, 102, 103, 104, 105,
14019 106, 107, 108, 109, 110, 111, 112, -1, 114, -1,
14020 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
14021 126, 127, -1, -1, 130, 131, 132, 133, 134, -1,
14022 136, 137, 138, -1, 140, 141, 142, -1, 144, 145,
14023 146, 147, 148, 149, 150, 151, 152, 153, 154, -1,
14024 156, -1, 158, 159, 160, 161, -1, 163, -1, 165,
14025 -1, -1, -1, 169, 170, 171, -1, 173, -1, 175,
14026 -1, 177, 178, 179, -1, 181, 182, 183, 184, 185,
14027 186, 187, -1, 189, 190, 191, 192, -1, 194, 195,
14028 196, 197, 198, 199, 200, -1, 202, -1, 204, 205,
14029 206, 207, 208, 209, 210, 211, -1, 213, -1, 215,
14030 -1, -1, 218, -1, 220, 221, 222, 223, 224, 225,
14031 -1, -1, 228, -1, 230, -1, -1, 233, 234, 235,
14032 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
14033 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
14034 256, 257, 258, 259, 260, -1, 262, 263, 264, 265,
14035 266, -1, 268, 269, -1, 271, -1, 273, 274, 275,
14036 276, 277, 278, -1, 280, 281, -1, -1, 284, 285,
14037 286, -1, -1, 289, 290, -1, 292, -1, 294, 295,
14038 296, 297, 298, 299, 300, 301, 302, 303, 304, -1,
14039 -1, -1, -1, 309, 310, 311, -1, 313, 314, 315,
14040 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
14041 -1, 327, 328, 329, 330, 331, 332, 333, 334, -1,
14042 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
14043 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
14044 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
14045 366, 367, -1, -1, 370, 371, 372, 373, 374, 375,
14046 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
14047 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
14048 396, 397, 398, 399, 400, 401, -1, 403, 404, -1,
14049 406, -1, 408, 409, 410, 411, 412, -1, 414, 415,
14050 -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
14051 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
14052 436, -1, 438, 439, 440, 441, -1, 443, 444, 445,
14053 446, 447, 448, 449, -1, 451, -1, 453, 454, 455,
14054 456, 457, -1, -1, 460, -1, -1, 463, 464, 465,
14055 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
14056 476, 477, 478, 479, 480, 481, 482, 483, 3, -1,
14057 5, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14058 -1, -1, -1, -1, 500, -1, -1, 22, 23, 24,
14059 25, 26, 27, 28, 29, -1, 31, 32, 33, -1,
14060 -1, -1, -1, -1, -1, -1, -1, -1, 43, 44,
14061 -1, 46, 47, 48, -1, 50, 51, 52, 53, 54,
14062 -1, 56, 57, -1, 59, 60, 61, 62, 63, 64,
14063 -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
14064 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
14065 85, 86, -1, 88, 89, 90, -1, 92, 93, 94,
14066 95, 96, 97, -1, -1, 100, 101, 102, 103, 104,
14067 105, 106, 107, 108, 109, 110, 111, 112, -1, 114,
14068 -1, 116, 117, 118, 119, 120, 121, -1, 123, 124,
14069 125, 126, 127, -1, -1, 130, 131, 132, 133, 134,
14070 -1, 136, 137, 138, -1, 140, 141, 142, -1, 144,
14071 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
14072 -1, 156, -1, 158, 159, 160, 161, -1, 163, -1,
14073 165, -1, -1, -1, 169, 170, 171, -1, 173, -1,
14074 175, -1, 177, 178, 179, -1, 181, 182, 183, 184,
14075 185, 186, 187, -1, 189, 190, 191, 192, -1, 194,
14076 195, 196, 197, 198, 199, 200, -1, 202, -1, 204,
14077 205, 206, 207, 208, 209, 210, 211, -1, 213, -1,
14078 215, -1, -1, 218, -1, 220, 221, 222, 223, 224,
14079 225, -1, -1, 228, -1, 230, -1, -1, 233, 234,
14080 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
14081 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
14082 255, 256, 257, 258, 259, 260, -1, 262, 263, 264,
14083 265, 266, -1, 268, 269, -1, 271, -1, 273, 274,
14084 275, 276, 277, 278, -1, 280, 281, -1, -1, 284,
14085 285, 286, -1, -1, 289, 290, -1, 292, -1, 294,
14086 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
14087 -1, -1, -1, -1, 309, 310, 311, -1, 313, 314,
14088 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
14089 325, -1, 327, 328, 329, 330, 331, 332, 333, 334,
14090 -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
14091 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
14092 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
14093 365, 366, 367, -1, -1, 370, 371, 372, 373, 374,
14094 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
14095 -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
14096 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
14097 -1, 406, -1, 408, 409, 410, 411, 412, -1, 414,
14098 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
14099 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
14100 435, 436, -1, 438, 439, 440, 441, -1, 443, 444,
14101 445, 446, 447, 448, 449, -1, 451, -1, 453, 454,
14102 455, 456, 457, -1, -1, 460, -1, -1, 463, 464,
14103 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
14104 475, 476, 477, 478, 479, 480, 481, 482, 483, 3,
14105 -1, 5, -1, -1, -1, -1, -1, -1, -1, -1,
14106 -1, -1, -1, -1, -1, 500, -1, -1, 22, 23,
14107 24, 25, 26, 27, 28, 29, -1, 31, 32, 33,
14108 -1, -1, -1, -1, -1, -1, -1, -1, -1, 43,
14109 44, -1, 46, 47, 48, -1, 50, 51, 52, 53,
14110 54, -1, 56, 57, -1, 59, 60, 61, 62, 63,
14111 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
14112 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
14113 84, 85, 86, -1, 88, 89, 90, -1, 92, 93,
14114 94, 95, 96, 97, -1, -1, 100, 101, 102, 103,
14115 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
14116 114, -1, 116, 117, 118, 119, 120, 121, -1, 123,
14117 124, 125, 126, 127, -1, -1, 130, 131, 132, 133,
14118 134, -1, 136, 137, 138, -1, 140, 141, 142, -1,
14119 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
14120 154, -1, 156, -1, 158, 159, 160, 161, -1, 163,
14121 -1, 165, -1, -1, -1, 169, 170, 171, -1, 173,
14122 -1, 175, -1, 177, 178, 179, -1, 181, 182, 183,
14123 184, 185, 186, 187, -1, 189, 190, 191, 192, -1,
14124 194, 195, 196, 197, 198, 199, 200, -1, 202, -1,
14125 204, 205, 206, 207, 208, 209, 210, 211, -1, 213,
14126 -1, 215, -1, -1, 218, -1, 220, 221, 222, 223,
14127 224, 225, -1, -1, 228, -1, 230, -1, -1, 233,
14128 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
14129 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
14130 254, 255, 256, 257, 258, 259, 260, -1, 262, 263,
14131 264, 265, 266, -1, 268, 269, -1, 271, -1, 273,
14132 274, 275, 276, 277, 278, -1, 280, 281, -1, -1,
14133 284, 285, 286, -1, -1, 289, 290, -1, 292, -1,
14134 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
14135 304, -1, -1, -1, -1, 309, 310, 311, -1, 313,
14136 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
14137 324, 325, -1, 327, 328, 329, 330, 331, 332, 333,
14138 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
14139 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
14140 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
14141 364, 365, 366, 367, -1, -1, 370, 371, 372, 373,
14142 374, 375, 376, 377, 378, 379, -1, 381, 382, 383,
14143 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
14144 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
14145 404, -1, 406, -1, 408, 409, 410, 411, 412, -1,
14146 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
14147 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
14148 434, 435, 436, -1, 438, 439, 440, 441, -1, 443,
14149 444, 445, 446, 447, 448, 449, -1, 451, -1, 453,
14150 454, 455, 456, 457, -1, -1, 460, -1, -1, 463,
14151 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
14152 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
14153 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14154 -1, -1, -1, -1, -1, -1, 500, -1, -1, 22,
14155 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
14156 33, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14157 43, 44, -1, 46, 47, 48, -1, 50, 51, 52,
14158 53, 54, -1, 56, 57, -1, 59, 60, 61, 62,
14159 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
14160 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
14161 83, 84, 85, 86, -1, 88, 89, 90, -1, 92,
14162 93, 94, 95, 96, 97, -1, -1, 100, 101, 102,
14163 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
14164 -1, 114, -1, 116, 117, 118, 119, 120, 121, -1,
14165 123, 124, 125, 126, 127, -1, -1, 130, 131, 132,
14166 133, 134, -1, 136, 137, 138, -1, 140, 141, 142,
14167 -1, 144, 145, 146, 147, 148, 149, 150, 151, 152,
14168 153, 154, -1, 156, -1, 158, 159, 160, 161, -1,
14169 163, -1, 165, -1, -1, -1, 169, 170, 171, -1,
14170 173, -1, 175, -1, 177, 178, 179, -1, 181, 182,
14171 183, 184, 185, 186, 187, -1, 189, 190, 191, 192,
14172 -1, 194, 195, 196, 197, 198, 199, 200, -1, 202,
14173 -1, 204, 205, 206, 207, 208, 209, 210, 211, -1,
14174 213, -1, 215, -1, -1, 218, -1, 220, 221, 222,
14175 223, 224, 225, -1, -1, 228, -1, 230, -1, -1,
14176 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
14177 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
14178 253, 254, 255, 256, 257, 258, 259, 260, -1, 262,
14179 263, 264, 265, 266, -1, 268, 269, -1, 271, -1,
14180 273, 274, 275, 276, 277, 278, -1, 280, 281, -1,
14181 -1, 284, 285, 286, -1, -1, 289, 290, -1, 292,
14182 -1, 294, 295, 296, 297, 298, 299, 300, 301, 302,
14183 303, 304, -1, -1, -1, -1, 309, 310, 311, -1,
14184 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
14185 323, 324, 325, -1, 327, 328, 329, 330, 331, 332,
14186 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
14187 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
14188 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
14189 363, 364, 365, 366, 367, -1, -1, 370, 371, 372,
14190 373, 374, 375, 376, 377, 378, 379, -1, 381, 382,
14191 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
14192 393, 394, 395, 396, 397, 398, 399, 400, 401, -1,
14193 403, 404, -1, 406, -1, 408, 409, 410, 411, 412,
14194 -1, 414, 415, -1, -1, 418, 419, 420, 421, 422,
14195 -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
14196 -1, 434, 435, 436, -1, 438, 439, 440, 441, -1,
14197 443, 444, 445, 446, 447, 448, 449, -1, 451, -1,
14198 453, 454, 455, 456, 457, -1, -1, 460, -1, -1,
14199 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
14200 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
14201 483, 3, -1, -1, -1, -1, -1, -1, -1, -1,
14202 -1, -1, -1, -1, -1, -1, -1, 500, -1, -1,
14203 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
14204 32, 33, -1, -1, -1, -1, -1, -1, -1, -1,
14205 -1, 43, 44, -1, 46, 47, 48, -1, 50, 51,
14206 52, 53, 54, -1, 56, 57, -1, 59, 60, 61,
14207 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
14208 -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
14209 82, 83, 84, 85, 86, -1, 88, 89, 90, -1,
14210 92, 93, 94, 95, 96, 97, -1, -1, 100, 101,
14211 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
14212 112, -1, 114, -1, 116, 117, 118, 119, 120, 121,
14213 -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
14214 132, 133, 134, -1, 136, 137, 138, -1, 140, 141,
14215 142, -1, 144, 145, 146, 147, 148, 149, 150, 151,
14216 152, 153, 154, -1, 156, -1, 158, 159, 160, 161,
14217 -1, 163, -1, 165, -1, -1, -1, 169, 170, 171,
14218 -1, 173, -1, 175, -1, 177, 178, 179, -1, 181,
14219 182, 183, 184, 185, 186, 187, -1, 189, 190, 191,
14220 192, -1, 194, 195, 196, 197, 198, 199, 200, -1,
14221 202, -1, 204, 205, 206, 207, 208, 209, 210, 211,
14222 -1, 213, -1, 215, -1, -1, 218, -1, 220, 221,
14223 222, 223, 224, 225, -1, -1, 228, -1, 230, -1,
14224 -1, 233, 234, 235, 236, 237, 238, 239, 240, 241,
14225 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
14226 252, 253, 254, 255, 256, 257, 258, 259, 260, -1,
14227 262, 263, 264, 265, 266, -1, 268, 269, -1, 271,
14228 -1, 273, 274, 275, 276, 277, 278, -1, 280, 281,
14229 -1, -1, 284, 285, 286, -1, -1, 289, 290, -1,
14230 292, -1, 294, 295, 296, 297, 298, 299, 300, 301,
14231 302, 303, 304, -1, -1, -1, -1, 309, 310, 311,
14232 -1, 313, 314, 315, 316, 317, 318, -1, 320, 321,
14233 322, 323, 324, 325, -1, 327, 328, 329, 330, 331,
14234 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
14235 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
14236 -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
14237 362, 363, 364, 365, 366, 367, -1, -1, 370, 371,
14238 372, 373, 374, 375, 376, 377, 378, 379, -1, 381,
14239 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
14240 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
14241 -1, 403, 404, -1, 406, -1, 408, 409, 410, 411,
14242 412, -1, 414, 415, -1, -1, 418, 419, 420, 421,
14243 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
14244 -1, -1, 434, 435, 436, -1, 438, 439, 440, 441,
14245 -1, 443, 444, 445, 446, 447, 448, 449, -1, 451,
14246 -1, 453, 454, 455, 456, 457, -1, -1, 460, -1,
14247 -1, 463, 464, 465, 466, 467, 468, 469, 470, 471,
14248 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
14249 482, 483, 3, -1, -1, -1, -1, -1, -1, -1,
14250 -1, -1, -1, -1, -1, -1, -1, -1, 500, -1,
14251 -1, 22, 23, 24, 25, 26, 27, 28, 29, -1,
14252 31, 32, 33, -1, -1, -1, -1, -1, -1, -1,
14253 -1, -1, 43, 44, -1, 46, 47, 48, -1, 50,
14254 51, 52, 53, 54, -1, 56, 57, -1, 59, 60,
14255 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
14256 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
14257 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
14258 -1, 92, 93, 94, 95, 96, 97, -1, -1, 100,
14259 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
14260 111, 112, -1, 114, -1, 116, 117, 118, 119, 120,
14261 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
14262 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
14263 141, 142, -1, 144, 145, 146, 147, 148, 149, 150,
14264 151, 152, 153, 154, -1, 156, -1, 158, 159, 160,
14265 161, -1, 163, -1, 165, -1, -1, -1, 169, 170,
14266 171, -1, 173, -1, 175, -1, 177, 178, 179, -1,
14267 181, 182, 183, 184, 185, 186, 187, -1, 189, 190,
14268 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
14269 -1, 202, -1, 204, 205, 206, 207, 208, 209, 210,
14270 211, -1, 213, -1, 215, -1, -1, 218, -1, 220,
14271 221, 222, 223, 224, 225, -1, -1, 228, -1, 230,
14272 -1, -1, 233, 234, 235, 236, 237, 238, 239, 240,
14273 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
14274 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
14275 -1, 262, 263, 264, 265, 266, -1, 268, 269, -1,
14276 271, -1, 273, 274, 275, 276, 277, 278, -1, 280,
14277 281, -1, -1, 284, 285, 286, -1, -1, 289, 290,
14278 -1, 292, -1, 294, 295, 296, 297, 298, 299, 300,
14279 301, 302, 303, 304, -1, -1, -1, -1, 309, 310,
14280 311, -1, 313, 314, 315, 316, 317, 318, -1, 320,
14281 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
14282 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
14283 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
14284 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
14285 361, 362, 363, 364, 365, 366, 367, -1, -1, 370,
14286 371, 372, 373, 374, 375, 376, 377, 378, 379, -1,
14287 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
14288 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
14289 401, -1, 403, 404, -1, 406, -1, 408, 409, 410,
14290 411, 412, -1, 414, 415, -1, -1, 418, 419, 420,
14291 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
14292 431, -1, -1, 434, 435, 436, -1, 438, 439, 440,
14293 441, -1, 443, 444, 445, 446, 447, 448, 449, -1,
14294 451, -1, 453, 454, 455, 456, 457, -1, -1, 460,
14295 -1, -1, 463, 464, 465, 466, 467, 468, 469, 470,
14296 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
14297 481, 482, 483, -1, 3, 4, 5, -1, -1, 8,
14298 9, -1, -1, -1, -1, -1, 15, 16, -1, 500,
14299 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
14300 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
14301 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
14302 49, 50, 51, 52, -1, 54, 55, 56, 57, 58,
14303 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
14304 69, 70, 71, 72, 73, 74, 75, 76, -1, 78,
14305 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
14306 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
14307 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
14308 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
14309 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
14310 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
14311 139, 140, 141, 142, 143, 144, 145, 146, 147, -1,
14312 149, 150, 151, 152, 153, -1, 155, 156, 157, 158,
14313 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
14314 169, 170, 171, 172, 173, 174, 175, 176, -1, -1,
14315 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
14316 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
14317 199, 200, 201, 202, 203, -1, 205, 206, 207, 208,
14318 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
14319 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
14320 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
14321 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
14322 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
14323 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
14324 269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
14325 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
14326 289, -1, 291, 292, 293, -1, 295, 296, 297, 298,
14327 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
14328 309, 310, -1, 312, 313, 314, -1, 316, 317, 318,
14329 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
14330 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
14331 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
14332 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
14333 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
14334 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
14335 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
14336 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
14337 399, -1, 401, 402, 403, 404, 405, 406, 407, 408,
14338 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
14339 419, -1, 421, -1, 423, 424, 425, 426, 427, 428,
14340 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
14341 439, 440, 441, 442, 443, 444, 445, 446, 447, -1,
14342 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
14343 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
14344 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14345 -1, 480, 481, 482, 483, -1, 3, -1, 487, 488,
14346 489, 8, 491, 492, 493, 494, 495, 496, 15, 16,
14347 -1, -1, 19, 20, 21, 22, 23, 24, 25, 26,
14348 27, 28, 29, -1, 31, 32, 33, -1, -1, -1,
14349 -1, -1, -1, -1, -1, -1, 43, 44, -1, 46,
14350 47, 48, -1, 50, 51, 52, 53, 54, -1, 56,
14351 57, -1, 59, 60, 61, 62, 63, 64, -1, -1,
14352 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
14353 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
14354 -1, 88, 89, 90, -1, 92, 93, 94, 95, 96,
14355 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
14356 107, 108, 109, 110, 111, 112, -1, 114, -1, 116,
14357 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
14358 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
14359 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
14360 147, 148, 149, 150, 151, 152, 153, 154, -1, 156,
14361 -1, 158, 159, 160, 161, -1, 163, -1, 165, -1,
14362 -1, -1, 169, 170, 171, -1, 173, -1, 175, -1,
14363 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
14364 187, -1, 189, 190, 191, 192, -1, 194, 195, 196,
14365 197, 198, 199, 200, -1, 202, -1, 204, 205, 206,
14366 207, 208, 209, 210, 211, -1, 213, -1, 215, -1,
14367 -1, 218, -1, 220, 221, 222, 223, 224, 225, -1,
14368 -1, 228, -1, 230, -1, -1, 233, 234, 235, 236,
14369 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
14370 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
14371 257, 258, 259, 260, -1, 262, 263, 264, 265, 266,
14372 -1, 268, 269, -1, 271, -1, 273, 274, 275, 276,
14373 277, 278, -1, 280, 281, -1, -1, 284, 285, 286,
14374 -1, -1, 289, 290, -1, 292, -1, 294, 295, 296,
14375 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
14376 -1, -1, 309, 310, 311, -1, 313, 314, 315, 316,
14377 317, 318, -1, 320, 321, 322, 323, 324, 325, -1,
14378 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
14379 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
14380 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
14381 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
14382 367, -1, -1, 370, 371, 372, 373, 374, 375, 376,
14383 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
14384 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
14385 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
14386 -1, 408, 409, 410, 411, 412, -1, 414, 415, -1,
14387 -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
14388 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
14389 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
14390 447, 448, 449, -1, 451, -1, 453, 454, 455, 456,
14391 457, -1, -1, 460, -1, -1, 463, 464, 465, 466,
14392 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
14393 477, 478, 479, 480, 481, 482, 483, -1, -1, -1,
14394 487, 488, 489, -1, 491, 492, 493, 494, 495, 496,
14395 8, -1, -1, 11, -1, -1, -1, 15, 16, 17,
14396 18, 19, 20, 21, -1, -1, -1, -1, -1, -1,
14397 -1, -1, 8, -1, -1, 11, -1, -1, 36, 15,
14398 16, 17, 18, 19, 20, 21, -1, -1, 46, -1,
14399 -1, -1, -1, -1, -1, 53, -1, -1, -1, -1,
14400 36, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14401 46, -1, -1, -1, -1, -1, -1, 53, -1, 8,
14402 78, -1, 11, -1, -1, -1, 15, 16, 17, 18,
14403 19, 20, 21, -1, -1, -1, -1, -1, -1, -1,
14404 -1, -1, 78, -1, -1, -1, -1, 36, -1, -1,
14405 -1, -1, -1, -1, -1, -1, -1, 46, -1, -1,
14406 -1, -1, -1, -1, 53, -1, -1, -1, -1, -1,
14407 -1, -1, -1, -1, 8, -1, -1, 11, -1, -1,
14408 -1, 15, 16, 17, 18, 19, 20, 21, -1, 78,
14409 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14410 -1, -1, 36, -1, -1, -1, -1, -1, -1, -1,
14411 -1, -1, 46, -1, 172, -1, -1, -1, -1, 53,
14412 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14413 188, -1, -1, -1, -1, 193, 172, -1, -1, -1,
14414 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
14415 -1, -1, 188, -1, -1, -1, -1, 193, 216, 217,
14416 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14417 -1, -1, -1, 231, -1, -1, -1, -1, -1, -1,
14418 216, 217, -1, 172, -1, -1, -1, -1, -1, -1,
14419 -1, -1, -1, -1, -1, 231, -1, -1, -1, 188,
14420 -1, -1, -1, -1, 193, -1, -1, -1, -1, 267,
14421 -1, -1, 270, -1, -1, -1, -1, -1, -1, -1,
14422 -1, -1, -1, -1, -1, -1, 284, 216, 217, 287,
14423 -1, 267, -1, -1, 270, -1, -1, -1, 172, -1,
14424 -1, -1, 231, -1, -1, -1, -1, -1, 284, -1,
14425 -1, 287, -1, -1, 188, -1, -1, -1, -1, 193,
14426 -1, -1, -1, -1, 8, -1, -1, 11, -1, -1,
14427 -1, 15, 16, 17, 18, 19, 20, 21, 267, -1,
14428 -1, 270, 216, 217, -1, -1, -1, -1, -1, -1,
14429 -1, -1, 36, -1, -1, 284, -1, 231, 287, -1,
14430 -1, -1, 46, -1, -1, -1, -1, -1, -1, 53,
14431 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14432 -1, -1, 380, -1, -1, -1, -1, -1, -1, -1,
14433 -1, -1, -1, 267, 78, -1, 270, -1, -1, -1,
14434 -1, -1, -1, -1, 380, -1, -1, -1, -1, -1,
14435 284, -1, -1, 287, -1, -1, -1, -1, -1, -1,
14436 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14439 -1, 380, -1, -1, -1, -1, -1, -1, -1, -1,
14440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14442 -1, -1, -1, -1, -1, -1, 484, -1, 172, 487,
14443 488, 489, -1, 491, 492, 493, 494, 495, 496, -1,
14444 -1, -1, -1, 501, 188, -1, 380, -1, 484, 193,
14445 -1, 487, 488, 489, -1, 491, 492, 493, 494, 495,
14446 496, -1, -1, -1, -1, 501, -1, -1, -1, -1,
14447 -1, -1, 216, 217, -1, -1, -1, -1, -1, -1,
14448 -1, -1, -1, -1, -1, -1, -1, 231, -1, -1,
14449 -1, -1, -1, -1, -1, 484, -1, -1, 487, 488,
14450 489, -1, 491, 492, 493, 494, 495, 496, -1, -1,
14451 -1, -1, 501, -1, -1, -1, -1, -1, -1, -1,
14452 -1, -1, -1, 267, -1, -1, 270, -1, -1, -1,
14453 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14454 284, -1, -1, 287, -1, -1, -1, -1, -1, -1,
14455 484, -1, -1, 487, 488, 489, -1, 491, 492, 493,
14456 494, 495, 496, -1, -1, -1, -1, 501, -1, -1,
14457 -1, -1, -1, 8, -1, -1, 11, -1, -1, -1,
14458 15, 16, 17, 18, 19, 20, 21, -1, -1, -1,
14459 -1, -1, -1, -1, -1, 8, -1, -1, 11, -1,
14460 -1, 36, 15, 16, 17, 18, 19, 20, 21, -1,
14461 -1, 46, -1, -1, -1, -1, -1, -1, 53, -1,
14462 -1, -1, -1, 36, -1, -1, -1, -1, -1, -1,
14463 -1, -1, -1, 46, -1, -1, 380, -1, -1, -1,
14464 53, -1, 8, 78, -1, 11, -1, -1, -1, 15,
14465 16, 17, 18, 19, 20, 21, -1, -1, -1, -1,
14466 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
14467 36, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14468 46, -1, -1, -1, -1, -1, -1, 53, -1, -1,
14469 -1, -1, -1, -1, -1, -1, -1, 8, -1, -1,
14470 11, -1, -1, -1, 15, 16, 17, 18, 19, 20,
14471 21, -1, 78, -1, -1, -1, -1, -1, -1, -1,
14472 -1, -1, -1, -1, -1, 36, -1, -1, -1, -1,
14473 -1, -1, -1, -1, -1, 46, -1, 172, -1, -1,
14474 484, -1, 53, 487, 488, 489, -1, 491, 492, 493,
14475 494, 495, 496, 188, -1, -1, -1, 501, 193, 172,
14476 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
14477 -1, -1, -1, -1, -1, 188, -1, -1, -1, -1,
14478 193, 216, 217, -1, -1, -1, -1, -1, -1, -1,
14479 -1, -1, -1, -1, -1, -1, 231, -1, -1, -1,
14480 -1, -1, -1, 216, 217, -1, 172, -1, -1, -1,
14481 -1, -1, -1, -1, -1, -1, -1, -1, 231, -1,
14482 -1, -1, 188, -1, -1, -1, -1, 193, -1, -1,
14483 -1, -1, 267, -1, -1, 270, -1, -1, -1, -1,
14484 -1, -1, -1, -1, -1, -1, -1, -1, -1, 284,
14485 216, 217, 287, -1, 267, -1, -1, 270, -1, -1,
14486 -1, 172, -1, -1, -1, 231, -1, -1, -1, -1,
14487 -1, 284, -1, -1, 287, -1, -1, 188, -1, -1,
14488 -1, -1, 193, -1, -1, -1, -1, 8, -1, -1,
14489 11, -1, -1, -1, 15, 16, 17, 18, 19, 20,
14490 21, 267, -1, -1, 270, 216, 217, -1, -1, -1,
14491 -1, -1, -1, -1, -1, 36, -1, -1, 284, -1,
14492 231, 287, -1, -1, -1, 46, -1, -1, -1, -1,
14493 -1, -1, 53, -1, -1, -1, -1, -1, -1, -1,
14494 -1, -1, -1, -1, -1, 380, -1, -1, -1, -1,
14495 -1, -1, -1, -1, -1, -1, 267, 78, -1, 270,
14496 -1, -1, -1, -1, -1, -1, -1, 380, -1, -1,
14497 -1, -1, -1, 284, -1, -1, 287, -1, -1, -1,
14498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14499 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14501 -1, -1, -1, -1, 380, -1, -1, -1, -1, -1,
14502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14503 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14504 -1, -1, -1, -1, -1, -1, -1, -1, -1, 484,
14505 -1, 172, 487, 488, 489, -1, 491, 492, 493, 494,
14506 495, 496, -1, -1, -1, -1, 501, 188, -1, 380,
14507 -1, 484, 193, -1, 487, 488, 489, -1, 491, 492,
14508 493, 494, 495, 496, -1, -1, -1, -1, 501, -1,
14509 -1, -1, -1, -1, -1, 216, 217, -1, -1, -1,
14510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14511 231, -1, -1, -1, -1, -1, -1, -1, 484, -1,
14512 -1, 487, 488, 489, -1, 491, 492, 493, 494, 495,
14513 496, -1, -1, -1, -1, 501, -1, -1, -1, -1,
14514 -1, -1, -1, -1, -1, -1, 267, -1, -1, 270,
14515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14516 -1, -1, -1, 284, -1, -1, 287, -1, -1, -1,
14517 -1, -1, -1, 484, -1, -1, 487, 488, 489, -1,
14518 491, 492, 493, 494, 495, 496, -1, -1, -1, -1,
14519 501, -1, -1, -1, -1, -1, 8, -1, -1, 11,
14520 -1, -1, -1, 15, 16, 17, 18, 19, 20, 21,
14521 -1, -1, -1, -1, -1, -1, -1, -1, 8, -1,
14522 -1, 11, -1, -1, 36, 15, 16, 17, 18, 19,
14523 20, 21, -1, -1, 46, -1, -1, -1, -1, -1,
14524 -1, 53, -1, -1, -1, -1, 36, -1, -1, -1,
14525 -1, -1, -1, -1, -1, -1, 46, -1, -1, 380,
14526 -1, -1, -1, 53, -1, 8, 78, -1, 11, -1,
14527 -1, -1, 15, 16, 17, 18, 19, 20, 21, -1,
14528 -1, -1, -1, -1, -1, -1, -1, -1, 78, -1,
14529 -1, -1, -1, 36, -1, -1, -1, -1, -1, -1,
14530 -1, -1, -1, 46, -1, -1, -1, -1, -1, -1,
14531 53, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14532 8, -1, -1, 11, -1, -1, -1, 15, 16, 17,
14533 18, 19, 20, 21, -1, 78, -1, -1, -1, -1,
14534 -1, -1, -1, -1, -1, -1, -1, -1, 36, -1,
14535 -1, -1, -1, -1, -1, -1, -1, -1, 46, -1,
14536 172, -1, -1, 484, -1, 53, 487, 488, 489, -1,
14537 491, 492, 493, 494, 495, 496, 188, -1, -1, -1,
14538 501, 193, 172, -1, -1, -1, -1, -1, -1, -1,
14539 78, -1, -1, -1, -1, -1, -1, -1, 188, -1,
14540 -1, -1, -1, 193, 216, 217, -1, -1, -1, 8,
14541 -1, -1, 11, -1, -1, -1, 15, 16, -1, 231,
14542 19, 20, 21, -1, -1, -1, 216, 217, -1, 172,
14543 -1, -1, -1, -1, -1, -1, -1, 36, -1, -1,
14544 -1, 231, -1, -1, -1, 188, -1, 46, -1, -1,
14545 193, -1, -1, -1, 53, 267, -1, -1, 270, -1,
14546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14547 -1, -1, 284, 216, 217, 287, -1, 267, -1, 78,
14548 270, -1, -1, -1, 172, -1, -1, -1, 231, -1,
14549 -1, -1, -1, -1, 284, -1, -1, 287, -1, -1,
14550 188, -1, -1, -1, -1, 193, -1, -1, -1, -1,
14551 8, -1, -1, 11, -1, -1, -1, 15, 16, 17,
14552 18, 19, 20, 21, 267, -1, -1, 270, 216, 217,
14553 -1, -1, -1, -1, -1, -1, -1, -1, 36, -1,
14554 -1, 284, -1, 231, 287, -1, -1, -1, 46, -1,
14555 -1, -1, -1, -1, -1, 53, -1, -1, -1, -1,
14556 -1, -1, -1, -1, -1, -1, -1, -1, 380, -1,
14557 -1, -1, -1, 172, -1, -1, -1, -1, -1, 267,
14558 78, -1, 270, -1, -1, -1, -1, -1, -1, 188,
14559 380, -1, -1, -1, 193, -1, 284, -1, -1, 287,
14560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14561 -1, -1, -1, -1, -1, -1, -1, 216, 217, -1,
14562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14563 -1, -1, 231, -1, -1, -1, -1, 380, -1, -1,
14564 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14566 -1, -1, -1, -1, -1, -1, -1, -1, 267, -1,
14567 -1, 270, 484, -1, 172, 487, 488, 489, -1, 491,
14568 492, 493, 494, 495, 496, 284, -1, -1, -1, 501,
14569 188, -1, 380, -1, 484, 193, -1, 487, 488, 489,
14570 -1, 491, 492, 493, 494, 495, 496, -1, -1, 499,
14571 -1, -1, -1, -1, -1, -1, -1, -1, 216, 217,
14572 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14573 -1, -1, -1, 231, -1, -1, -1, -1, -1, -1,
14574 -1, 484, -1, -1, 487, 488, 489, -1, 491, 492,
14575 493, 494, 495, 496, -1, -1, 499, -1, -1, -1,
14576 -1, -1, -1, -1, -1, -1, -1, -1, -1, 267,
14577 -1, -1, 270, -1, -1, -1, -1, -1, -1, -1,
14578 -1, 380, -1, -1, -1, -1, 284, -1, -1, 287,
14579 -1, -1, -1, -1, -1, -1, 484, -1, -1, 487,
14580 488, 489, -1, 491, 492, 493, 494, 495, 496, -1,
14581 -1, 499, -1, -1, -1, -1, -1, -1, -1, -1,
14582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14584 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14585 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14588 -1, -1, 380, -1, -1, 484, -1, -1, 487, 488,
14589 489, -1, 491, 492, 493, 494, 495, 496, -1, -1,
14590 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14591 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14597 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14598 -1, -1, -1, 3, -1, -1, 484, -1, -1, 487,
14599 488, 489, -1, 491, 492, 493, 494, 495, 496, -1,
14600 -1, 499, 22, 23, 24, 25, 26, 27, 28, 29,
14601 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
14602 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
14603 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
14604 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
14605 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
14606 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
14607 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
14608 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
14609 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
14610 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
14611 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
14612 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
14613 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
14614 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
14615 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
14616 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
14617 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
14618 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
14619 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
14620 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
14621 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
14622 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
14623 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
14624 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
14625 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
14626 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
14627 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
14628 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
14629 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
14630 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
14631 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
14632 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
14633 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
14634 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
14635 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
14636 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
14637 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
14638 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
14639 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
14640 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
14641 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
14642 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
14643 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
14644 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
14645 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
14646 480, 481, 482, 483, 3, -1, -1, -1, -1, -1,
14647 -1, -1, -1, 493, -1, -1, -1, -1, -1, -1,
14648 -1, -1, -1, 22, 23, 24, 25, 26, 27, 28,
14649 29, -1, 31, 32, 33, -1, -1, -1, -1, -1,
14650 -1, -1, -1, -1, 43, 44, -1, 46, 47, 48,
14651 -1, 50, 51, 52, 53, 54, -1, 56, 57, -1,
14652 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
14653 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
14654 -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
14655 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
14656 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
14657 109, 110, 111, 112, -1, 114, -1, 116, 117, 118,
14658 119, 120, 121, -1, 123, 124, 125, 126, 127, -1,
14659 -1, 130, 131, 132, 133, 134, -1, 136, 137, 138,
14660 -1, 140, 141, 142, -1, 144, 145, 146, 147, 148,
14661 149, 150, 151, 152, 153, 154, -1, 156, -1, 158,
14662 159, 160, 161, -1, 163, -1, 165, -1, -1, -1,
14663 169, 170, 171, -1, 173, -1, 175, -1, 177, 178,
14664 179, -1, 181, 182, 183, 184, 185, 186, 187, -1,
14665 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
14666 199, 200, -1, 202, -1, 204, 205, 206, 207, 208,
14667 209, 210, 211, -1, 213, -1, 215, -1, -1, 218,
14668 -1, 220, 221, 222, 223, 224, 225, -1, -1, 228,
14669 -1, 230, -1, -1, 233, 234, 235, 236, 237, 238,
14670 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
14671 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
14672 259, 260, -1, 262, 263, 264, 265, 266, -1, 268,
14673 269, -1, 271, -1, 273, 274, 275, 276, 277, 278,
14674 -1, 280, 281, -1, -1, 284, 285, 286, -1, -1,
14675 289, 290, -1, 292, -1, 294, 295, 296, 297, 298,
14676 299, 300, 301, 302, 303, 304, -1, -1, -1, -1,
14677 309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
14678 -1, 320, 321, 322, 323, 324, 325, -1, 327, 328,
14679 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
14680 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
14681 -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
14682 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
14683 -1, 370, 371, 372, 373, 374, 375, 376, 377, 378,
14684 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
14685 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
14686 399, 400, 401, -1, 403, 404, -1, 406, -1, 408,
14687 409, 410, 411, 412, -1, 414, 415, -1, -1, 418,
14688 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
14689 429, 430, 431, -1, -1, 434, 435, 436, -1, 438,
14690 439, 440, 441, -1, 443, 444, 445, 446, 447, 448,
14691 449, -1, 451, -1, 453, 454, 455, 456, 457, -1,
14692 -1, 460, -1, -1, 463, 464, 465, 466, 467, 468,
14693 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
14694 479, 480, 481, 482, 483, 3, -1, -1, -1, -1,
14695 -1, -1, -1, -1, 493, -1, -1, -1, -1, -1,
14696 -1, -1, -1, -1, 22, 23, 24, 25, 26, 27,
14697 28, 29, -1, 31, 32, 33, -1, -1, -1, -1,
14698 -1, -1, -1, -1, -1, 43, 44, -1, 46, 47,
14699 48, -1, 50, 51, 52, 53, 54, -1, 56, 57,
14700 -1, 59, 60, 61, 62, 63, 64, -1, -1, 67,
14701 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
14702 -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
14703 88, 89, 90, -1, 92, 93, 94, 95, 96, 97,
14704 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
14705 108, 109, 110, 111, 112, -1, 114, -1, 116, 117,
14706 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
14707 -1, -1, 130, 131, 132, 133, 134, -1, 136, 137,
14708 138, -1, 140, 141, 142, -1, 144, 145, 146, 147,
14709 148, 149, 150, 151, 152, 153, 154, -1, 156, -1,
14710 158, 159, 160, 161, -1, 163, -1, 165, -1, -1,
14711 -1, 169, 170, 171, -1, 173, -1, 175, -1, 177,
14712 178, 179, -1, 181, 182, 183, 184, 185, 186, 187,
14713 -1, 189, 190, 191, 192, -1, 194, 195, 196, 197,
14714 198, 199, 200, -1, 202, -1, 204, 205, 206, 207,
14715 208, 209, 210, 211, -1, 213, -1, 215, -1, -1,
14716 218, -1, 220, 221, 222, 223, 224, 225, -1, -1,
14717 228, -1, 230, -1, -1, 233, 234, 235, 236, 237,
14718 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
14719 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
14720 258, 259, 260, -1, 262, 263, 264, 265, 266, -1,
14721 268, 269, -1, 271, -1, 273, 274, 275, 276, 277,
14722 278, -1, 280, 281, -1, -1, 284, 285, 286, -1,
14723 -1, 289, 290, -1, 292, -1, 294, 295, 296, 297,
14724 298, 299, 300, 301, 302, 303, 304, -1, -1, -1,
14725 -1, 309, 310, 311, -1, 313, 314, 315, 316, 317,
14726 318, -1, 320, 321, 322, 323, 324, 325, -1, 327,
14727 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
14728 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
14729 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
14730 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
14731 -1, -1, 370, 371, 372, 373, 374, 375, 376, 377,
14732 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
14733 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
14734 398, 399, 400, 401, -1, 403, 404, -1, 406, -1,
14735 408, 409, 410, 411, 412, -1, 414, 415, -1, -1,
14736 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
14737 428, 429, 430, 431, -1, -1, 434, 435, 436, -1,
14738 438, 439, 440, 441, -1, 443, 444, 445, 446, 447,
14739 448, 449, -1, 451, -1, 453, 454, 455, 456, 457,
14740 -1, -1, 460, -1, -1, 463, 464, 465, 466, 467,
14741 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
14742 478, 479, 480, 481, 482, 483, 3, 4, 5, -1,
14743 -1, -1, 9, -1, -1, 493, -1, -1, -1, -1,
14744 -1, -1, -1, -1, -1, 22, 23, 24, 25, 26,
14745 27, 28, 29, -1, 31, 32, 33, -1, -1, -1,
14746 37, -1, -1, -1, -1, 42, 43, 44, -1, 46,
14747 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
14748 57, -1, 59, 60, 61, 62, 63, 64, -1, -1,
14749 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
14750 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
14751 87, 88, 89, 90, -1, 92, 93, 94, 95, 96,
14752 97, -1, 99, 100, 101, 102, 103, 104, 105, 106,
14753 107, 108, 109, 110, 111, 112, 113, 114, -1, 116,
14754 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
14755 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
14756 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
14757 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
14758 -1, 158, 159, 160, 161, -1, 163, -1, 165, 166,
14759 -1, 168, 169, 170, 171, 172, 173, -1, 175, -1,
14760 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
14761 187, 188, 189, 190, 191, 192, -1, 194, 195, 196,
14762 197, 198, 199, 200, -1, 202, 203, 204, 205, 206,
14763 207, 208, 209, 210, 211, -1, 213, -1, 215, 216,
14764 217, 218, 219, 220, 221, 222, 223, 224, 225, -1,
14765 -1, 228, 229, 230, 231, -1, 233, 234, 235, 236,
14766 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
14767 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
14768 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
14769 -1, 268, 269, 270, 271, -1, 273, 274, 275, 276,
14770 277, 278, -1, 280, 281, 282, -1, 284, 285, 286,
14771 -1, -1, 289, 290, 291, 292, 293, 294, 295, 296,
14772 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
14773 -1, -1, 309, 310, 311, 312, 313, 314, 315, 316,
14774 317, 318, -1, 320, 321, 322, 323, 324, 325, -1,
14775 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
14776 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
14777 347, 348, -1, 350, 351, 352, 353, 354, 355, 356,
14778 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
14779 367, -1, 369, 370, 371, 372, 373, 374, 375, 376,
14780 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
14781 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
14782 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
14783 407, 408, 409, 410, 411, 412, -1, 414, 415, -1,
14784 -1, 418, 419, 420, 421, 422, 423, 424, 425, 426,
14785 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
14786 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
14787 447, 448, 449, -1, 451, 452, 453, 454, 455, 456,
14788 457, -1, -1, 460, -1, -1, 463, 464, 465, 466,
14789 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
14790 477, 478, 479, 480, 481, 482, 483, 3, 4, 5,
14791 -1, -1, -1, 9, 491, 492, -1, -1, -1, -1,
14792 -1, -1, -1, -1, -1, -1, 22, 23, 24, 25,
14793 26, 27, 28, 29, -1, 31, 32, 33, -1, -1,
14794 -1, 37, -1, -1, -1, -1, 42, 43, 44, -1,
14795 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
14796 56, 57, -1, 59, 60, 61, 62, 63, 64, -1,
14797 -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
14798 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
14799 86, 87, 88, 89, 90, -1, 92, 93, 94, 95,
14800 96, 97, -1, 99, 100, 101, 102, 103, 104, 105,
14801 106, 107, 108, 109, 110, 111, 112, 113, 114, -1,
14802 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
14803 126, 127, -1, -1, 130, 131, 132, 133, 134, -1,
14804 136, 137, 138, -1, 140, 141, 142, -1, 144, 145,
14805 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
14806 156, -1, 158, 159, 160, 161, -1, 163, -1, 165,
14807 166, -1, 168, 169, 170, 171, 172, 173, -1, 175,
14808 -1, 177, 178, 179, -1, 181, 182, 183, 184, 185,
14809 186, 187, 188, 189, 190, 191, 192, -1, 194, 195,
14810 196, 197, 198, 199, 200, -1, 202, 203, 204, 205,
14811 206, 207, 208, 209, 210, 211, -1, 213, -1, 215,
14812 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
14813 -1, -1, 228, 229, 230, 231, -1, 233, 234, 235,
14814 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
14815 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
14816 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
14817 266, -1, 268, 269, 270, 271, -1, 273, 274, 275,
14818 276, 277, 278, -1, 280, 281, 282, -1, 284, 285,
14819 286, -1, -1, 289, 290, 291, 292, 293, 294, 295,
14820 296, 297, 298, 299, 300, 301, 302, 303, 304, -1,
14821 -1, -1, -1, 309, 310, 311, 312, 313, 314, 315,
14822 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
14823 -1, 327, 328, 329, 330, 331, 332, 333, 334, -1,
14824 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
14825 346, 347, 348, -1, 350, 351, 352, 353, 354, 355,
14826 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
14827 366, 367, -1, 369, 370, 371, 372, 373, 374, 375,
14828 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
14829 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
14830 396, 397, 398, 399, 400, 401, -1, 403, 404, -1,
14831 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
14832 -1, -1, 418, 419, 420, 421, 422, 423, 424, 425,
14833 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
14834 436, -1, 438, 439, 440, 441, -1, 443, 444, 445,
14835 446, 447, 448, 449, -1, 451, 452, 453, 454, 455,
14836 456, 457, -1, -1, 460, -1, -1, 463, 464, 465,
14837 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
14838 476, 477, 478, 479, 480, 481, 482, 483, 3, 4,
14839 5, -1, -1, -1, 9, 491, 492, -1, -1, -1,
14840 -1, -1, -1, -1, -1, -1, -1, 22, 23, 24,
14841 25, 26, 27, 28, 29, -1, 31, 32, 33, -1,
14842 -1, -1, 37, -1, -1, -1, -1, 42, 43, 44,
14843 -1, 46, 47, 48, 49, 50, 51, 52, 53, 54,
14844 55, 56, 57, -1, 59, 60, 61, 62, 63, 64,
14845 -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
14846 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
14847 85, 86, 87, 88, 89, 90, -1, 92, 93, 94,
14848 95, 96, 97, -1, 99, 100, 101, 102, 103, 104,
14849 105, 106, 107, 108, 109, 110, 111, 112, -1, 114,
14850 -1, 116, 117, 118, 119, 120, 121, -1, 123, 124,
14851 125, 126, 127, -1, -1, 130, 131, 132, 133, 134,
14852 -1, 136, 137, 138, -1, 140, 141, 142, -1, 144,
14853 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
14854 155, 156, -1, 158, 159, 160, 161, -1, 163, -1,
14855 165, 166, -1, 168, 169, 170, 171, 172, 173, -1,
14856 175, -1, 177, 178, 179, -1, 181, 182, 183, 184,
14857 185, 186, 187, 188, 189, 190, 191, 192, -1, 194,
14858 195, 196, 197, 198, 199, 200, -1, 202, 203, 204,
14859 205, 206, 207, 208, 209, 210, 211, -1, 213, -1,
14860 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
14861 225, -1, -1, 228, 229, 230, 231, -1, 233, 234,
14862 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
14863 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
14864 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
14865 265, 266, -1, 268, 269, 270, 271, -1, 273, 274,
14866 275, 276, 277, 278, -1, 280, 281, 282, -1, 284,
14867 285, 286, -1, -1, 289, 290, 291, 292, 293, 294,
14868 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
14869 -1, -1, -1, -1, 309, 310, 311, 312, 313, 314,
14870 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
14871 325, -1, 327, 328, 329, 330, 331, 332, 333, 334,
14872 -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
14873 345, 346, 347, 348, -1, 350, 351, 352, 353, 354,
14874 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
14875 365, 366, 367, -1, 369, 370, 371, 372, 373, 374,
14876 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
14877 -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
14878 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
14879 -1, 406, 407, 408, 409, 410, 411, 412, -1, 414,
14880 415, -1, -1, 418, 419, 420, 421, 422, 423, 424,
14881 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
14882 435, 436, -1, 438, 439, 440, 441, -1, 443, 444,
14883 445, 446, 447, 448, 449, -1, 451, 452, 453, 454,
14884 455, 456, 457, -1, -1, 460, -1, -1, 463, 464,
14885 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
14886 475, 476, 477, 478, 479, 480, 481, 482, 483, -1,
14887 -1, 8, -1, -1, 11, -1, 491, 492, 15, 16,
14888 17, 18, 19, 20, 21, -1, -1, -1, -1, -1,
14889 -1, -1, -1, -1, -1, -1, -1, -1, -1, 36,
14890 -1, -1, -1, -1, 41, -1, -1, -1, -1, 46,
14891 -1, 8, -1, -1, 11, -1, 53, -1, 15, 16,
14892 17, 18, 19, 20, 21, -1, -1, -1, -1, -1,
14893 -1, -1, -1, -1, -1, -1, -1, -1, -1, 36,
14894 -1, 78, -1, -1, -1, -1, -1, -1, -1, 46,
14895 -1, 8, -1, -1, 11, -1, 53, -1, 15, 16,
14896 17, 18, 19, 20, 21, -1, -1, -1, -1, -1,
14897 -1, -1, -1, -1, -1, -1, -1, -1, -1, 36,
14898 -1, 78, -1, -1, -1, 122, -1, -1, -1, 46,
14899 -1, 8, -1, -1, 11, -1, 53, -1, 15, 16,
14900 17, 18, 19, 20, 21, -1, -1, -1, -1, -1,
14901 -1, -1, -1, -1, -1, -1, -1, -1, -1, 36,
14902 -1, 78, -1, 40, -1, -1, -1, -1, -1, 46,
14903 -1, 8, -1, -1, 11, 172, 53, -1, 15, 16,
14904 17, 18, 19, 20, 21, -1, -1, -1, -1, -1,
14905 -1, 188, -1, -1, -1, -1, 193, -1, -1, 36,
14906 -1, 78, -1, -1, -1, 162, -1, -1, -1, 46,
14907 167, -1, -1, -1, -1, 172, 53, -1, -1, 216,
14908 217, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14909 -1, 188, -1, -1, 231, -1, 193, -1, -1, -1,
14910 -1, 78, -1, -1, 161, -1, -1, -1, -1, -1,
14911 -1, -1, -1, -1, -1, 172, -1, -1, -1, 216,
14912 217, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14913 267, 188, -1, 270, 231, -1, 193, -1, -1, -1,
14914 -1, -1, -1, -1, -1, -1, -1, 284, -1, -1,
14915 287, -1, -1, -1, -1, 172, -1, -1, -1, 216,
14916 217, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14917 267, 188, -1, 270, 231, -1, 193, -1, -1, -1,
14918 -1, -1, -1, -1, -1, -1, -1, 284, -1, -1,
14919 287, -1, -1, -1, -1, 172, -1, -1, -1, 216,
14920 217, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14921 267, 188, -1, 270, 231, -1, 193, -1, -1, -1,
14922 -1, -1, -1, -1, -1, -1, -1, 284, -1, -1,
14923 287, -1, -1, -1, -1, -1, -1, -1, -1, 216,
14924 217, -1, -1, 380, -1, -1, -1, -1, -1, -1,
14925 267, -1, -1, 270, 231, -1, -1, 314, -1, -1,
14926 -1, -1, -1, -1, -1, -1, -1, 284, -1, -1,
14927 287, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14928 -1, -1, -1, 380, -1, -1, -1, -1, -1, -1,
14929 267, -1, -1, 270, -1, -1, -1, -1, -1, -1,
14930 -1, -1, -1, -1, -1, 442, -1, 284, -1, -1,
14931 287, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14932 -1, -1, -1, 380, -1, -1, -1, -1, -1, -1,
14933 -1, 308, -1, -1, -1, -1, -1, -1, -1, -1,
14934 -1, -1, -1, -1, -1, -1, -1, 484, -1, -1,
14935 487, 488, 489, -1, 491, 492, 493, 494, 495, 496,
14936 -1, -1, -1, 380, -1, -1, -1, -1, -1, -1,
14937 -1, -1, 8, -1, -1, 11, -1, -1, -1, 15,
14938 16, 17, 18, 19, 20, 21, -1, 484, -1, -1,
14939 487, 488, 489, -1, 491, 492, 493, 494, 495, 496,
14940 36, -1, -1, 380, 40, -1, -1, -1, -1, -1,
14941 46, -1, 8, -1, -1, 11, -1, 53, -1, 15,
14942 16, 17, 18, 19, 20, 21, -1, 484, -1, -1,
14943 487, 488, 489, -1, 491, 492, 493, 494, 495, 496,
14944 36, -1, 78, -1, -1, -1, -1, -1, -1, -1,
14945 46, -1, 8, -1, -1, 11, -1, 53, -1, 15,
14946 16, 17, 18, 19, 20, 21, -1, 484, -1, -1,
14947 487, 488, 489, -1, 491, 492, 493, 494, 495, 496,
14948 36, -1, 78, -1, 40, -1, -1, -1, -1, -1,
14949 46, -1, 8, -1, -1, 11, -1, 53, -1, 15,
14950 16, 17, 18, 19, 20, 21, -1, 484, -1, -1,
14951 487, 488, 489, -1, 491, 492, 493, 494, 495, 496,
14952 36, -1, 78, -1, -1, -1, -1, -1, -1, -1,
14953 46, -1, -1, -1, -1, -1, 172, 53, -1, -1,
14954 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14955 -1, -1, 188, -1, -1, -1, -1, 193, -1, -1,
14956 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
14957 -1, 167, -1, -1, -1, -1, 172, -1, -1, -1,
14958 216, 217, -1, -1, -1, -1, -1, -1, -1, -1,
14959 -1, -1, 188, -1, -1, 231, -1, 193, -1, -1,
14960 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14961 -1, -1, -1, -1, -1, -1, 172, -1, -1, -1,
14962 216, 217, -1, -1, -1, -1, -1, -1, -1, -1,
14963 -1, 267, 188, -1, 270, 231, -1, 193, -1, -1,
14964 -1, -1, -1, -1, -1, -1, 162, -1, 284, -1,
14965 -1, 287, -1, -1, -1, -1, 172, -1, -1, -1,
14966 216, 217, -1, -1, -1, -1, -1, -1, -1, -1,
14967 -1, 267, 188, -1, 270, 231, -1, 193, -1, -1,
14968 -1, -1, -1, -1, -1, -1, -1, -1, 284, -1,
14969 -1, 287, -1, -1, -1, -1, -1, -1, -1, -1,
14970 216, 217, -1, -1, -1, -1, -1, -1, -1, -1,
14971 -1, 267, -1, -1, 270, 231, -1, -1, -1, -1,
14972 -1, -1, -1, -1, -1, -1, -1, -1, 284, -1,
14973 -1, 287, -1, -1, -1, -1, -1, -1, -1, -1,
14974 -1, -1, -1, -1, 380, -1, -1, -1, -1, -1,
14975 -1, 267, -1, -1, 270, -1, -1, -1, -1, -1,
14976 -1, -1, -1, -1, -1, -1, -1, -1, 284, -1,
14977 -1, 287, -1, -1, -1, -1, -1, -1, -1, -1,
14978 8, -1, -1, 11, 380, -1, -1, 15, 16, 17,
14979 18, 19, 20, 21, -1, -1, -1, -1, -1, -1,
14980 -1, -1, 8, -1, -1, 11, -1, -1, 36, 15,
14981 16, 17, 18, 19, 20, 21, -1, -1, 46, -1,
14982 -1, -1, -1, -1, 380, 53, -1, -1, -1, -1,
14983 36, -1, -1, -1, 40, -1, -1, -1, -1, -1,
14984 46, -1, -1, -1, -1, -1, -1, 53, 484, -1,
14985 78, 487, 488, 489, -1, 491, 492, 493, 494, 495,
14986 496, -1, -1, -1, 380, -1, -1, -1, -1, -1,
14987 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
14988 -1, -1, -1, -1, -1, -1, -1, -1, 484, -1,
14989 -1, 487, 488, 489, -1, 491, 492, 493, 494, 495,
14990 496, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14991 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14992 -1, -1, -1, -1, -1, -1, -1, -1, 484, -1,
14993 -1, 487, 488, 489, -1, 491, 492, 493, 494, 495,
14994 496, -1, -1, -1, 172, -1, 8, -1, -1, 11,
14995 -1, -1, -1, 15, 16, 17, 18, 19, 20, 21,
14996 188, -1, -1, -1, -1, 193, 172, -1, 484, -1,
14997 -1, 487, 488, 489, 36, 491, 492, 493, 494, 495,
14998 496, -1, 188, -1, 46, -1, -1, 193, 216, 217,
14999 -1, 53, -1, -1, -1, -1, -1, -1, -1, -1,
15000 -1, -1, -1, 231, -1, -1, -1, -1, -1, -1,
15001 216, 217, -1, -1, -1, 8, 78, -1, 11, -1,
15002 -1, -1, 15, 16, -1, 231, 19, 20, 21, -1,
15003 -1, -1, -1, -1, -1, -1, -1, -1, -1, 267,
15004 -1, -1, 270, -1, -1, -1, -1, -1, -1, -1,
15005 -1, -1, -1, 46, -1, -1, 284, -1, -1, 287,
15006 53, 267, -1, -1, 270, -1, -1, -1, -1, -1,
15007 -1, -1, -1, -1, -1, -1, -1, -1, 284, -1,
15008 -1, 287, -1, -1, -1, 78, -1, -1, -1, 8,
15009 -1, -1, 11, -1, -1, -1, 15, 16, 17, 18,
15010 19, 20, 21, -1, -1, -1, -1, -1, -1, -1,
15011 172, -1, -1, -1, -1, -1, -1, 36, -1, -1,
15012 -1, -1, -1, -1, -1, -1, 188, 46, -1, -1,
15013 -1, 193, -1, -1, 53, -1, -1, -1, -1, -1,
15014 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15015 -1, -1, 380, -1, 216, 217, -1, -1, -1, 78,
15016 -1, -1, -1, -1, -1, -1, -1, -1, -1, 231,
15017 -1, -1, -1, -1, 380, -1, -1, -1, -1, 172,
15018 -1, -1, -1, -1, -1, 413, -1, -1, -1, -1,
15019 -1, -1, -1, -1, -1, 188, -1, -1, -1, -1,
15020 193, -1, -1, -1, -1, 267, -1, -1, 270, -1,
15021 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15022 -1, -1, 284, 216, 217, 287, -1, -1, -1, -1,
15023 -1, -1, -1, -1, -1, -1, -1, -1, 231, -1,
15024 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15025 -1, -1, -1, 172, -1, -1, 484, -1, -1, 487,
15026 488, 489, -1, 491, 492, 493, 494, 495, 496, 188,
15027 -1, -1, -1, -1, 193, -1, -1, 270, 484, -1,
15028 -1, 487, 488, 489, -1, 491, 492, 493, 494, 495,
15029 496, 284, -1, -1, -1, -1, -1, 216, 217, -1,
15030 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15031 -1, -1, 231, -1, -1, -1, -1, -1, 380, -1,
15032 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15033 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15034 -1, -1, -1, -1, -1, -1, -1, -1, 267, -1,
15035 -1, 270, -1, -1, -1, -1, -1, -1, -1, -1,
15036 -1, -1, -1, -1, -1, 284, -1, -1, 287, -1,
15037 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15038 -1, -1, -1, -1, -1, -1, -1, 380, -1, -1,
15039 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15040 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15041 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15042 -1, -1, 484, -1, -1, 487, 488, 489, -1, 491,
15043 492, 493, 494, 495, 496, -1, -1, -1, -1, -1,
15044 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15045 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15046 -1, 380, -1, -1, -1, -1, -1, -1, -1, -1,
15047 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15048 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15049 -1, 484, -1, -1, 487, 488, 489, -1, 491, 492,
15050 493, 494, 495, 496, -1, -1, -1, -1, -1, -1,
15051 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15052 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15053 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15054 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15055 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
15056 -1, 5, -1, -1, -1, 484, -1, -1, 487, 488,
15057 489, -1, 491, 492, 493, 494, 495, 496, 22, 23,
15058 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
15059 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
15060 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
15061 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
15062 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
15063 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
15064 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
15065 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
15066 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
15067 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
15068 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
15069 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
15070 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
15071 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
15072 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
15073 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
15074 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
15075 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
15076 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
15077 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
15078 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
15079 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
15080 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
15081 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
15082 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
15083 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
15084 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
15085 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
15086 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
15087 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
15088 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
15089 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
15090 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
15091 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
15092 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
15093 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
15094 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
15095 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
15096 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
15097 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
15098 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
15099 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
15100 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
15101 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
15102 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
15103 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
15104 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15105 -1, -1, -1, -1, -1, -1, -1, -1, -1, 22,
15106 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
15107 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
15108 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
15109 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
15110 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
15111 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
15112 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
15113 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
15114 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
15115 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
15116 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
15117 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
15118 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
15119 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
15120 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
15121 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
15122 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
15123 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
15124 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
15125 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
15126 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
15127 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
15128 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
15129 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
15130 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
15131 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
15132 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
15133 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
15134 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
15135 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
15136 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
15137 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
15138 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
15139 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
15140 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
15141 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
15142 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
15143 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
15144 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
15145 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
15146 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
15147 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
15148 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
15149 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
15150 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
15151 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
15152 483, 3, -1, -1, -1, -1, -1, -1, -1, -1,
15153 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15154 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
15155 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
15156 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
15157 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
15158 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
15159 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
15160 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
15161 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
15162 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
15163 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
15164 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
15165 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
15166 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
15167 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
15168 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
15169 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
15170 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
15171 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
15172 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
15173 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
15174 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
15175 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
15176 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
15177 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
15178 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
15179 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
15180 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
15181 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
15182 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
15183 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
15184 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
15185 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
15186 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
15187 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
15188 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
15189 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
15190 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
15191 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
15192 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
15193 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
15194 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
15195 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
15196 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
15197 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
15198 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
15199 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
15200 482, 483, 3, -1, 5, -1, -1, -1, -1, -1,
15201 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15202 -1, 22, 23, 24, 25, 26, 27, 28, 29, -1,
15203 31, 32, 33, -1, -1, -1, 37, -1, -1, -1,
15204 -1, 42, 43, 44, -1, 46, 47, 48, 49, 50,
15205 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
15206 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
15207 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
15208 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
15209 -1, 92, 93, 94, 95, 96, 97, -1, 99, 100,
15210 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
15211 111, 112, -1, 114, -1, 116, 117, 118, 119, 120,
15212 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
15213 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
15214 141, 142, -1, 144, 145, 146, 147, 148, 149, 150,
15215 151, 152, 153, 154, 155, 156, -1, 158, 159, 160,
15216 161, -1, 163, -1, 165, 166, -1, 168, 169, 170,
15217 171, 172, 173, -1, 175, -1, 177, 178, 179, -1,
15218 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
15219 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
15220 -1, 202, 203, 204, 205, 206, 207, 208, 209, 210,
15221 211, -1, 213, -1, 215, 216, 217, 218, 219, 220,
15222 221, 222, 223, 224, 225, -1, -1, 228, 229, 230,
15223 231, -1, 233, 234, 235, 236, 237, 238, 239, 240,
15224 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
15225 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
15226 261, 262, 263, 264, 265, 266, -1, 268, 269, 270,
15227 271, -1, 273, 274, 275, 276, 277, 278, -1, 280,
15228 281, 282, -1, 284, 285, 286, -1, -1, 289, 290,
15229 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
15230 301, 302, 303, 304, -1, -1, -1, -1, 309, 310,
15231 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
15232 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
15233 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
15234 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
15235 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
15236 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
15237 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
15238 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
15239 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
15240 401, -1, 403, 404, -1, 406, 407, 408, 409, 410,
15241 411, 412, -1, 414, 415, -1, -1, 418, 419, 420,
15242 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
15243 431, -1, -1, 434, 435, 436, -1, 438, 439, 440,
15244 441, -1, 443, 444, 445, 446, 447, 448, 449, -1,
15245 451, 452, 453, 454, 455, 456, 457, -1, -1, 460,
15246 -1, -1, 463, 464, 465, 466, 467, 468, 469, 470,
15247 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
15248 481, 482, 483, 3, -1, -1, -1, -1, -1, -1,
15249 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15250 -1, -1, 22, 23, 24, 25, 26, 27, 28, 29,
15251 -1, 31, 32, 33, 34, 35, -1, 37, -1, -1,
15252 -1, -1, 42, 43, 44, -1, 46, 47, 48, 49,
15253 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
15254 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
15255 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
15256 -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
15257 90, -1, 92, 93, 94, 95, 96, 97, -1, 99,
15258 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
15259 110, 111, 112, -1, 114, -1, 116, 117, 118, 119,
15260 120, 121, -1, 123, 124, 125, 126, 127, -1, -1,
15261 130, 131, 132, 133, 134, -1, 136, 137, 138, -1,
15262 140, 141, 142, -1, 144, 145, 146, 147, 148, 149,
15263 150, 151, 152, 153, 154, -1, 156, -1, 158, 159,
15264 160, 161, -1, 163, -1, 165, 166, -1, 168, 169,
15265 170, 171, 172, 173, -1, 175, -1, 177, 178, 179,
15266 -1, 181, 182, 183, 184, 185, 186, 187, 188, 189,
15267 190, 191, 192, -1, 194, 195, 196, 197, 198, 199,
15268 200, -1, 202, 203, 204, 205, 206, 207, 208, 209,
15269 210, 211, -1, 213, -1, 215, 216, 217, 218, 219,
15270 220, 221, 222, 223, 224, 225, -1, -1, 228, 229,
15271 230, 231, -1, 233, 234, 235, 236, 237, 238, 239,
15272 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
15273 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
15274 260, 261, 262, 263, 264, 265, 266, -1, 268, 269,
15275 270, 271, -1, 273, 274, 275, 276, 277, 278, -1,
15276 280, 281, -1, -1, 284, 285, 286, -1, -1, 289,
15277 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
15278 300, 301, 302, 303, 304, -1, -1, -1, -1, 309,
15279 310, 311, 312, 313, 314, 315, 316, 317, 318, -1,
15280 320, 321, 322, 323, 324, 325, -1, 327, 328, 329,
15281 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
15282 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
15283 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
15284 360, 361, 362, 363, 364, 365, 366, 367, -1, 369,
15285 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
15286 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
15287 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
15288 400, 401, -1, 403, 404, -1, 406, 407, 408, 409,
15289 410, 411, 412, -1, 414, 415, -1, -1, 418, 419,
15290 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
15291 430, 431, -1, -1, 434, 435, 436, -1, 438, 439,
15292 440, 441, -1, 443, 444, 445, 446, 447, 448, 449,
15293 -1, 451, 452, 453, 454, 455, 456, 457, -1, -1,
15294 460, -1, -1, 463, 464, 465, 466, 467, 468, 469,
15295 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
15296 480, 481, 482, 483, 3, -1, -1, -1, -1, -1,
15297 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15298 -1, -1, -1, 22, 23, 24, 25, 26, 27, 28,
15299 29, -1, 31, 32, 33, -1, -1, -1, -1, -1,
15300 -1, -1, -1, 42, 43, 44, -1, 46, 47, 48,
15301 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
15302 59, 60, 61, 62, 63, 64, -1, 66, 67, 68,
15303 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
15304 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
15305 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
15306 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
15307 109, 110, 111, 112, -1, 114, -1, 116, 117, 118,
15308 119, 120, 121, -1, 123, 124, 125, 126, 127, -1,
15309 -1, 130, 131, 132, 133, 134, -1, 136, 137, 138,
15310 -1, 140, 141, 142, -1, 144, 145, 146, 147, 148,
15311 149, 150, 151, 152, 153, 154, -1, 156, -1, 158,
15312 159, 160, 161, -1, 163, -1, 165, 166, -1, 168,
15313 169, 170, 171, 172, 173, -1, 175, -1, 177, 178,
15314 179, -1, 181, 182, 183, 184, 185, 186, 187, 188,
15315 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
15316 199, 200, -1, 202, 203, 204, 205, 206, 207, 208,
15317 209, 210, 211, -1, 213, -1, 215, 216, 217, 218,
15318 219, 220, 221, 222, 223, 224, 225, -1, -1, 228,
15319 229, 230, 231, -1, 233, 234, 235, 236, 237, 238,
15320 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
15321 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
15322 259, 260, 261, 262, 263, 264, 265, 266, -1, 268,
15323 269, 270, 271, -1, 273, 274, 275, 276, 277, 278,
15324 -1, 280, 281, -1, -1, 284, 285, 286, -1, -1,
15325 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
15326 299, 300, 301, 302, 303, 304, -1, -1, -1, -1,
15327 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
15328 -1, 320, 321, 322, 323, 324, 325, -1, 327, 328,
15329 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
15330 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
15331 -1, 350, 351, 352, 353, 354, 355, 356, 357, 358,
15332 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
15333 -1, 370, 371, 372, 373, 374, 375, 376, 377, 378,
15334 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
15335 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
15336 399, 400, 401, -1, 403, 404, -1, 406, 407, 408,
15337 409, 410, 411, 412, -1, 414, 415, -1, -1, 418,
15338 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
15339 429, 430, 431, -1, -1, 434, 435, 436, -1, 438,
15340 439, 440, 441, -1, 443, 444, 445, 446, 447, 448,
15341 449, -1, 451, 452, 453, 454, 455, 456, 457, -1,
15342 -1, 460, -1, -1, 463, 464, 465, 466, 467, 468,
15343 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
15344 479, 480, 481, 482, 483, 3, -1, -1, -1, -1,
15345 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15346 -1, -1, -1, -1, 22, 23, 24, 25, 26, 27,
15347 28, 29, -1, 31, 32, 33, -1, -1, -1, -1,
15348 -1, -1, -1, -1, 42, 43, 44, -1, 46, 47,
15349 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
15350 -1, 59, 60, 61, 62, 63, 64, -1, -1, 67,
15351 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
15352 -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
15353 88, 89, 90, -1, 92, 93, 94, 95, 96, 97,
15354 -1, 99, 100, 101, 102, 103, 104, 105, 106, 107,
15355 108, 109, 110, 111, 112, -1, 114, -1, 116, 117,
15356 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
15357 -1, -1, 130, 131, 132, 133, 134, -1, 136, 137,
15358 138, -1, 140, 141, 142, -1, 144, 145, 146, 147,
15359 148, 149, 150, 151, 152, 153, 154, -1, 156, -1,
15360 158, 159, 160, 161, -1, 163, -1, 165, 166, -1,
15361 168, 169, 170, 171, 172, 173, -1, 175, -1, 177,
15362 178, 179, -1, 181, 182, 183, 184, 185, 186, 187,
15363 188, 189, 190, 191, 192, -1, 194, 195, 196, 197,
15364 198, 199, 200, -1, 202, 203, 204, 205, 206, 207,
15365 208, 209, 210, 211, -1, 213, -1, 215, 216, 217,
15366 218, 219, 220, 221, 222, 223, 224, 225, -1, -1,
15367 228, 229, 230, 231, -1, 233, 234, 235, 236, 237,
15368 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
15369 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
15370 258, 259, 260, 261, 262, 263, 264, 265, 266, -1,
15371 268, 269, 270, 271, -1, 273, 274, 275, 276, 277,
15372 278, -1, 280, 281, -1, -1, 284, 285, 286, -1,
15373 -1, 289, 290, 291, 292, 293, 294, 295, 296, 297,
15374 298, 299, 300, 301, 302, 303, 304, -1, -1, -1,
15375 -1, 309, 310, 311, 312, 313, 314, 315, 316, 317,
15376 318, -1, 320, 321, 322, 323, 324, 325, -1, 327,
15377 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
15378 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
15379 348, -1, 350, 351, 352, 353, 354, 355, 356, 357,
15380 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
15381 -1, -1, 370, 371, 372, 373, 374, 375, 376, 377,
15382 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
15383 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
15384 398, 399, 400, 401, -1, 403, 404, -1, 406, 407,
15385 408, 409, 410, 411, 412, -1, 414, 415, -1, -1,
15386 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
15387 428, 429, 430, 431, -1, -1, 434, 435, 436, -1,
15388 438, 439, 440, 441, -1, 443, 444, 445, 446, 447,
15389 448, 449, -1, 451, 452, 453, 454, 455, 456, 457,
15390 -1, -1, 460, -1, -1, 463, 464, 465, 466, 467,
15391 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
15392 478, 479, 480, 481, 482, 483, 3, -1, -1, -1,
15393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15394 -1, -1, -1, -1, -1, 22, 23, 24, 25, 26,
15395 27, 28, 29, -1, 31, 32, 33, -1, -1, -1,
15396 -1, -1, -1, -1, -1, -1, 43, 44, -1, 46,
15397 47, 48, -1, 50, 51, 52, 53, 54, -1, 56,
15398 57, -1, 59, 60, 61, 62, 63, 64, -1, -1,
15399 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
15400 77, -1, -1, 80, 81, 82, 83, 84, 85, 86,
15401 -1, 88, 89, 90, 91, 92, 93, 94, 95, 96,
15402 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
15403 107, 108, 109, 110, 111, 112, -1, 114, -1, 116,
15404 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
15405 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
15406 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
15407 147, 148, 149, 150, 151, 152, 153, 154, -1, 156,
15408 -1, 158, 159, 160, 161, -1, 163, 164, 165, -1,
15409 -1, -1, 169, 170, 171, -1, 173, -1, 175, -1,
15410 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
15411 187, -1, 189, 190, 191, 192, -1, 194, 195, 196,
15412 197, 198, 199, 200, -1, 202, -1, 204, 205, 206,
15413 207, 208, 209, 210, 211, -1, 213, -1, 215, -1,
15414 -1, 218, -1, 220, 221, 222, 223, 224, 225, -1,
15415 -1, 228, -1, 230, -1, -1, 233, 234, 235, 236,
15416 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
15417 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
15418 257, 258, 259, 260, -1, 262, 263, 264, 265, 266,
15419 -1, 268, 269, -1, 271, -1, 273, 274, 275, 276,
15420 277, 278, -1, 280, 281, -1, -1, 284, 285, 286,
15421 -1, -1, 289, 290, -1, 292, -1, 294, 295, 296,
15422 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
15423 -1, -1, 309, 310, 311, -1, 313, 314, 315, 316,
15424 317, 318, 319, 320, 321, 322, 323, 324, 325, -1,
15425 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
15426 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
15427 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
15428 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
15429 367, -1, -1, 370, 371, 372, 373, 374, 375, 376,
15430 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
15431 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
15432 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
15433 -1, 408, 409, 410, 411, 412, -1, 414, 415, -1,
15434 -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
15435 427, 428, 429, 430, 431, -1, 433, 434, 435, 436,
15436 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
15437 447, 448, 449, -1, 451, -1, 453, 454, 455, 456,
15438 457, -1, -1, 460, -1, -1, 463, 464, 465, 466,
15439 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
15440 477, 478, 479, 480, 481, 482, 483, 3, -1, -1,
15441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15442 -1, -1, -1, -1, -1, -1, 22, 23, 24, 25,
15443 26, 27, 28, 29, -1, 31, 32, 33, -1, -1,
15444 -1, -1, -1, -1, -1, -1, -1, 43, 44, -1,
15445 46, 47, 48, -1, 50, 51, 52, 53, 54, -1,
15446 56, 57, -1, 59, 60, 61, 62, 63, 64, -1,
15447 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
15448 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
15449 86, -1, 88, 89, 90, 91, 92, 93, 94, 95,
15450 96, 97, -1, -1, 100, 101, 102, 103, 104, 105,
15451 106, 107, 108, 109, 110, 111, 112, -1, 114, -1,
15452 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
15453 126, 127, -1, -1, 130, 131, 132, 133, 134, -1,
15454 136, 137, 138, -1, 140, 141, 142, -1, 144, 145,
15455 146, 147, 148, 149, 150, 151, 152, 153, 154, -1,
15456 156, -1, 158, 159, 160, 161, -1, 163, 164, 165,
15457 -1, -1, -1, 169, 170, 171, -1, 173, -1, 175,
15458 -1, 177, 178, 179, -1, 181, 182, 183, 184, 185,
15459 186, 187, -1, 189, 190, 191, 192, -1, 194, 195,
15460 196, 197, 198, 199, 200, -1, 202, -1, 204, 205,
15461 206, 207, 208, 209, 210, 211, -1, 213, -1, 215,
15462 -1, -1, 218, -1, 220, 221, 222, 223, 224, 225,
15463 -1, -1, 228, -1, 230, 231, -1, 233, 234, 235,
15464 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
15465 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
15466 256, 257, 258, 259, 260, -1, 262, 263, 264, 265,
15467 266, -1, 268, 269, -1, 271, -1, 273, 274, 275,
15468 276, 277, 278, -1, 280, 281, -1, -1, 284, 285,
15469 286, -1, -1, 289, 290, -1, 292, -1, 294, 295,
15470 296, 297, 298, 299, 300, 301, 302, 303, 304, -1,
15471 -1, -1, -1, 309, 310, 311, -1, 313, 314, 315,
15472 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
15473 -1, 327, 328, 329, 330, 331, 332, 333, 334, -1,
15474 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
15475 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
15476 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
15477 366, 367, -1, -1, 370, 371, 372, 373, 374, 375,
15478 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
15479 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
15480 396, 397, 398, 399, 400, 401, -1, 403, 404, -1,
15481 406, -1, 408, 409, 410, 411, 412, -1, 414, 415,
15482 -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
15483 426, 427, 428, 429, 430, 431, -1, 433, 434, 435,
15484 436, -1, 438, 439, 440, 441, -1, 443, 444, 445,
15485 446, 447, 448, 449, -1, 451, -1, 453, 454, 455,
15486 456, 457, -1, -1, 460, -1, -1, 463, 464, 465,
15487 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
15488 476, 477, 478, 479, 480, 481, 482, 483, 3, -1,
15489 5, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15490 -1, -1, -1, -1, -1, -1, -1, 22, 23, 24,
15491 25, 26, 27, 28, 29, -1, 31, 32, 33, 34,
15492 35, -1, -1, -1, -1, -1, -1, -1, 43, 44,
15493 -1, 46, 47, 48, -1, 50, 51, 52, 53, 54,
15494 -1, 56, 57, -1, 59, 60, 61, 62, 63, 64,
15495 -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
15496 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
15497 85, 86, -1, 88, 89, 90, -1, 92, 93, 94,
15498 95, 96, 97, -1, -1, 100, 101, 102, 103, 104,
15499 105, 106, 107, 108, 109, 110, 111, 112, -1, 114,
15500 -1, 116, 117, 118, 119, 120, 121, -1, 123, 124,
15501 125, 126, 127, -1, -1, 130, 131, 132, 133, 134,
15502 -1, 136, 137, 138, -1, 140, 141, 142, -1, 144,
15503 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
15504 -1, 156, -1, 158, 159, 160, 161, -1, 163, -1,
15505 165, -1, -1, -1, 169, 170, 171, -1, 173, -1,
15506 175, -1, 177, 178, 179, -1, 181, 182, 183, 184,
15507 185, 186, 187, -1, 189, 190, 191, 192, -1, 194,
15508 195, 196, 197, 198, 199, 200, -1, 202, -1, 204,
15509 205, 206, 207, 208, 209, 210, 211, -1, 213, -1,
15510 215, -1, -1, 218, -1, 220, 221, 222, 223, 224,
15511 225, -1, -1, 228, -1, 230, -1, -1, 233, 234,
15512 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
15513 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
15514 255, 256, 257, 258, 259, 260, -1, 262, 263, 264,
15515 265, 266, -1, 268, 269, -1, 271, -1, 273, 274,
15516 275, 276, 277, 278, -1, 280, 281, -1, -1, 284,
15517 285, 286, -1, -1, 289, 290, -1, 292, -1, 294,
15518 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
15519 -1, -1, -1, -1, 309, 310, 311, -1, 313, 314,
15520 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
15521 325, -1, 327, 328, 329, 330, 331, 332, 333, 334,
15522 -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
15523 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
15524 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
15525 365, 366, 367, -1, -1, 370, 371, 372, 373, 374,
15526 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
15527 -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
15528 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
15529 -1, 406, -1, 408, 409, 410, 411, 412, -1, 414,
15530 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
15531 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
15532 435, 436, -1, 438, 439, 440, 441, -1, 443, 444,
15533 445, 446, 447, 448, 449, -1, 451, -1, 453, 454,
15534 455, 456, 457, -1, -1, 460, -1, -1, 463, 464,
15535 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
15536 475, 476, 477, 478, 479, 480, 481, 482, 483, 3,
15537 -1, 5, -1, -1, -1, -1, -1, -1, -1, -1,
15538 -1, -1, -1, -1, -1, -1, -1, -1, 22, 23,
15539 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
15540 -1, -1, -1, -1, -1, -1, -1, -1, -1, 43,
15541 44, -1, 46, 47, 48, -1, 50, 51, 52, 53,
15542 54, -1, 56, 57, -1, 59, 60, 61, 62, 63,
15543 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
15544 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
15545 84, 85, 86, -1, 88, 89, 90, -1, 92, 93,
15546 94, 95, 96, 97, -1, -1, 100, 101, 102, 103,
15547 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
15548 114, -1, 116, 117, 118, 119, 120, 121, -1, 123,
15549 124, 125, 126, 127, -1, -1, 130, 131, 132, 133,
15550 134, -1, 136, 137, 138, -1, 140, 141, 142, -1,
15551 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
15552 154, -1, 156, -1, 158, 159, 160, 161, -1, 163,
15553 -1, 165, -1, -1, -1, 169, 170, 171, -1, 173,
15554 -1, 175, -1, 177, 178, 179, -1, 181, 182, 183,
15555 184, 185, 186, 187, -1, 189, 190, 191, 192, -1,
15556 194, 195, 196, 197, 198, 199, 200, -1, 202, -1,
15557 204, 205, 206, 207, 208, 209, 210, 211, -1, 213,
15558 -1, 215, -1, -1, 218, -1, 220, 221, 222, 223,
15559 224, 225, -1, -1, 228, -1, 230, -1, -1, 233,
15560 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
15561 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
15562 254, 255, 256, 257, 258, 259, 260, -1, 262, 263,
15563 264, 265, 266, -1, 268, 269, -1, 271, -1, 273,
15564 274, 275, 276, 277, 278, -1, 280, 281, -1, -1,
15565 284, 285, 286, -1, -1, 289, 290, -1, 292, -1,
15566 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
15567 304, -1, -1, -1, -1, 309, 310, 311, -1, 313,
15568 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
15569 324, 325, -1, 327, 328, 329, 330, 331, 332, 333,
15570 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
15571 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
15572 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
15573 364, 365, 366, 367, -1, -1, 370, 371, 372, 373,
15574 374, 375, 376, 377, 378, 379, -1, 381, 382, 383,
15575 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
15576 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
15577 404, -1, 406, -1, 408, 409, 410, 411, 412, -1,
15578 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
15579 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
15580 434, 435, 436, -1, 438, 439, 440, 441, -1, 443,
15581 444, 445, 446, 447, 448, 449, -1, 451, -1, 453,
15582 454, 455, 456, 457, -1, -1, 460, -1, -1, 463,
15583 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
15584 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
15585 3, -1, 5, -1, -1, -1, -1, -1, -1, -1,
15586 -1, -1, -1, -1, -1, -1, -1, -1, -1, 22,
15587 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
15588 33, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15589 43, 44, -1, 46, 47, 48, -1, 50, 51, 52,
15590 53, 54, -1, 56, 57, -1, 59, 60, 61, 62,
15591 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
15592 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
15593 83, 84, 85, 86, -1, 88, 89, 90, -1, 92,
15594 93, 94, 95, 96, 97, -1, -1, 100, 101, 102,
15595 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
15596 -1, 114, -1, 116, 117, 118, 119, 120, 121, -1,
15597 123, 124, 125, 126, 127, -1, -1, 130, 131, 132,
15598 133, 134, -1, 136, 137, 138, -1, 140, 141, 142,
15599 -1, 144, 145, 146, 147, 148, 149, 150, 151, 152,
15600 153, 154, -1, 156, -1, 158, 159, 160, 161, -1,
15601 163, -1, 165, -1, -1, -1, 169, 170, 171, -1,
15602 173, -1, 175, -1, 177, 178, 179, -1, 181, 182,
15603 183, 184, 185, 186, 187, -1, 189, 190, 191, 192,
15604 -1, 194, 195, 196, 197, 198, 199, 200, -1, 202,
15605 -1, 204, 205, 206, 207, 208, 209, 210, 211, -1,
15606 213, -1, 215, -1, -1, 218, -1, 220, 221, 222,
15607 223, 224, 225, -1, -1, 228, -1, 230, -1, -1,
15608 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
15609 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
15610 253, 254, 255, 256, 257, 258, 259, 260, -1, 262,
15611 263, 264, 265, 266, -1, 268, 269, -1, 271, -1,
15612 273, 274, 275, 276, 277, 278, -1, 280, 281, -1,
15613 283, 284, 285, 286, -1, -1, 289, 290, -1, 292,
15614 -1, 294, 295, 296, 297, 298, 299, 300, 301, 302,
15615 303, 304, -1, -1, -1, -1, 309, 310, 311, -1,
15616 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
15617 323, 324, 325, -1, 327, 328, 329, 330, 331, 332,
15618 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
15619 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
15620 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
15621 363, 364, 365, 366, 367, -1, -1, 370, 371, 372,
15622 373, 374, 375, 376, 377, 378, 379, -1, 381, 382,
15623 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
15624 393, 394, 395, 396, 397, 398, 399, 400, 401, -1,
15625 403, 404, -1, 406, -1, 408, 409, 410, 411, 412,
15626 -1, 414, 415, -1, -1, 418, 419, 420, 421, 422,
15627 -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
15628 -1, 434, 435, 436, -1, 438, 439, 440, 441, -1,
15629 443, 444, 445, 446, 447, 448, 449, -1, 451, -1,
15630 453, 454, 455, 456, 457, -1, -1, 460, -1, -1,
15631 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
15632 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
15633 483, 3, -1, 5, -1, -1, -1, -1, -1, -1,
15634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15635 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
15636 32, 33, -1, -1, -1, -1, -1, -1, -1, -1,
15637 -1, 43, 44, -1, 46, 47, 48, -1, 50, 51,
15638 52, 53, 54, -1, 56, 57, -1, 59, 60, 61,
15639 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
15640 -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
15641 82, 83, 84, 85, 86, -1, 88, 89, 90, -1,
15642 92, 93, 94, 95, 96, 97, -1, -1, 100, 101,
15643 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
15644 112, -1, 114, -1, 116, 117, 118, 119, 120, 121,
15645 -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
15646 132, 133, 134, -1, 136, 137, 138, -1, 140, 141,
15647 142, -1, 144, 145, 146, 147, 148, 149, 150, 151,
15648 152, 153, 154, -1, 156, -1, 158, 159, 160, 161,
15649 -1, 163, -1, 165, -1, -1, -1, 169, 170, 171,
15650 -1, 173, -1, 175, -1, 177, 178, 179, -1, 181,
15651 182, 183, 184, 185, 186, 187, -1, 189, 190, 191,
15652 192, -1, 194, 195, 196, 197, 198, 199, 200, -1,
15653 202, -1, 204, 205, 206, 207, 208, 209, 210, 211,
15654 -1, 213, -1, 215, -1, -1, 218, -1, 220, 221,
15655 222, 223, 224, 225, -1, -1, 228, -1, 230, -1,
15656 -1, 233, 234, 235, 236, 237, 238, 239, 240, 241,
15657 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
15658 252, 253, 254, 255, 256, 257, 258, 259, 260, -1,
15659 262, 263, 264, 265, 266, -1, 268, 269, -1, 271,
15660 -1, 273, 274, 275, 276, 277, 278, -1, 280, 281,
15661 -1, 283, 284, 285, 286, -1, -1, 289, 290, -1,
15662 292, -1, 294, 295, 296, 297, 298, 299, 300, 301,
15663 302, 303, 304, -1, -1, -1, -1, 309, 310, 311,
15664 -1, 313, 314, 315, 316, 317, 318, -1, 320, 321,
15665 322, 323, 324, 325, -1, 327, 328, 329, 330, 331,
15666 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
15667 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
15668 -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
15669 362, 363, 364, 365, 366, 367, -1, -1, 370, 371,
15670 372, 373, 374, 375, 376, 377, 378, 379, -1, 381,
15671 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
15672 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
15673 -1, 403, 404, -1, 406, -1, 408, 409, 410, 411,
15674 412, -1, 414, 415, -1, -1, 418, 419, 420, 421,
15675 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
15676 -1, -1, 434, 435, 436, -1, 438, 439, 440, 441,
15677 -1, 443, 444, 445, 446, 447, 448, 449, -1, 451,
15678 -1, 453, 454, 455, 456, 457, -1, -1, 460, -1,
15679 -1, 463, 464, 465, 466, 467, 468, 469, 470, 471,
15680 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
15681 482, 483, 3, -1, 5, -1, -1, -1, -1, -1,
15682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15683 -1, 22, 23, 24, 25, 26, 27, 28, 29, 30,
15684 31, 32, 33, -1, -1, -1, -1, -1, -1, -1,
15685 -1, -1, 43, 44, -1, 46, 47, 48, -1, 50,
15686 51, 52, 53, 54, -1, 56, 57, -1, 59, 60,
15687 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
15688 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
15689 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
15690 -1, 92, 93, 94, 95, 96, 97, -1, -1, 100,
15691 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
15692 111, 112, -1, 114, -1, 116, 117, 118, 119, 120,
15693 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
15694 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
15695 141, 142, -1, 144, 145, 146, 147, 148, 149, 150,
15696 151, 152, 153, 154, -1, 156, -1, 158, 159, 160,
15697 161, -1, 163, -1, 165, -1, -1, -1, 169, 170,
15698 171, -1, 173, -1, 175, -1, 177, 178, 179, -1,
15699 181, 182, 183, 184, 185, 186, 187, -1, 189, 190,
15700 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
15701 -1, 202, -1, 204, 205, 206, 207, 208, 209, 210,
15702 211, -1, 213, -1, 215, -1, -1, 218, -1, 220,
15703 221, 222, 223, 224, 225, -1, -1, 228, -1, 230,
15704 -1, -1, 233, 234, 235, 236, 237, 238, 239, 240,
15705 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
15706 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
15707 -1, 262, 263, 264, 265, 266, -1, 268, 269, -1,
15708 271, -1, 273, 274, 275, 276, 277, 278, -1, 280,
15709 281, -1, -1, 284, 285, 286, -1, -1, 289, 290,
15710 -1, 292, -1, 294, 295, 296, 297, 298, 299, 300,
15711 301, 302, 303, 304, -1, -1, -1, -1, 309, 310,
15712 311, -1, 313, 314, 315, 316, 317, 318, -1, 320,
15713 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
15714 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
15715 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
15716 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
15717 361, 362, 363, 364, 365, 366, 367, -1, -1, 370,
15718 371, 372, 373, 374, 375, 376, 377, 378, 379, -1,
15719 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
15720 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
15721 401, -1, 403, 404, -1, 406, -1, 408, 409, 410,
15722 411, 412, -1, 414, 415, -1, -1, 418, 419, 420,
15723 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
15724 431, -1, -1, 434, 435, 436, -1, 438, 439, 440,
15725 441, -1, 443, 444, 445, 446, 447, 448, 449, -1,
15726 451, -1, 453, 454, 455, 456, 457, -1, -1, 460,
15727 -1, -1, 463, 464, 465, 466, 467, 468, 469, 470,
15728 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
15729 481, 482, 483, 3, 4, -1, -1, -1, -1, 9,
15730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15731 -1, -1, 22, 23, 24, 25, 26, 27, 28, 29,
15732 -1, 31, 32, 33, -1, -1, -1, -1, -1, -1,
15733 -1, -1, -1, 43, 44, -1, 46, 47, 48, -1,
15734 50, 51, 52, 53, 54, -1, 56, 57, -1, 59,
15735 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
15736 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
15737 -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
15738 90, -1, 92, 93, 94, 95, 96, 97, -1, -1,
15739 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
15740 110, 111, 112, -1, 114, -1, 116, 117, 118, 119,
15741 120, 121, -1, 123, 124, 125, 126, 127, -1, -1,
15742 130, 131, 132, 133, 134, -1, 136, 137, 138, -1,
15743 140, 141, 142, -1, 144, 145, 146, 147, 148, 149,
15744 150, 151, 152, 153, 154, -1, 156, -1, 158, 159,
15745 160, 161, -1, 163, -1, 165, -1, -1, -1, 169,
15746 170, 171, -1, 173, -1, 175, -1, 177, 178, 179,
15747 -1, 181, 182, 183, 184, 185, 186, 187, -1, 189,
15748 190, 191, 192, -1, 194, 195, 196, 197, 198, 199,
15749 200, -1, 202, -1, 204, 205, 206, 207, 208, 209,
15750 210, 211, -1, 213, -1, 215, -1, -1, 218, -1,
15751 220, 221, 222, 223, 224, 225, -1, -1, 228, -1,
15752 230, -1, -1, 233, 234, 235, 236, 237, 238, 239,
15753 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
15754 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
15755 260, -1, 262, 263, 264, 265, 266, -1, 268, 269,
15756 -1, 271, -1, 273, 274, 275, 276, 277, 278, -1,
15757 280, 281, -1, -1, 284, 285, 286, -1, -1, 289,
15758 290, -1, 292, -1, 294, 295, 296, 297, 298, 299,
15759 300, 301, 302, 303, 304, -1, -1, -1, -1, 309,
15760 310, 311, -1, 313, 314, 315, 316, 317, 318, -1,
15761 320, 321, 322, 323, 324, 325, -1, 327, 328, 329,
15762 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
15763 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
15764 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
15765 360, 361, 362, 363, 364, 365, 366, 367, -1, -1,
15766 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
15767 -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
15768 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
15769 400, 401, -1, 403, 404, -1, 406, -1, 408, 409,
15770 410, 411, 412, -1, 414, 415, -1, -1, 418, 419,
15771 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
15772 430, 431, -1, -1, 434, 435, 436, -1, 438, 439,
15773 440, 441, -1, 443, 444, 445, 446, 447, 448, 449,
15774 -1, 451, -1, 453, 454, 455, 456, 457, -1, -1,
15775 460, -1, -1, 463, 464, 465, 466, 467, 468, 469,
15776 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
15777 480, 481, 482, 483, 3, -1, 5, -1, -1, -1,
15778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15779 -1, -1, -1, 22, 23, 24, 25, 26, 27, 28,
15780 29, -1, 31, 32, 33, -1, -1, -1, -1, -1,
15781 -1, -1, -1, -1, 43, 44, -1, 46, 47, 48,
15782 -1, 50, 51, 52, 53, 54, -1, 56, 57, -1,
15783 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
15784 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
15785 -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
15786 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
15787 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
15788 109, 110, 111, 112, -1, 114, -1, 116, 117, 118,
15789 119, 120, 121, -1, 123, 124, 125, 126, 127, -1,
15790 -1, 130, 131, 132, 133, 134, -1, 136, 137, 138,
15791 -1, 140, 141, 142, -1, 144, 145, 146, 147, 148,
15792 149, 150, 151, 152, 153, 154, -1, 156, -1, 158,
15793 159, 160, 161, -1, 163, -1, 165, -1, -1, -1,
15794 169, 170, 171, -1, 173, -1, 175, -1, 177, 178,
15795 179, -1, 181, 182, 183, 184, 185, 186, 187, -1,
15796 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
15797 199, 200, -1, 202, -1, 204, 205, 206, 207, 208,
15798 209, 210, 211, -1, 213, -1, 215, -1, -1, 218,
15799 -1, 220, 221, 222, 223, 224, 225, -1, -1, 228,
15800 -1, 230, -1, -1, 233, 234, 235, 236, 237, 238,
15801 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
15802 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
15803 259, 260, -1, 262, 263, 264, 265, 266, -1, 268,
15804 269, -1, 271, -1, 273, 274, 275, 276, 277, 278,
15805 -1, 280, 281, -1, -1, 284, 285, 286, -1, -1,
15806 289, 290, -1, 292, -1, 294, 295, 296, 297, 298,
15807 299, 300, 301, 302, 303, 304, -1, -1, -1, -1,
15808 309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
15809 -1, 320, 321, 322, 323, 324, 325, -1, 327, 328,
15810 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
15811 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
15812 -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
15813 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
15814 -1, 370, 371, 372, 373, 374, 375, 376, 377, 378,
15815 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
15816 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
15817 399, 400, 401, -1, 403, 404, 405, 406, -1, 408,
15818 409, 410, 411, 412, -1, 414, 415, -1, -1, 418,
15819 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
15820 429, 430, 431, -1, -1, 434, 435, 436, -1, 438,
15821 439, 440, 441, -1, 443, 444, 445, 446, 447, 448,
15822 449, -1, 451, -1, 453, 454, 455, 456, 457, -1,
15823 -1, 460, -1, -1, 463, 464, 465, 466, 467, 468,
15824 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
15825 479, 480, 481, 482, 483, 3, -1, 5, -1, -1,
15826 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15827 -1, -1, -1, -1, 22, 23, 24, 25, 26, 27,
15828 28, 29, -1, 31, 32, 33, -1, -1, -1, -1,
15829 -1, -1, -1, -1, -1, 43, 44, -1, 46, 47,
15830 48, -1, 50, 51, 52, 53, 54, -1, 56, 57,
15831 -1, 59, 60, 61, 62, 63, 64, -1, -1, 67,
15832 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
15833 -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
15834 88, 89, 90, -1, 92, 93, 94, 95, 96, 97,
15835 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
15836 108, 109, 110, 111, 112, -1, 114, -1, 116, 117,
15837 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
15838 -1, -1, 130, 131, 132, 133, 134, -1, 136, 137,
15839 138, -1, 140, 141, 142, -1, 144, 145, 146, 147,
15840 148, 149, 150, 151, 152, 153, 154, -1, 156, -1,
15841 158, 159, 160, 161, -1, 163, -1, 165, -1, -1,
15842 -1, 169, 170, 171, -1, 173, -1, 175, -1, 177,
15843 178, 179, -1, 181, 182, 183, 184, 185, 186, 187,
15844 -1, 189, 190, 191, 192, -1, 194, 195, 196, 197,
15845 198, 199, 200, -1, 202, -1, 204, 205, 206, 207,
15846 208, 209, 210, 211, -1, 213, -1, 215, -1, -1,
15847 218, -1, 220, 221, 222, 223, 224, 225, -1, -1,
15848 228, -1, 230, -1, -1, 233, 234, 235, 236, 237,
15849 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
15850 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
15851 258, 259, 260, -1, 262, 263, 264, 265, 266, -1,
15852 268, 269, -1, 271, -1, 273, 274, 275, 276, 277,
15853 278, -1, 280, 281, -1, -1, 284, 285, 286, -1,
15854 -1, 289, 290, -1, 292, -1, 294, 295, 296, 297,
15855 298, 299, 300, 301, 302, 303, 304, -1, -1, -1,
15856 -1, 309, 310, 311, -1, 313, 314, 315, 316, 317,
15857 318, -1, 320, 321, 322, 323, 324, 325, -1, 327,
15858 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
15859 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
15860 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
15861 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
15862 -1, -1, 370, 371, 372, 373, 374, 375, 376, 377,
15863 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
15864 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
15865 398, 399, 400, 401, -1, 403, 404, -1, 406, -1,
15866 408, 409, 410, 411, 412, -1, 414, 415, -1, -1,
15867 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
15868 428, 429, 430, 431, -1, -1, 434, 435, 436, -1,
15869 438, 439, 440, 441, -1, 443, 444, 445, 446, 447,
15870 448, 449, -1, 451, -1, 453, 454, 455, 456, 457,
15871 -1, -1, 460, -1, -1, 463, 464, 465, 466, 467,
15872 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
15873 478, 479, 480, 481, 482, 483, 3, -1, 5, -1,
15874 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15875 -1, -1, -1, -1, -1, 22, 23, 24, 25, 26,
15876 27, 28, 29, -1, 31, 32, 33, -1, -1, -1,
15877 -1, -1, -1, -1, -1, -1, 43, 44, -1, 46,
15878 47, 48, -1, 50, 51, 52, 53, 54, -1, 56,
15879 57, -1, 59, 60, 61, 62, 63, 64, -1, -1,
15880 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
15881 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
15882 -1, 88, 89, 90, -1, 92, 93, 94, 95, 96,
15883 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
15884 107, 108, 109, 110, 111, 112, -1, 114, -1, 116,
15885 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
15886 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
15887 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
15888 147, 148, 149, 150, 151, 152, 153, 154, -1, 156,
15889 -1, 158, 159, 160, 161, -1, 163, -1, 165, -1,
15890 -1, -1, 169, 170, 171, -1, 173, -1, 175, -1,
15891 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
15892 187, -1, 189, 190, 191, 192, -1, 194, 195, 196,
15893 197, 198, 199, 200, -1, 202, -1, 204, 205, 206,
15894 207, 208, 209, 210, 211, -1, 213, -1, 215, -1,
15895 -1, 218, -1, 220, 221, 222, 223, 224, 225, -1,
15896 -1, 228, -1, 230, -1, -1, 233, 234, 235, 236,
15897 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
15898 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
15899 257, 258, 259, 260, -1, 262, 263, 264, 265, 266,
15900 -1, 268, 269, -1, 271, -1, 273, 274, 275, 276,
15901 277, 278, -1, 280, 281, -1, -1, 284, 285, 286,
15902 -1, -1, 289, 290, -1, 292, -1, 294, 295, 296,
15903 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
15904 -1, -1, 309, 310, 311, -1, 313, 314, 315, 316,
15905 317, 318, -1, 320, 321, 322, 323, 324, 325, -1,
15906 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
15907 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
15908 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
15909 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
15910 367, -1, -1, 370, 371, 372, 373, 374, 375, 376,
15911 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
15912 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
15913 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
15914 -1, 408, 409, 410, 411, 412, -1, 414, 415, -1,
15915 -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
15916 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
15917 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
15918 447, 448, 449, -1, 451, -1, 453, 454, 455, 456,
15919 457, -1, -1, 460, -1, -1, 463, 464, 465, 466,
15920 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
15921 477, 478, 479, 480, 481, 482, 483, 3, -1, -1,
15922 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15923 -1, -1, -1, -1, -1, -1, 22, 23, 24, 25,
15924 26, 27, 28, 29, 30, 31, 32, 33, -1, -1,
15925 -1, -1, -1, -1, -1, -1, -1, 43, 44, -1,
15926 46, 47, 48, -1, 50, 51, 52, 53, 54, -1,
15927 56, 57, -1, 59, 60, 61, 62, 63, 64, -1,
15928 -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
15929 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
15930 86, -1, 88, 89, 90, -1, 92, 93, 94, 95,
15931 96, 97, -1, -1, 100, 101, 102, 103, 104, 105,
15932 106, 107, 108, 109, 110, 111, 112, -1, 114, -1,
15933 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
15934 126, 127, -1, -1, 130, 131, 132, 133, 134, -1,
15935 136, 137, 138, -1, 140, 141, 142, -1, 144, 145,
15936 146, 147, 148, 149, 150, 151, 152, 153, 154, -1,
15937 156, -1, 158, 159, 160, 161, -1, 163, -1, 165,
15938 -1, -1, -1, 169, 170, 171, -1, 173, -1, 175,
15939 -1, 177, 178, 179, -1, 181, 182, 183, 184, 185,
15940 186, 187, -1, 189, 190, 191, 192, -1, 194, 195,
15941 196, 197, 198, 199, 200, -1, 202, -1, 204, 205,
15942 206, 207, 208, 209, 210, 211, -1, 213, -1, 215,
15943 -1, -1, 218, -1, 220, 221, 222, 223, 224, 225,
15944 -1, -1, 228, -1, 230, -1, -1, 233, 234, 235,
15945 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
15946 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
15947 256, 257, 258, 259, 260, -1, 262, 263, 264, 265,
15948 266, -1, 268, 269, -1, 271, -1, 273, 274, 275,
15949 276, 277, 278, -1, 280, 281, -1, -1, 284, 285,
15950 286, -1, -1, 289, 290, -1, 292, -1, 294, 295,
15951 296, 297, 298, 299, 300, 301, 302, 303, 304, -1,
15952 -1, -1, -1, 309, 310, 311, -1, 313, 314, 315,
15953 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
15954 -1, 327, 328, 329, 330, 331, 332, 333, 334, -1,
15955 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
15956 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
15957 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
15958 366, 367, -1, -1, 370, 371, 372, 373, 374, 375,
15959 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
15960 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
15961 396, 397, 398, 399, 400, 401, -1, 403, 404, -1,
15962 406, -1, 408, 409, 410, 411, 412, -1, 414, 415,
15963 -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
15964 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
15965 436, -1, 438, 439, 440, 441, -1, 443, 444, 445,
15966 446, 447, 448, 449, -1, 451, -1, 453, 454, 455,
15967 456, 457, -1, -1, 460, -1, -1, 463, 464, 465,
15968 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
15969 476, 477, 478, 479, 480, 481, 482, 483, 3, -1,
15970 5, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15971 -1, -1, -1, -1, -1, -1, -1, 22, 23, 24,
15972 25, 26, 27, 28, 29, -1, 31, 32, 33, -1,
15973 -1, -1, -1, -1, -1, -1, -1, -1, 43, 44,
15974 -1, 46, 47, 48, -1, 50, 51, 52, 53, 54,
15975 -1, 56, 57, -1, 59, 60, 61, 62, 63, 64,
15976 -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
15977 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
15978 85, 86, -1, 88, 89, 90, -1, 92, 93, 94,
15979 95, 96, 97, -1, -1, 100, 101, 102, 103, 104,
15980 105, 106, 107, 108, 109, 110, 111, 112, -1, 114,
15981 -1, 116, 117, 118, 119, 120, 121, -1, 123, 124,
15982 125, 126, 127, -1, -1, 130, 131, 132, 133, 134,
15983 -1, 136, 137, 138, -1, 140, 141, 142, -1, 144,
15984 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
15985 -1, 156, -1, 158, 159, 160, 161, -1, 163, -1,
15986 165, -1, -1, -1, 169, 170, 171, -1, 173, -1,
15987 175, -1, 177, 178, 179, -1, 181, 182, 183, 184,
15988 185, 186, 187, -1, 189, 190, 191, 192, -1, 194,
15989 195, 196, 197, 198, 199, 200, -1, 202, -1, 204,
15990 205, 206, 207, 208, 209, 210, 211, -1, 213, -1,
15991 215, -1, -1, 218, -1, 220, 221, 222, 223, 224,
15992 225, -1, -1, 228, -1, 230, -1, -1, 233, 234,
15993 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
15994 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
15995 255, 256, 257, 258, 259, 260, -1, 262, 263, 264,
15996 265, 266, -1, 268, 269, -1, 271, -1, 273, 274,
15997 275, 276, 277, 278, -1, 280, 281, -1, -1, 284,
15998 285, 286, -1, -1, 289, 290, -1, 292, -1, 294,
15999 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
16000 -1, -1, -1, -1, 309, 310, 311, -1, 313, 314,
16001 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
16002 325, -1, 327, 328, 329, 330, 331, 332, 333, 334,
16003 -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
16004 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
16005 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
16006 365, 366, 367, -1, -1, 370, 371, 372, 373, 374,
16007 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
16008 -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
16009 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
16010 -1, 406, -1, 408, 409, 410, 411, 412, -1, 414,
16011 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
16012 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
16013 435, 436, -1, 438, 439, 440, 441, -1, 443, 444,
16014 445, 446, 447, 448, 449, -1, 451, -1, 453, 454,
16015 455, 456, 457, -1, -1, 460, -1, -1, 463, 464,
16016 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
16017 475, 476, 477, 478, 479, 480, 481, 482, 483, 3,
16018 -1, 5, -1, -1, -1, -1, -1, -1, -1, -1,
16019 -1, -1, -1, -1, -1, -1, -1, -1, 22, 23,
16020 24, 25, 26, 27, 28, 29, -1, 31, 32, 33,
16021 -1, -1, -1, -1, -1, -1, -1, -1, -1, 43,
16022 44, -1, 46, 47, 48, -1, 50, 51, 52, 53,
16023 54, -1, 56, 57, -1, 59, 60, 61, 62, 63,
16024 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
16025 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
16026 84, 85, 86, -1, 88, 89, 90, -1, 92, 93,
16027 94, 95, 96, 97, -1, -1, 100, 101, 102, 103,
16028 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
16029 114, -1, 116, 117, 118, 119, 120, 121, -1, 123,
16030 124, 125, 126, 127, -1, -1, 130, 131, 132, 133,
16031 134, -1, 136, 137, 138, -1, 140, 141, 142, -1,
16032 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
16033 154, -1, 156, -1, 158, 159, 160, 161, -1, 163,
16034 -1, 165, -1, -1, -1, 169, 170, 171, -1, 173,
16035 -1, 175, -1, 177, 178, 179, -1, 181, 182, 183,
16036 184, 185, 186, 187, -1, 189, 190, 191, 192, -1,
16037 194, 195, 196, 197, 198, 199, 200, -1, 202, -1,
16038 204, 205, 206, 207, 208, 209, 210, 211, -1, 213,
16039 -1, 215, -1, -1, 218, -1, 220, 221, 222, 223,
16040 224, 225, -1, -1, 228, -1, 230, -1, -1, 233,
16041 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
16042 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
16043 254, 255, 256, 257, 258, 259, 260, -1, 262, 263,
16044 264, 265, 266, -1, 268, 269, -1, 271, -1, 273,
16045 274, 275, 276, 277, 278, -1, 280, 281, -1, -1,
16046 284, 285, 286, -1, -1, 289, 290, -1, 292, -1,
16047 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
16048 304, -1, -1, -1, -1, 309, 310, 311, -1, 313,
16049 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
16050 324, 325, -1, 327, 328, 329, 330, 331, 332, 333,
16051 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
16052 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
16053 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
16054 364, 365, 366, 367, -1, -1, 370, 371, 372, 373,
16055 374, 375, 376, 377, 378, 379, -1, 381, 382, 383,
16056 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
16057 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
16058 404, -1, 406, -1, 408, 409, 410, 411, 412, -1,
16059 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
16060 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
16061 434, 435, 436, -1, 438, 439, 440, 441, -1, 443,
16062 444, 445, 446, 447, 448, 449, -1, 451, -1, 453,
16063 454, 455, 456, 457, -1, -1, 460, -1, -1, 463,
16064 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
16065 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
16066 3, -1, 5, -1, -1, -1, -1, -1, -1, -1,
16067 -1, -1, -1, -1, -1, -1, -1, -1, -1, 22,
16068 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
16069 33, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16070 43, 44, -1, 46, 47, 48, -1, 50, 51, 52,
16071 53, 54, -1, 56, 57, -1, 59, 60, 61, 62,
16072 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
16073 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
16074 83, 84, 85, 86, -1, 88, 89, 90, -1, 92,
16075 93, 94, 95, 96, 97, -1, -1, 100, 101, 102,
16076 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
16077 -1, 114, -1, 116, 117, 118, 119, 120, 121, -1,
16078 123, 124, 125, 126, 127, -1, -1, 130, 131, 132,
16079 133, 134, -1, 136, 137, 138, -1, 140, 141, 142,
16080 -1, 144, 145, 146, 147, 148, 149, 150, 151, 152,
16081 153, 154, -1, 156, -1, 158, 159, 160, 161, -1,
16082 163, -1, 165, -1, -1, -1, 169, 170, 171, -1,
16083 173, -1, 175, -1, 177, 178, 179, -1, 181, 182,
16084 183, 184, 185, 186, 187, -1, 189, 190, 191, 192,
16085 -1, 194, 195, 196, 197, 198, 199, 200, -1, 202,
16086 -1, 204, 205, 206, 207, 208, 209, 210, 211, -1,
16087 213, -1, 215, -1, -1, 218, -1, 220, 221, 222,
16088 223, 224, 225, -1, -1, 228, -1, 230, -1, -1,
16089 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
16090 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
16091 253, 254, 255, 256, 257, 258, 259, 260, -1, 262,
16092 263, 264, 265, 266, -1, 268, 269, -1, 271, -1,
16093 273, 274, 275, 276, 277, 278, -1, 280, 281, -1,
16094 -1, 284, 285, 286, -1, -1, 289, 290, -1, 292,
16095 -1, 294, 295, 296, 297, 298, 299, 300, 301, 302,
16096 303, 304, -1, -1, -1, -1, 309, 310, 311, -1,
16097 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
16098 323, 324, 325, -1, 327, 328, 329, 330, 331, 332,
16099 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
16100 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
16101 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
16102 363, 364, 365, 366, 367, -1, -1, 370, 371, 372,
16103 373, 374, 375, 376, 377, 378, 379, -1, 381, 382,
16104 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
16105 393, 394, 395, 396, 397, 398, 399, 400, 401, -1,
16106 403, 404, -1, 406, -1, 408, 409, 410, 411, 412,
16107 -1, 414, 415, -1, -1, 418, 419, 420, 421, 422,
16108 -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
16109 -1, 434, 435, 436, -1, 438, 439, 440, 441, -1,
16110 443, 444, 445, 446, 447, 448, 449, -1, 451, -1,
16111 453, 454, 455, 456, 457, -1, -1, 460, -1, -1,
16112 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
16113 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
16114 483, 3, -1, 5, -1, -1, -1, -1, -1, -1,
16115 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16116 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
16117 32, 33, -1, -1, -1, -1, -1, -1, -1, -1,
16118 -1, 43, 44, -1, 46, 47, 48, -1, 50, 51,
16119 52, 53, 54, -1, 56, 57, -1, 59, 60, 61,
16120 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
16121 -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
16122 82, 83, 84, 85, 86, -1, 88, 89, 90, -1,
16123 92, 93, 94, 95, 96, 97, -1, -1, 100, 101,
16124 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
16125 112, -1, 114, -1, 116, 117, 118, 119, 120, 121,
16126 -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
16127 132, 133, 134, -1, 136, 137, 138, -1, 140, 141,
16128 142, -1, 144, 145, 146, 147, 148, 149, 150, 151,
16129 152, 153, 154, -1, 156, -1, 158, 159, 160, 161,
16130 -1, 163, -1, 165, -1, -1, -1, 169, 170, 171,
16131 -1, 173, -1, 175, -1, 177, 178, 179, -1, 181,
16132 182, 183, 184, 185, 186, 187, -1, 189, 190, 191,
16133 192, -1, 194, 195, 196, 197, 198, 199, 200, -1,
16134 202, -1, 204, 205, 206, 207, 208, 209, 210, 211,
16135 -1, 213, -1, 215, -1, -1, 218, -1, 220, 221,
16136 222, 223, 224, 225, -1, -1, 228, -1, 230, -1,
16137 -1, 233, 234, 235, 236, 237, 238, 239, 240, 241,
16138 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
16139 252, 253, 254, 255, 256, 257, 258, 259, 260, -1,
16140 262, 263, 264, 265, 266, -1, 268, 269, -1, 271,
16141 -1, 273, 274, 275, 276, 277, 278, -1, 280, 281,
16142 -1, -1, 284, 285, 286, -1, -1, 289, 290, -1,
16143 292, -1, 294, 295, 296, 297, 298, 299, 300, 301,
16144 302, 303, 304, -1, -1, -1, -1, 309, 310, 311,
16145 -1, 313, 314, 315, 316, 317, 318, -1, 320, 321,
16146 322, 323, 324, 325, -1, 327, 328, 329, 330, 331,
16147 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
16148 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
16149 -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
16150 362, 363, 364, 365, 366, 367, -1, -1, 370, 371,
16151 372, 373, 374, 375, 376, 377, 378, 379, -1, 381,
16152 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
16153 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
16154 -1, 403, 404, -1, 406, -1, 408, 409, 410, 411,
16155 412, -1, 414, 415, -1, -1, 418, 419, 420, 421,
16156 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
16157 -1, -1, 434, 435, 436, -1, 438, 439, 440, 441,
16158 -1, 443, 444, 445, 446, 447, 448, 449, -1, 451,
16159 -1, 453, 454, 455, 456, 457, -1, -1, 460, -1,
16160 -1, 463, 464, 465, 466, 467, 468, 469, 470, 471,
16161 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
16162 482, 483, 3, -1, 5, -1, -1, -1, -1, -1,
16163 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16164 -1, 22, 23, 24, 25, 26, 27, 28, 29, -1,
16165 31, 32, 33, -1, -1, -1, -1, -1, -1, -1,
16166 -1, -1, 43, 44, -1, 46, 47, 48, -1, 50,
16167 51, 52, 53, 54, -1, 56, 57, -1, 59, 60,
16168 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
16169 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
16170 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
16171 -1, 92, 93, 94, 95, 96, 97, -1, -1, 100,
16172 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
16173 111, 112, -1, 114, -1, 116, 117, 118, 119, 120,
16174 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
16175 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
16176 141, 142, -1, 144, 145, 146, 147, 148, 149, 150,
16177 151, 152, 153, 154, -1, 156, -1, 158, 159, 160,
16178 161, -1, 163, -1, 165, -1, -1, -1, 169, 170,
16179 171, -1, 173, -1, 175, -1, 177, 178, 179, -1,
16180 181, 182, 183, 184, 185, 186, 187, -1, 189, 190,
16181 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
16182 -1, 202, -1, 204, 205, 206, 207, 208, 209, 210,
16183 211, -1, 213, -1, 215, -1, -1, 218, -1, 220,
16184 221, 222, 223, 224, 225, -1, -1, 228, -1, 230,
16185 -1, -1, 233, 234, 235, 236, 237, 238, 239, 240,
16186 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
16187 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
16188 -1, 262, 263, 264, 265, 266, -1, 268, 269, -1,
16189 271, -1, 273, 274, 275, 276, 277, 278, -1, 280,
16190 281, -1, -1, 284, 285, 286, -1, -1, 289, 290,
16191 -1, 292, -1, 294, 295, 296, 297, 298, 299, 300,
16192 301, 302, 303, 304, -1, -1, -1, -1, 309, 310,
16193 311, -1, 313, 314, 315, 316, 317, 318, -1, 320,
16194 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
16195 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
16196 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
16197 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
16198 361, 362, 363, 364, 365, 366, 367, -1, -1, 370,
16199 371, 372, 373, 374, 375, 376, 377, 378, 379, -1,
16200 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
16201 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
16202 401, -1, 403, 404, -1, 406, -1, 408, 409, 410,
16203 411, 412, -1, 414, 415, -1, -1, 418, 419, 420,
16204 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
16205 431, -1, -1, 434, 435, 436, -1, 438, 439, 440,
16206 441, -1, 443, 444, 445, 446, 447, 448, 449, -1,
16207 451, -1, 453, 454, 455, 456, 457, -1, -1, 460,
16208 -1, -1, 463, 464, 465, 466, 467, 468, 469, 470,
16209 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
16210 481, 482, 483, 3, -1, 5, -1, -1, -1, -1,
16211 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16212 -1, -1, 22, 23, 24, 25, 26, 27, 28, 29,
16213 -1, 31, 32, 33, -1, -1, -1, -1, -1, -1,
16214 -1, -1, -1, 43, 44, -1, 46, 47, 48, -1,
16215 50, 51, 52, 53, 54, -1, 56, 57, -1, 59,
16216 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
16217 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
16218 -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
16219 90, -1, 92, 93, 94, 95, 96, 97, -1, -1,
16220 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
16221 110, 111, 112, -1, 114, -1, 116, 117, 118, 119,
16222 120, 121, -1, 123, 124, 125, 126, 127, -1, -1,
16223 130, 131, 132, 133, 134, -1, 136, 137, 138, -1,
16224 140, 141, 142, -1, 144, 145, 146, 147, 148, 149,
16225 150, 151, 152, 153, 154, -1, 156, -1, 158, 159,
16226 160, 161, -1, 163, -1, 165, -1, -1, -1, 169,
16227 170, 171, -1, 173, -1, 175, -1, 177, 178, 179,
16228 -1, 181, 182, 183, 184, 185, 186, 187, -1, 189,
16229 190, 191, 192, -1, 194, 195, 196, 197, 198, 199,
16230 200, -1, 202, -1, 204, 205, 206, 207, 208, 209,
16231 210, 211, -1, 213, -1, 215, -1, -1, 218, -1,
16232 220, 221, 222, 223, 224, 225, -1, -1, 228, -1,
16233 230, -1, -1, 233, 234, 235, 236, 237, 238, 239,
16234 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
16235 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
16236 260, -1, 262, 263, 264, 265, 266, -1, 268, 269,
16237 -1, 271, -1, 273, 274, 275, 276, 277, 278, -1,
16238 280, 281, -1, -1, 284, 285, 286, -1, -1, 289,
16239 290, -1, 292, -1, 294, 295, 296, 297, 298, 299,
16240 300, 301, 302, 303, 304, -1, -1, -1, -1, 309,
16241 310, 311, -1, 313, 314, 315, 316, 317, 318, -1,
16242 320, 321, 322, 323, 324, 325, -1, 327, 328, 329,
16243 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
16244 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
16245 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
16246 360, 361, 362, 363, 364, 365, 366, 367, -1, -1,
16247 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
16248 -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
16249 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
16250 400, 401, -1, 403, 404, -1, 406, -1, 408, 409,
16251 410, 411, 412, -1, 414, 415, -1, -1, 418, 419,
16252 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
16253 430, 431, -1, -1, 434, 435, 436, -1, 438, 439,
16254 440, 441, -1, 443, 444, 445, 446, 447, 448, 449,
16255 -1, 451, -1, 453, 454, 455, 456, 457, -1, -1,
16256 460, -1, -1, 463, 464, 465, 466, 467, 468, 469,
16257 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
16258 480, 481, 482, 483, 3, -1, 5, -1, -1, -1,
16259 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16260 -1, -1, -1, 22, 23, 24, 25, 26, 27, 28,
16261 29, -1, 31, 32, 33, -1, -1, -1, -1, -1,
16262 -1, -1, -1, -1, 43, 44, -1, 46, 47, 48,
16263 -1, 50, 51, 52, 53, 54, -1, 56, 57, -1,
16264 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
16265 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
16266 -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
16267 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
16268 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
16269 109, 110, 111, 112, -1, 114, -1, 116, 117, 118,
16270 119, 120, 121, -1, 123, 124, 125, 126, 127, -1,
16271 -1, 130, 131, 132, 133, 134, -1, 136, 137, 138,
16272 -1, 140, 141, 142, -1, 144, 145, 146, 147, 148,
16273 149, 150, 151, 152, 153, 154, -1, 156, -1, 158,
16274 159, 160, 161, -1, 163, -1, 165, -1, -1, -1,
16275 169, 170, 171, -1, 173, -1, 175, -1, 177, 178,
16276 179, -1, 181, 182, 183, 184, 185, 186, 187, -1,
16277 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
16278 199, 200, -1, 202, -1, 204, 205, 206, 207, 208,
16279 209, 210, 211, -1, 213, -1, 215, -1, -1, 218,
16280 -1, 220, 221, 222, 223, 224, 225, -1, -1, 228,
16281 -1, 230, -1, -1, 233, 234, 235, 236, 237, 238,
16282 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
16283 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
16284 259, 260, -1, 262, 263, 264, 265, 266, -1, 268,
16285 269, -1, 271, -1, 273, 274, 275, 276, 277, 278,
16286 -1, 280, 281, -1, -1, 284, 285, 286, -1, -1,
16287 289, 290, -1, 292, -1, 294, 295, 296, 297, 298,
16288 299, 300, 301, 302, 303, 304, -1, -1, -1, -1,
16289 309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
16290 -1, 320, 321, 322, 323, 324, 325, -1, 327, 328,
16291 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
16292 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
16293 -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
16294 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
16295 -1, 370, 371, 372, 373, 374, 375, 376, 377, 378,
16296 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
16297 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
16298 399, 400, 401, -1, 403, 404, -1, 406, -1, 408,
16299 409, 410, 411, 412, -1, 414, 415, -1, -1, 418,
16300 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
16301 429, 430, 431, -1, -1, 434, 435, 436, -1, 438,
16302 439, 440, 441, -1, 443, 444, 445, 446, 447, 448,
16303 449, -1, 451, -1, 453, 454, 455, 456, 457, -1,
16304 -1, 460, -1, -1, 463, 464, 465, 466, 467, 468,
16305 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
16306 479, 480, 481, 482, 483, 3, -1, -1, -1, -1,
16307 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16308 -1, -1, -1, -1, 22, 23, 24, 25, 26, 27,
16309 28, 29, -1, 31, 32, 33, -1, -1, -1, -1,
16310 -1, -1, 40, -1, -1, 43, 44, -1, 46, 47,
16311 48, -1, 50, 51, 52, 53, 54, -1, 56, 57,
16312 -1, 59, 60, 61, 62, 63, 64, -1, -1, 67,
16313 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
16314 -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
16315 88, 89, 90, -1, 92, 93, 94, 95, 96, 97,
16316 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
16317 108, 109, 110, 111, 112, -1, 114, -1, 116, 117,
16318 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
16319 -1, -1, 130, 131, 132, 133, 134, -1, 136, 137,
16320 138, -1, 140, 141, 142, -1, 144, 145, 146, 147,
16321 148, 149, 150, 151, 152, 153, 154, -1, 156, -1,
16322 158, 159, 160, 161, -1, 163, -1, 165, -1, -1,
16323 -1, 169, 170, 171, -1, 173, -1, 175, -1, 177,
16324 178, 179, -1, 181, 182, 183, 184, 185, 186, 187,
16325 -1, 189, 190, 191, 192, -1, 194, 195, 196, 197,
16326 198, 199, 200, -1, 202, -1, 204, 205, 206, 207,
16327 208, 209, 210, 211, -1, 213, -1, 215, -1, -1,
16328 218, -1, 220, 221, 222, 223, 224, 225, -1, -1,
16329 228, -1, 230, -1, -1, 233, 234, 235, 236, 237,
16330 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
16331 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
16332 258, 259, 260, -1, 262, 263, 264, 265, 266, -1,
16333 268, 269, -1, 271, -1, 273, 274, 275, 276, 277,
16334 278, -1, 280, 281, -1, -1, 284, 285, 286, -1,
16335 -1, 289, 290, -1, 292, -1, 294, 295, 296, 297,
16336 298, 299, 300, 301, 302, 303, 304, -1, -1, -1,
16337 -1, 309, 310, 311, -1, 313, 314, 315, 316, 317,
16338 318, -1, 320, 321, 322, 323, 324, 325, -1, 327,
16339 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
16340 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
16341 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
16342 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
16343 -1, -1, 370, 371, 372, 373, 374, 375, 376, 377,
16344 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
16345 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
16346 398, 399, 400, 401, -1, 403, 404, -1, 406, -1,
16347 408, 409, 410, 411, 412, -1, 414, 415, -1, -1,
16348 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
16349 428, 429, 430, 431, -1, -1, 434, 435, 436, -1,
16350 438, 439, 440, 441, -1, 443, 444, 445, 446, 447,
16351 448, 449, -1, 451, -1, 453, 454, 455, 456, 457,
16352 -1, -1, 460, -1, -1, 463, 464, 465, 466, 467,
16353 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
16354 478, 479, 480, 481, 482, 483, 3, -1, -1, -1,
16355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16356 -1, -1, -1, -1, -1, 22, 23, 24, 25, 26,
16357 27, 28, 29, -1, 31, 32, 33, -1, -1, -1,
16358 -1, -1, -1, 40, -1, -1, 43, 44, -1, 46,
16359 47, 48, -1, 50, 51, 52, 53, 54, -1, 56,
16360 57, -1, 59, 60, 61, 62, 63, 64, -1, -1,
16361 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
16362 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
16363 -1, 88, 89, 90, -1, 92, 93, 94, 95, 96,
16364 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
16365 107, 108, 109, 110, 111, 112, -1, 114, -1, 116,
16366 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
16367 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
16368 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
16369 147, 148, 149, 150, 151, 152, 153, 154, -1, 156,
16370 -1, 158, 159, 160, 161, -1, 163, -1, 165, -1,
16371 -1, -1, 169, 170, 171, -1, 173, -1, 175, -1,
16372 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
16373 187, -1, 189, 190, 191, 192, -1, 194, 195, 196,
16374 197, 198, 199, 200, -1, 202, -1, 204, 205, 206,
16375 207, 208, 209, 210, 211, -1, 213, -1, 215, -1,
16376 -1, 218, -1, 220, 221, 222, 223, 224, 225, -1,
16377 -1, 228, -1, 230, -1, -1, 233, 234, 235, 236,
16378 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
16379 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
16380 257, 258, 259, 260, -1, 262, 263, 264, 265, 266,
16381 -1, 268, 269, -1, 271, -1, 273, 274, 275, 276,
16382 277, 278, -1, 280, 281, -1, -1, 284, 285, 286,
16383 -1, -1, 289, 290, -1, 292, -1, 294, 295, 296,
16384 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
16385 -1, -1, 309, 310, 311, -1, 313, 314, 315, 316,
16386 317, 318, -1, 320, 321, 322, 323, 324, 325, -1,
16387 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
16388 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
16389 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
16390 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
16391 367, -1, -1, 370, 371, 372, 373, 374, 375, 376,
16392 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
16393 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
16394 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
16395 -1, 408, 409, 410, 411, 412, -1, 414, 415, -1,
16396 -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
16397 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
16398 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
16399 447, 448, 449, -1, 451, -1, 453, 454, 455, 456,
16400 457, -1, -1, 460, -1, -1, 463, 464, 465, 466,
16401 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
16402 477, 478, 479, 480, 481, 482, 483, 3, -1, 5,
16403 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16404 -1, -1, -1, -1, -1, -1, 22, 23, 24, 25,
16405 26, 27, 28, 29, -1, 31, 32, 33, -1, -1,
16406 -1, -1, -1, -1, -1, -1, -1, 43, 44, -1,
16407 46, 47, 48, -1, 50, 51, 52, 53, 54, -1,
16408 56, 57, -1, 59, 60, 61, 62, 63, 64, -1,
16409 -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
16410 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
16411 86, -1, 88, 89, 90, -1, 92, 93, 94, 95,
16412 96, 97, -1, -1, 100, 101, 102, 103, 104, 105,
16413 106, 107, 108, 109, 110, 111, 112, -1, 114, -1,
16414 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
16415 126, 127, -1, -1, 130, 131, 132, 133, 134, -1,
16416 136, 137, 138, -1, 140, 141, 142, -1, 144, 145,
16417 146, 147, 148, 149, 150, 151, 152, 153, 154, -1,
16418 156, -1, 158, 159, 160, 161, -1, 163, -1, 165,
16419 -1, -1, -1, 169, 170, 171, -1, 173, -1, 175,
16420 -1, 177, 178, 179, -1, 181, 182, 183, 184, 185,
16421 186, 187, -1, 189, 190, 191, 192, -1, 194, 195,
16422 196, 197, 198, 199, 200, -1, 202, -1, 204, 205,
16423 206, 207, 208, 209, 210, 211, -1, 213, -1, 215,
16424 -1, -1, 218, -1, 220, 221, 222, 223, 224, 225,
16425 -1, -1, 228, -1, 230, -1, -1, 233, 234, 235,
16426 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
16427 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
16428 256, 257, 258, 259, 260, -1, 262, 263, 264, 265,
16429 266, -1, 268, 269, -1, 271, -1, 273, 274, 275,
16430 276, 277, 278, -1, 280, 281, -1, -1, 284, 285,
16431 286, -1, -1, 289, 290, -1, 292, -1, 294, 295,
16432 296, 297, 298, 299, 300, 301, 302, 303, 304, -1,
16433 -1, -1, -1, 309, 310, 311, -1, 313, 314, 315,
16434 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
16435 -1, 327, 328, 329, 330, 331, 332, 333, 334, -1,
16436 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
16437 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
16438 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
16439 366, 367, -1, -1, 370, 371, 372, 373, 374, 375,
16440 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
16441 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
16442 396, 397, 398, 399, 400, 401, -1, 403, 404, -1,
16443 406, -1, 408, 409, 410, 411, 412, -1, 414, 415,
16444 -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
16445 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
16446 436, -1, 438, 439, 440, 441, -1, 443, 444, 445,
16447 446, 447, 448, 449, -1, 451, -1, 453, 454, 455,
16448 456, 457, -1, -1, 460, -1, -1, 463, 464, 465,
16449 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
16450 476, 477, 478, 479, 480, 481, 482, 483, 3, -1,
16451 5, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16452 -1, -1, -1, -1, -1, -1, -1, 22, 23, 24,
16453 25, 26, 27, 28, 29, -1, 31, 32, 33, -1,
16454 -1, -1, -1, -1, -1, -1, -1, -1, 43, 44,
16455 -1, 46, 47, 48, -1, 50, 51, 52, 53, 54,
16456 -1, 56, 57, -1, 59, 60, 61, 62, 63, 64,
16457 -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
16458 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
16459 85, 86, -1, 88, 89, 90, -1, 92, 93, 94,
16460 95, 96, 97, -1, -1, 100, 101, 102, 103, 104,
16461 105, 106, 107, 108, 109, 110, 111, 112, -1, 114,
16462 -1, 116, 117, 118, 119, 120, 121, -1, 123, 124,
16463 125, 126, 127, -1, -1, 130, 131, 132, 133, 134,
16464 -1, 136, 137, 138, -1, 140, 141, 142, -1, 144,
16465 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
16466 -1, 156, -1, 158, 159, 160, 161, -1, 163, -1,
16467 165, -1, -1, -1, 169, 170, 171, -1, 173, -1,
16468 175, -1, 177, 178, 179, -1, 181, 182, 183, 184,
16469 185, 186, 187, -1, 189, 190, 191, 192, -1, 194,
16470 195, 196, 197, 198, 199, 200, -1, 202, -1, 204,
16471 205, 206, 207, 208, 209, 210, 211, -1, 213, -1,
16472 215, -1, -1, 218, -1, 220, 221, 222, 223, 224,
16473 225, -1, -1, 228, -1, 230, -1, -1, 233, 234,
16474 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
16475 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
16476 255, 256, 257, 258, 259, 260, -1, 262, 263, 264,
16477 265, 266, -1, 268, 269, -1, 271, -1, 273, 274,
16478 275, 276, 277, 278, -1, 280, 281, -1, -1, 284,
16479 285, 286, -1, -1, 289, 290, -1, 292, -1, 294,
16480 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
16481 -1, -1, -1, -1, 309, 310, 311, -1, 313, 314,
16482 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
16483 325, -1, 327, 328, 329, 330, 331, 332, 333, 334,
16484 -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
16485 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
16486 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
16487 365, 366, 367, -1, -1, 370, 371, 372, 373, 374,
16488 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
16489 -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
16490 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
16491 -1, 406, -1, 408, 409, 410, 411, 412, -1, 414,
16492 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
16493 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
16494 435, 436, -1, 438, 439, 440, 441, -1, 443, 444,
16495 445, 446, 447, 448, 449, -1, 451, -1, 453, 454,
16496 455, 456, 457, -1, -1, 460, -1, -1, 463, 464,
16497 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
16498 475, 476, 477, 478, 479, 480, 481, 482, 483, 3,
16499 -1, 5, -1, -1, -1, -1, -1, -1, -1, -1,
16500 -1, -1, -1, -1, -1, -1, -1, -1, 22, 23,
16501 24, 25, 26, 27, 28, 29, -1, 31, 32, 33,
16502 -1, -1, -1, -1, -1, -1, -1, -1, -1, 43,
16503 44, -1, 46, 47, 48, -1, 50, 51, 52, 53,
16504 54, -1, 56, 57, -1, 59, 60, 61, 62, 63,
16505 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
16506 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
16507 84, 85, 86, -1, 88, 89, 90, -1, 92, 93,
16508 94, 95, 96, 97, -1, -1, 100, 101, 102, 103,
16509 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
16510 114, -1, 116, 117, 118, 119, 120, 121, -1, 123,
16511 124, 125, 126, 127, -1, -1, 130, 131, 132, 133,
16512 134, -1, 136, 137, 138, -1, 140, 141, 142, -1,
16513 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
16514 154, -1, 156, -1, 158, 159, 160, 161, -1, 163,
16515 -1, 165, -1, -1, -1, 169, 170, 171, -1, 173,
16516 -1, 175, -1, 177, 178, 179, -1, 181, 182, 183,
16517 184, 185, 186, 187, -1, 189, 190, 191, 192, -1,
16518 194, 195, 196, 197, 198, 199, 200, -1, 202, -1,
16519 204, 205, 206, 207, 208, 209, 210, 211, -1, 213,
16520 -1, 215, -1, -1, 218, -1, 220, 221, 222, 223,
16521 224, 225, -1, -1, 228, -1, 230, -1, -1, 233,
16522 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
16523 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
16524 254, 255, 256, 257, 258, 259, 260, -1, 262, 263,
16525 264, 265, 266, -1, 268, 269, -1, 271, -1, 273,
16526 274, 275, 276, 277, 278, -1, 280, 281, -1, -1,
16527 284, 285, 286, -1, -1, 289, 290, -1, 292, -1,
16528 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
16529 304, -1, -1, -1, -1, 309, 310, 311, -1, 313,
16530 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
16531 324, 325, -1, 327, 328, 329, 330, 331, 332, 333,
16532 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
16533 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
16534 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
16535 364, 365, 366, 367, -1, -1, 370, 371, 372, 373,
16536 374, 375, 376, 377, 378, 379, -1, 381, 382, 383,
16537 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
16538 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
16539 404, -1, 406, -1, 408, 409, 410, 411, 412, -1,
16540 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
16541 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
16542 434, 435, 436, -1, 438, 439, 440, 441, -1, 443,
16543 444, 445, 446, 447, 448, 449, -1, 451, -1, 453,
16544 454, 455, 456, 457, -1, -1, 460, -1, -1, 463,
16545 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
16546 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
16547 3, -1, 5, -1, -1, -1, -1, -1, -1, -1,
16548 -1, -1, -1, -1, -1, -1, -1, -1, -1, 22,
16549 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
16550 33, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16551 43, 44, -1, 46, 47, 48, -1, 50, 51, 52,
16552 53, 54, -1, 56, 57, -1, 59, 60, 61, 62,
16553 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
16554 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
16555 83, 84, 85, 86, -1, 88, 89, 90, -1, 92,
16556 93, 94, 95, 96, 97, -1, -1, 100, 101, 102,
16557 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
16558 -1, 114, -1, 116, 117, 118, 119, 120, 121, -1,
16559 123, 124, 125, 126, 127, -1, -1, 130, 131, 132,
16560 133, 134, -1, 136, 137, 138, -1, 140, 141, 142,
16561 -1, 144, 145, 146, 147, 148, 149, 150, 151, 152,
16562 153, 154, -1, 156, -1, 158, 159, 160, 161, -1,
16563 163, -1, 165, -1, -1, -1, 169, 170, 171, -1,
16564 173, -1, 175, -1, 177, 178, 179, -1, 181, 182,
16565 183, 184, 185, 186, 187, -1, 189, 190, 191, 192,
16566 -1, 194, 195, 196, 197, 198, 199, 200, -1, 202,
16567 -1, 204, 205, 206, 207, 208, 209, 210, 211, -1,
16568 213, -1, 215, -1, -1, 218, -1, 220, 221, 222,
16569 223, 224, 225, -1, -1, 228, -1, 230, -1, -1,
16570 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
16571 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
16572 253, 254, 255, 256, 257, 258, 259, 260, -1, 262,
16573 263, 264, 265, 266, -1, 268, 269, -1, 271, -1,
16574 273, 274, 275, 276, 277, 278, -1, 280, 281, -1,
16575 -1, 284, 285, 286, -1, -1, 289, 290, -1, 292,
16576 -1, 294, 295, 296, 297, 298, 299, 300, 301, 302,
16577 303, 304, -1, -1, -1, -1, 309, 310, 311, -1,
16578 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
16579 323, 324, 325, -1, 327, 328, 329, 330, 331, 332,
16580 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
16581 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
16582 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
16583 363, 364, 365, 366, 367, -1, -1, 370, 371, 372,
16584 373, 374, 375, 376, 377, 378, 379, -1, 381, 382,
16585 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
16586 393, 394, 395, 396, 397, 398, 399, 400, 401, -1,
16587 403, 404, -1, 406, -1, 408, 409, 410, 411, 412,
16588 -1, 414, 415, -1, -1, 418, 419, 420, 421, 422,
16589 -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
16590 -1, 434, 435, 436, -1, 438, 439, 440, 441, -1,
16591 443, 444, 445, 446, 447, 448, 449, -1, 451, -1,
16592 453, 454, 455, 456, 457, -1, -1, 460, -1, -1,
16593 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
16594 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
16595 483, 3, -1, 5, -1, -1, -1, -1, -1, -1,
16596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16597 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
16598 32, 33, -1, -1, -1, -1, -1, -1, -1, -1,
16599 -1, 43, 44, -1, 46, 47, 48, -1, 50, 51,
16600 52, 53, 54, -1, 56, 57, -1, 59, 60, 61,
16601 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
16602 -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
16603 82, 83, 84, 85, 86, -1, 88, 89, 90, -1,
16604 92, 93, 94, 95, 96, 97, -1, -1, 100, 101,
16605 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
16606 112, -1, 114, -1, 116, 117, 118, 119, 120, 121,
16607 -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
16608 132, 133, 134, -1, 136, 137, 138, -1, 140, 141,
16609 142, -1, 144, 145, 146, 147, 148, 149, 150, 151,
16610 152, 153, 154, -1, 156, -1, 158, 159, 160, 161,
16611 -1, 163, -1, 165, -1, -1, -1, 169, 170, 171,
16612 -1, 173, -1, 175, -1, 177, 178, 179, -1, 181,
16613 182, 183, 184, 185, 186, 187, -1, 189, 190, 191,
16614 192, -1, 194, 195, 196, 197, 198, 199, 200, -1,
16615 202, -1, 204, 205, 206, 207, 208, 209, 210, 211,
16616 -1, 213, -1, 215, -1, -1, 218, -1, 220, 221,
16617 222, 223, 224, 225, -1, -1, 228, -1, 230, -1,
16618 -1, 233, 234, 235, 236, 237, 238, 239, 240, 241,
16619 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
16620 252, 253, 254, 255, 256, 257, 258, 259, 260, -1,
16621 262, 263, 264, 265, 266, -1, 268, 269, -1, 271,
16622 -1, 273, 274, 275, 276, 277, 278, -1, 280, 281,
16623 -1, -1, 284, 285, 286, -1, -1, 289, 290, -1,
16624 292, -1, 294, 295, 296, 297, 298, 299, 300, 301,
16625 302, 303, 304, -1, -1, -1, -1, 309, 310, 311,
16626 -1, 313, 314, 315, 316, 317, 318, -1, 320, 321,
16627 322, 323, 324, 325, -1, 327, 328, 329, 330, 331,
16628 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
16629 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
16630 -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
16631 362, 363, 364, 365, 366, 367, -1, -1, 370, 371,
16632 372, 373, 374, 375, 376, 377, 378, 379, -1, 381,
16633 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
16634 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
16635 -1, 403, 404, -1, 406, -1, 408, 409, 410, 411,
16636 412, -1, 414, 415, -1, -1, 418, 419, 420, 421,
16637 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
16638 -1, -1, 434, 435, 436, -1, 438, 439, 440, 441,
16639 -1, 443, 444, 445, 446, 447, 448, 449, -1, 451,
16640 -1, 453, 454, 455, 456, 457, -1, -1, 460, -1,
16641 -1, 463, 464, 465, 466, 467, 468, 469, 470, 471,
16642 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
16643 482, 483, 3, -1, -1, -1, -1, -1, -1, -1,
16644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16645 -1, 22, 23, 24, 25, 26, 27, 28, 29, -1,
16646 31, 32, 33, -1, -1, -1, 37, -1, -1, 40,
16647 -1, 42, 43, 44, -1, 46, 47, 48, 49, 50,
16648 51, 52, -1, 54, 55, 56, 57, -1, 59, 60,
16649 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
16650 71, -1, 73, 74, 75, 76, -1, -1, 79, -1,
16651 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
16652 -1, 92, 93, 94, 95, 96, 97, -1, 99, 100,
16653 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
16654 111, 112, -1, 114, -1, 116, 117, 118, 119, 120,
16655 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
16656 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
16657 141, 142, -1, 144, 145, 146, 147, -1, 149, 150,
16658 151, 152, 153, -1, -1, 156, -1, 158, 159, 160,
16659 161, -1, 163, -1, 165, 166, -1, 168, 169, 170,
16660 171, 172, 173, -1, 175, -1, -1, -1, 179, -1,
16661 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
16662 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
16663 -1, 202, 203, -1, 205, 206, 207, 208, 209, 210,
16664 211, -1, 213, -1, 215, 216, 217, 218, 219, 220,
16665 221, 222, 223, 224, 225, -1, -1, 228, 229, 230,
16666 231, -1, 233, 234, 235, 236, 237, 238, 239, 240,
16667 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
16668 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
16669 261, 262, 263, 264, 265, -1, -1, 268, 269, 270,
16670 271, -1, -1, 274, 275, 276, 277, 278, -1, 280,
16671 281, -1, -1, 284, 285, 286, -1, -1, 289, -1,
16672 291, 292, 293, -1, 295, 296, 297, 298, 299, 300,
16673 301, 302, 303, 304, -1, -1, -1, -1, 309, 310,
16674 -1, 312, 313, 314, -1, 316, 317, 318, -1, 320,
16675 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
16676 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
16677 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
16678 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
16679 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
16680 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
16681 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
16682 391, 392, 393, 394, 395, 396, 397, 398, 399, -1,
16683 401, -1, 403, 404, -1, 406, 407, 408, 409, 410,
16684 411, 412, -1, 414, 415, -1, -1, 418, 419, -1,
16685 421, -1, -1, 424, 425, 426, 427, 428, 429, 430,
16686 431, 432, -1, 434, 435, 436, -1, 438, 439, 440,
16687 441, -1, 443, 444, 445, 446, 447, -1, 449, -1,
16688 451, 452, 453, 454, 455, 456, 457, -1, -1, 460,
16689 -1, -1, 463, 464, 465, 466, 467, 468, 3, -1,
16690 5, -1, -1, -1, -1, -1, -1, -1, -1, 480,
16691 481, 482, 483, -1, -1, -1, -1, 22, 23, 24,
16692 25, 26, 27, 28, 29, -1, 31, 32, 33, -1,
16693 -1, -1, -1, -1, -1, -1, -1, -1, 43, 44,
16694 -1, 46, 47, 48, -1, 50, 51, 52, 53, 54,
16695 -1, 56, 57, -1, 59, 60, 61, 62, 63, 64,
16696 -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
16697 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
16698 85, 86, -1, 88, 89, 90, -1, 92, 93, 94,
16699 95, 96, 97, -1, -1, 100, 101, 102, 103, 104,
16700 105, 106, 107, 108, 109, 110, 111, 112, -1, 114,
16701 -1, 116, 117, 118, 119, 120, 121, -1, 123, 124,
16702 125, 126, 127, -1, -1, 130, 131, 132, 133, 134,
16703 -1, 136, 137, 138, -1, 140, 141, 142, -1, 144,
16704 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
16705 -1, 156, -1, 158, 159, 160, 161, -1, 163, -1,
16706 165, -1, -1, -1, 169, 170, 171, -1, 173, -1,
16707 175, -1, 177, 178, 179, -1, 181, 182, 183, 184,
16708 185, 186, 187, -1, 189, 190, 191, 192, -1, 194,
16709 195, 196, 197, 198, 199, 200, -1, 202, -1, 204,
16710 205, 206, 207, 208, 209, 210, 211, -1, 213, -1,
16711 215, -1, -1, 218, -1, 220, 221, 222, 223, 224,
16712 225, -1, -1, 228, -1, 230, -1, -1, 233, 234,
16713 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
16714 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
16715 255, 256, 257, 258, 259, 260, -1, 262, 263, 264,
16716 265, 266, -1, 268, 269, -1, 271, -1, 273, 274,
16717 275, 276, 277, 278, -1, 280, 281, -1, -1, 284,
16718 285, 286, -1, -1, 289, 290, -1, 292, -1, 294,
16719 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
16720 -1, -1, -1, -1, 309, 310, 311, -1, 313, 314,
16721 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
16722 325, -1, 327, 328, 329, 330, 331, 332, 333, 334,
16723 -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
16724 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
16725 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
16726 365, 366, 367, -1, -1, 370, 371, 372, 373, 374,
16727 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
16728 -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
16729 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
16730 -1, 406, -1, 408, 409, 410, 411, 412, -1, 414,
16731 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
16732 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
16733 435, 436, -1, 438, 439, 440, 441, -1, 443, 444,
16734 445, 446, 447, 448, 449, -1, 451, -1, 453, 454,
16735 455, 456, 457, -1, -1, 460, -1, -1, 463, 464,
16736 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
16737 475, 476, 477, 478, 479, 480, 481, 482, 483, 3,
16738 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16739 -1, -1, -1, -1, -1, -1, -1, -1, 22, 23,
16740 24, 25, 26, 27, 28, 29, -1, 31, 32, 33,
16741 -1, -1, -1, -1, -1, -1, -1, -1, -1, 43,
16742 44, -1, 46, 47, 48, -1, 50, 51, 52, 53,
16743 54, -1, 56, 57, -1, 59, 60, 61, 62, 63,
16744 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
16745 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
16746 84, 85, 86, -1, 88, 89, 90, -1, 92, 93,
16747 94, 95, 96, 97, -1, -1, 100, 101, 102, 103,
16748 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
16749 114, -1, 116, 117, 118, 119, 120, 121, -1, 123,
16750 124, 125, 126, 127, -1, -1, 130, 131, 132, 133,
16751 134, -1, 136, 137, 138, -1, 140, 141, 142, -1,
16752 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
16753 154, -1, 156, -1, 158, 159, 160, 161, -1, 163,
16754 -1, 165, -1, -1, -1, 169, 170, 171, -1, 173,
16755 -1, 175, -1, 177, 178, 179, -1, 181, 182, 183,
16756 184, 185, 186, 187, -1, 189, 190, 191, 192, -1,
16757 194, 195, 196, 197, 198, 199, 200, -1, 202, -1,
16758 204, 205, 206, 207, 208, 209, 210, 211, -1, 213,
16759 -1, 215, -1, -1, 218, -1, 220, 221, 222, 223,
16760 224, 225, -1, -1, 228, -1, 230, -1, -1, 233,
16761 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
16762 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
16763 254, 255, 256, 257, 258, 259, 260, -1, 262, 263,
16764 264, 265, 266, -1, 268, 269, -1, 271, -1, 273,
16765 274, 275, 276, 277, 278, -1, 280, 281, -1, -1,
16766 284, 285, 286, -1, -1, 289, 290, -1, 292, -1,
16767 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
16768 304, -1, -1, -1, -1, 309, 310, 311, -1, 313,
16769 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
16770 324, 325, -1, 327, 328, 329, 330, 331, 332, 333,
16771 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
16772 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
16773 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
16774 364, 365, 366, 367, -1, -1, 370, 371, 372, 373,
16775 374, 375, 376, 377, 378, 379, -1, 381, 382, 383,
16776 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
16777 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
16778 404, -1, 406, -1, 408, 409, 410, 411, 412, -1,
16779 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
16780 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
16781 434, 435, 436, -1, 438, 439, 440, 441, -1, 443,
16782 444, 445, 446, 447, 448, 449, -1, 451, -1, 453,
16783 454, 455, 456, 457, -1, -1, 460, -1, -1, 463,
16784 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
16785 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
16786 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16787 -1, -1, -1, -1, -1, -1, -1, -1, -1, 22,
16788 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
16789 33, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16790 43, 44, -1, 46, 47, 48, -1, 50, 51, 52,
16791 53, 54, -1, 56, 57, -1, 59, 60, 61, 62,
16792 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
16793 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
16794 83, 84, 85, 86, -1, 88, 89, 90, -1, 92,
16795 93, 94, 95, 96, 97, -1, -1, 100, 101, 102,
16796 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
16797 -1, 114, -1, 116, 117, 118, 119, 120, 121, -1,
16798 123, 124, 125, 126, 127, -1, -1, 130, 131, 132,
16799 133, 134, -1, 136, 137, 138, -1, 140, 141, 142,
16800 -1, 144, 145, 146, 147, 148, 149, 150, 151, 152,
16801 153, 154, -1, 156, -1, 158, 159, 160, 161, -1,
16802 163, -1, 165, -1, -1, -1, 169, 170, 171, -1,
16803 173, -1, 175, -1, 177, 178, 179, -1, 181, 182,
16804 183, 184, 185, 186, 187, -1, 189, 190, 191, 192,
16805 -1, 194, 195, 196, 197, 198, 199, 200, -1, 202,
16806 -1, 204, 205, 206, 207, 208, 209, 210, 211, -1,
16807 213, -1, 215, -1, -1, 218, -1, 220, 221, 222,
16808 223, 224, 225, -1, -1, 228, -1, 230, -1, -1,
16809 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
16810 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
16811 253, 254, 255, 256, 257, 258, 259, 260, -1, 262,
16812 263, 264, 265, 266, -1, 268, 269, -1, 271, -1,
16813 273, 274, 275, 276, 277, 278, -1, 280, 281, -1,
16814 -1, 284, 285, 286, -1, -1, 289, 290, -1, 292,
16815 -1, 294, 295, 296, 297, 298, 299, 300, 301, 302,
16816 303, 304, -1, -1, -1, -1, 309, 310, 311, -1,
16817 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
16818 323, 324, 325, -1, 327, 328, 329, 330, 331, 332,
16819 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
16820 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
16821 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
16822 363, 364, 365, 366, 367, -1, -1, 370, 371, 372,
16823 373, 374, 375, 376, 377, 378, 379, -1, 381, 382,
16824 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
16825 393, 394, 395, 396, 397, 398, 399, 400, 401, -1,
16826 403, 404, -1, 406, -1, 408, 409, 410, 411, 412,
16827 -1, 414, 415, -1, -1, 418, 419, 420, 421, 422,
16828 -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
16829 -1, 434, 435, 436, -1, 438, 439, 440, 441, -1,
16830 443, 444, 445, 446, 447, 448, 449, -1, 451, -1,
16831 453, 454, 455, 456, 457, -1, -1, 460, -1, -1,
16832 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
16833 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
16834 483, 3, -1, -1, -1, -1, -1, -1, -1, -1,
16835 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16836 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
16837 32, 33, -1, -1, -1, -1, -1, -1, -1, -1,
16838 -1, 43, 44, -1, 46, 47, 48, -1, 50, 51,
16839 52, 53, 54, -1, 56, 57, -1, 59, 60, 61,
16840 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
16841 -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
16842 82, 83, 84, 85, 86, -1, 88, 89, 90, -1,
16843 92, 93, 94, 95, 96, 97, -1, -1, 100, 101,
16844 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
16845 112, -1, 114, -1, 116, 117, 118, 119, 120, 121,
16846 -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
16847 132, 133, 134, -1, 136, 137, 138, -1, 140, 141,
16848 142, -1, 144, 145, 146, 147, 148, 149, 150, 151,
16849 152, 153, 154, -1, 156, -1, 158, 159, 160, 161,
16850 -1, 163, -1, 165, -1, -1, -1, 169, 170, 171,
16851 -1, 173, -1, 175, -1, 177, 178, 179, -1, 181,
16852 182, 183, 184, 185, 186, 187, -1, 189, 190, 191,
16853 192, -1, 194, 195, 196, 197, 198, 199, 200, -1,
16854 202, -1, 204, 205, 206, 207, 208, 209, 210, 211,
16855 -1, 213, -1, 215, -1, -1, 218, -1, 220, 221,
16856 222, 223, 224, 225, -1, -1, 228, -1, 230, -1,
16857 -1, 233, 234, 235, 236, 237, 238, 239, 240, 241,
16858 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
16859 252, 253, 254, 255, 256, 257, 258, 259, 260, -1,
16860 262, 263, 264, 265, 266, -1, 268, 269, -1, 271,
16861 -1, 273, 274, 275, 276, 277, 278, -1, 280, 281,
16862 -1, -1, 284, 285, 286, -1, -1, 289, 290, -1,
16863 292, -1, 294, 295, 296, 297, 298, 299, 300, 301,
16864 302, 303, 304, -1, -1, -1, -1, 309, 310, 311,
16865 -1, 313, 314, 315, 316, 317, 318, -1, 320, 321,
16866 322, 323, 324, 325, -1, 327, 328, 329, 330, 331,
16867 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
16868 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
16869 -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
16870 362, 363, 364, 365, 366, 367, -1, -1, 370, 371,
16871 372, 373, 374, 375, 376, 377, 378, 379, -1, 381,
16872 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
16873 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
16874 -1, 403, 404, -1, 406, -1, 408, 409, 410, 411,
16875 412, -1, 414, 415, -1, -1, 418, 419, 420, 421,
16876 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
16877 -1, -1, 434, 435, 436, -1, 438, 439, 440, 441,
16878 -1, 443, 444, 445, 446, 447, 448, 449, -1, 451,
16879 -1, 453, 454, 455, 456, 457, -1, -1, 460, -1,
16880 -1, 463, 464, 465, 466, 467, 468, 469, 470, 471,
16881 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
16882 482, 483, 3, -1, -1, -1, -1, -1, -1, -1,
16883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16884 -1, 22, 23, 24, 25, 26, 27, 28, 29, -1,
16885 31, 32, 33, -1, -1, -1, -1, -1, -1, -1,
16886 -1, -1, 43, 44, -1, 46, 47, 48, -1, 50,
16887 51, 52, 53, 54, -1, 56, 57, -1, 59, 60,
16888 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
16889 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
16890 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
16891 -1, 92, 93, 94, 95, 96, 97, -1, -1, 100,
16892 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
16893 111, 112, -1, 114, -1, 116, 117, 118, 119, 120,
16894 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
16895 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
16896 141, 142, -1, 144, 145, 146, 147, 148, 149, 150,
16897 151, 152, 153, 154, -1, 156, -1, 158, 159, 160,
16898 161, -1, 163, -1, 165, -1, -1, -1, 169, 170,
16899 171, -1, 173, -1, 175, -1, 177, 178, 179, -1,
16900 181, 182, 183, 184, 185, 186, 187, -1, 189, 190,
16901 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
16902 -1, 202, -1, 204, 205, 206, 207, 208, 209, 210,
16903 211, -1, 213, -1, 215, -1, -1, 218, -1, 220,
16904 221, 222, 223, 224, 225, -1, -1, 228, -1, 230,
16905 -1, -1, 233, 234, 235, 236, 237, 238, 239, 240,
16906 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
16907 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
16908 -1, 262, 263, 264, 265, 266, -1, 268, 269, -1,
16909 271, -1, 273, 274, 275, 276, 277, 278, -1, 280,
16910 281, -1, -1, 284, 285, 286, -1, -1, 289, 290,
16911 -1, 292, -1, 294, 295, 296, 297, 298, 299, 300,
16912 301, 302, 303, 304, -1, -1, -1, -1, 309, 310,
16913 311, -1, 313, 314, 315, 316, 317, 318, -1, 320,
16914 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
16915 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
16916 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
16917 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
16918 361, 362, 363, 364, 365, 366, 367, -1, -1, 370,
16919 371, 372, 373, 374, 375, 376, 377, 378, 379, -1,
16920 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
16921 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
16922 401, -1, 403, 404, -1, 406, -1, 408, 409, 410,
16923 411, 412, -1, 414, 415, -1, -1, 418, 419, 420,
16924 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
16925 431, -1, -1, 434, 435, 436, -1, 438, 439, 440,
16926 441, -1, 443, 444, 445, 446, 447, 448, 449, -1,
16927 451, -1, 453, 454, 455, 456, 457, -1, -1, 460,
16928 -1, -1, 463, 464, 465, 466, 467, 468, 469, 470,
16929 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
16930 481, 482, 483, 3, -1, -1, -1, -1, -1, -1,
16931 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16932 -1, -1, 22, 23, 24, 25, 26, 27, 28, 29,
16933 -1, 31, 32, 33, -1, -1, -1, -1, -1, -1,
16934 40, -1, -1, 43, 44, -1, 46, 47, 48, -1,
16935 50, 51, 52, 53, 54, -1, 56, 57, -1, 59,
16936 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
16937 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
16938 -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
16939 90, -1, 92, 93, 94, 95, 96, 97, -1, -1,
16940 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
16941 110, 111, 112, -1, 114, -1, 116, 117, 118, 119,
16942 120, 121, -1, 123, 124, 125, 126, 127, -1, -1,
16943 130, 131, 132, 133, 134, -1, 136, 137, 138, -1,
16944 140, 141, 142, -1, 144, 145, 146, 147, 148, 149,
16945 150, 151, 152, 153, 154, -1, 156, -1, 158, 159,
16946 160, 161, -1, 163, -1, 165, -1, -1, -1, 169,
16947 170, 171, -1, 173, -1, 175, -1, 177, 178, 179,
16948 -1, 181, 182, 183, 184, 185, 186, 187, -1, 189,
16949 190, 191, 192, -1, 194, 195, 196, 197, 198, 199,
16950 200, -1, 202, -1, 204, 205, 206, 207, 208, 209,
16951 210, 211, -1, 213, -1, 215, -1, -1, 218, -1,
16952 220, 221, 222, 223, 224, 225, -1, -1, 228, -1,
16953 230, -1, -1, 233, 234, 235, 236, 237, 238, 239,
16954 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
16955 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
16956 260, -1, 262, 263, 264, 265, 266, -1, 268, 269,
16957 -1, 271, -1, 273, 274, 275, 276, 277, 278, -1,
16958 280, 281, -1, -1, 284, 285, 286, -1, -1, 289,
16959 290, -1, 292, -1, 294, 295, 296, 297, 298, 299,
16960 300, 301, 302, 303, 304, -1, -1, -1, -1, 309,
16961 310, 311, -1, 313, 314, 315, 316, 317, 318, -1,
16962 320, 321, 322, 323, 324, 325, -1, 327, 328, 329,
16963 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
16964 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
16965 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
16966 360, 361, 362, 363, 364, 365, 366, 367, -1, -1,
16967 370, 371, 372, 373, 374, -1, 376, 377, 378, 379,
16968 -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
16969 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
16970 400, 401, -1, 403, 404, -1, 406, -1, 408, 409,
16971 410, 411, 412, -1, 414, 415, -1, -1, 418, 419,
16972 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
16973 430, 431, -1, -1, 434, 435, 436, -1, 438, 439,
16974 440, 441, -1, 443, 444, 445, 446, 447, 448, 449,
16975 -1, 451, -1, 453, 454, 455, 456, 457, -1, -1,
16976 460, -1, -1, 463, 464, 465, 466, 467, 468, 469,
16977 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
16978 480, 481, 482, 483, 3, -1, -1, -1, -1, -1,
16979 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
16980 -1, -1, -1, 22, 23, 24, 25, 26, 27, 28,
16981 29, -1, 31, 32, 33, -1, -1, -1, -1, -1,
16982 -1, -1, -1, -1, 43, 44, -1, 46, 47, 48,
16983 -1, 50, 51, 52, 53, 54, -1, 56, 57, -1,
16984 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
16985 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
16986 -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
16987 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
16988 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
16989 109, 110, 111, 112, -1, 114, -1, 116, 117, 118,
16990 119, 120, 121, -1, 123, 124, 125, 126, 127, -1,
16991 -1, 130, 131, 132, 133, 134, -1, 136, 137, 138,
16992 -1, 140, 141, 142, -1, 144, 145, 146, 147, 148,
16993 149, 150, 151, 152, 153, 154, -1, 156, -1, 158,
16994 159, 160, 161, -1, 163, -1, 165, -1, -1, -1,
16995 169, 170, 171, -1, 173, -1, 175, -1, 177, 178,
16996 179, -1, 181, 182, 183, 184, 185, 186, 187, -1,
16997 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
16998 199, 200, -1, 202, -1, 204, 205, 206, 207, 208,
16999 209, 210, 211, -1, 213, -1, 215, -1, -1, 218,
17000 -1, 220, 221, 222, 223, 224, 225, -1, -1, 228,
17001 -1, 230, -1, -1, 233, 234, 235, 236, 237, 238,
17002 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
17003 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
17004 259, 260, -1, 262, 263, 264, 265, 266, -1, 268,
17005 269, -1, 271, -1, 273, 274, 275, 276, 277, 278,
17006 -1, 280, 281, -1, -1, 284, 285, 286, -1, -1,
17007 289, 290, -1, 292, -1, 294, 295, 296, 297, 298,
17008 299, 300, 301, 302, 303, 304, -1, -1, -1, -1,
17009 309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
17010 -1, 320, 321, 322, 323, 324, 325, -1, 327, 328,
17011 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
17012 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
17013 -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
17014 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
17015 -1, 370, 371, 372, 373, 374, 375, 376, 377, 378,
17016 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
17017 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
17018 399, 400, 401, -1, 403, 404, -1, 406, -1, 408,
17019 409, 410, 411, 412, -1, 414, 415, -1, -1, 418,
17020 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
17021 429, 430, 431, -1, -1, 434, 435, 436, -1, 438,
17022 439, 440, 441, -1, 443, 444, 445, 446, 447, 448,
17023 449, -1, 451, -1, 453, 454, 455, 456, 457, -1,
17024 -1, 460, -1, -1, 463, 464, 465, 466, 467, 468,
17025 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
17026 479, 480, 481, 482, 483, 3, -1, -1, -1, -1,
17027 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17028 -1, -1, -1, -1, 22, 23, 24, 25, 26, 27,
17029 28, 29, -1, 31, 32, 33, -1, -1, -1, -1,
17030 -1, -1, -1, -1, -1, 43, 44, -1, 46, 47,
17031 48, -1, 50, 51, 52, 53, 54, -1, 56, 57,
17032 -1, 59, 60, 61, 62, 63, 64, -1, -1, 67,
17033 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
17034 -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
17035 88, 89, 90, -1, 92, 93, 94, 95, 96, 97,
17036 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
17037 108, 109, 110, 111, 112, -1, 114, -1, 116, 117,
17038 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
17039 -1, -1, 130, 131, 132, 133, 134, -1, 136, 137,
17040 138, -1, 140, 141, 142, -1, 144, 145, 146, 147,
17041 148, 149, 150, 151, 152, 153, 154, -1, 156, -1,
17042 158, 159, 160, 161, -1, 163, -1, 165, -1, -1,
17043 -1, 169, 170, 171, -1, 173, -1, 175, -1, 177,
17044 178, 179, -1, 181, 182, 183, 184, 185, 186, 187,
17045 -1, 189, 190, 191, 192, -1, 194, 195, 196, 197,
17046 198, 199, 200, -1, 202, -1, 204, 205, 206, 207,
17047 208, 209, 210, 211, -1, 213, -1, 215, -1, -1,
17048 218, -1, 220, 221, 222, 223, 224, 225, -1, -1,
17049 228, -1, 230, -1, -1, 233, 234, 235, 236, 237,
17050 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
17051 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
17052 258, 259, 260, -1, 262, 263, 264, 265, 266, -1,
17053 268, 269, -1, 271, -1, 273, 274, 275, 276, 277,
17054 278, -1, 280, 281, -1, -1, 284, 285, 286, -1,
17055 -1, 289, 290, -1, 292, -1, 294, 295, 296, 297,
17056 298, 299, 300, 301, 302, 303, 304, -1, -1, -1,
17057 -1, 309, 310, 311, -1, 313, 314, 315, 316, 317,
17058 318, -1, 320, 321, 322, 323, 324, 325, -1, 327,
17059 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
17060 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
17061 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
17062 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
17063 -1, -1, 370, 371, 372, 373, 374, 375, 376, 377,
17064 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
17065 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
17066 398, 399, 400, 401, -1, 403, 404, -1, 406, -1,
17067 408, 409, 410, 411, 412, -1, 414, 415, -1, -1,
17068 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
17069 428, 429, 430, 431, -1, -1, 434, 435, 436, -1,
17070 438, 439, 440, 441, -1, 443, 444, 445, 446, 447,
17071 448, 449, -1, 451, -1, 453, 454, 455, 456, 457,
17072 -1, -1, 460, -1, -1, 463, 464, 465, 466, 467,
17073 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
17074 478, 479, 480, 481, 482, 483, 3, -1, -1, -1,
17075 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17076 -1, -1, -1, -1, -1, 22, 23, 24, 25, 26,
17077 27, 28, 29, -1, 31, 32, 33, -1, -1, -1,
17078 -1, -1, -1, -1, -1, -1, 43, 44, -1, 46,
17079 47, 48, -1, 50, 51, 52, 53, 54, -1, 56,
17080 57, -1, 59, 60, 61, 62, 63, 64, -1, -1,
17081 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
17082 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
17083 -1, 88, 89, 90, -1, 92, 93, 94, 95, 96,
17084 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
17085 107, 108, 109, 110, 111, 112, -1, 114, -1, 116,
17086 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
17087 127, -1, -1, 130, 131, 132, 133, 134, -1, 136,
17088 137, 138, -1, 140, 141, 142, -1, 144, 145, 146,
17089 147, 148, 149, 150, 151, 152, 153, 154, -1, 156,
17090 -1, 158, 159, 160, 161, -1, 163, -1, 165, -1,
17091 -1, -1, 169, 170, 171, -1, 173, -1, 175, -1,
17092 177, 178, 179, -1, 181, 182, 183, 184, 185, 186,
17093 187, -1, 189, 190, 191, 192, -1, 194, 195, 196,
17094 197, 198, 199, 200, -1, 202, -1, 204, 205, 206,
17095 207, 208, 209, 210, 211, -1, 213, -1, 215, -1,
17096 -1, 218, -1, 220, 221, 222, 223, 224, 225, -1,
17097 -1, 228, -1, 230, -1, -1, 233, 234, 235, 236,
17098 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
17099 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
17100 257, 258, 259, 260, -1, 262, 263, 264, 265, 266,
17101 -1, 268, 269, -1, 271, -1, 273, 274, 275, 276,
17102 277, 278, -1, 280, 281, -1, -1, 284, 285, 286,
17103 -1, -1, 289, 290, -1, 292, -1, 294, 295, 296,
17104 297, 298, 299, 300, 301, 302, 303, 304, -1, -1,
17105 -1, -1, 309, 310, 311, -1, 313, 314, 315, 316,
17106 317, 318, -1, 320, 321, 322, 323, 324, 325, -1,
17107 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
17108 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
17109 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
17110 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
17111 367, -1, -1, 370, 371, 372, 373, 374, 375, 376,
17112 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
17113 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
17114 397, 398, 399, 400, 401, -1, 403, 404, -1, 406,
17115 -1, 408, 409, 410, 411, 412, -1, 414, 415, -1,
17116 -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
17117 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
17118 -1, 438, 439, 440, 441, -1, 443, 444, 445, 446,
17119 447, 448, 449, -1, 451, -1, 453, 454, 455, 456,
17120 457, -1, -1, 460, -1, -1, 463, 464, 465, 466,
17121 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
17122 477, 478, 479, 480, 481, 482, 483, 3, -1, -1,
17123 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17124 -1, -1, -1, -1, -1, -1, 22, 23, 24, 25,
17125 26, 27, 28, 29, -1, 31, 32, 33, -1, -1,
17126 -1, 37, -1, -1, -1, -1, 42, 43, 44, -1,
17127 46, 47, 48, 49, 50, 51, 52, -1, 54, 55,
17128 56, 57, -1, 59, 60, 61, 62, 63, 64, -1,
17129 -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
17130 76, -1, -1, 79, -1, 81, 82, 83, 84, 85,
17131 86, 87, 88, 89, 90, -1, 92, 93, 94, 95,
17132 96, 97, -1, 99, 100, 101, 102, 103, 104, 105,
17133 106, 107, 108, 109, 110, 111, 112, -1, 114, -1,
17134 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
17135 126, 127, -1, -1, 130, 131, 132, 133, 134, -1,
17136 136, 137, 138, -1, 140, 141, 142, -1, 144, 145,
17137 146, 147, -1, 149, 150, 151, 152, 153, -1, -1,
17138 156, -1, 158, 159, 160, 161, -1, 163, -1, 165,
17139 166, -1, 168, 169, 170, -1, 172, 173, -1, 175,
17140 -1, -1, -1, 179, -1, 181, 182, 183, 184, 185,
17141 186, 187, 188, 189, 190, 191, 192, -1, 194, 195,
17142 196, 197, 198, 199, 200, -1, 202, 203, -1, 205,
17143 206, 207, 208, 209, 210, 211, -1, 213, -1, 215,
17144 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
17145 -1, -1, 228, 229, 230, 231, -1, 233, 234, 235,
17146 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
17147 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
17148 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
17149 -1, -1, 268, 269, 270, 271, -1, -1, 274, 275,
17150 276, 277, 278, -1, 280, 281, -1, -1, 284, 285,
17151 286, -1, -1, 289, -1, 291, 292, 293, -1, 295,
17152 296, 297, 298, 299, 300, 301, 302, 303, 304, -1,
17153 -1, -1, -1, 309, 310, -1, 312, 313, 314, -1,
17154 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
17155 -1, 327, 328, 329, 330, 331, 332, 333, 334, -1,
17156 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
17157 346, 347, 348, -1, 350, 351, 352, 353, 354, 355,
17158 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
17159 366, 367, -1, 369, 370, 371, 372, 373, 374, 375,
17160 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
17161 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
17162 396, 397, 398, 399, -1, 401, -1, 403, 404, -1,
17163 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
17164 -1, -1, 418, 419, -1, 421, -1, -1, 424, 425,
17165 426, 427, 428, 429, 430, 431, 432, -1, 434, 435,
17166 436, -1, 438, 439, 440, 441, -1, 443, 444, 445,
17167 446, 447, -1, 449, -1, 451, 452, 453, 454, 455,
17168 456, 457, -1, -1, 460, -1, -1, 463, 464, 465,
17169 466, 467, 468, 3, -1, -1, -1, -1, -1, -1,
17170 -1, -1, -1, -1, 480, 481, 482, 483, -1, -1,
17171 -1, -1, 22, 23, 24, 25, 26, 27, 28, 29,
17172 -1, 31, 32, 33, -1, -1, -1, 37, -1, -1,
17173 -1, -1, 42, 43, 44, -1, 46, 47, 48, 49,
17174 50, 51, 52, -1, 54, 55, 56, 57, -1, 59,
17175 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
17176 70, 71, -1, 73, 74, 75, 76, -1, -1, 79,
17177 -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
17178 90, -1, 92, 93, 94, 95, 96, 97, -1, 99,
17179 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
17180 110, 111, 112, -1, 114, -1, 116, 117, 118, 119,
17181 120, 121, -1, 123, 124, 125, 126, 127, -1, -1,
17182 130, 131, 132, 133, 134, -1, 136, 137, 138, -1,
17183 140, 141, 142, -1, 144, 145, 146, 147, -1, 149,
17184 150, 151, 152, 153, -1, -1, 156, -1, 158, 159,
17185 160, 161, -1, 163, -1, 165, 166, -1, 168, 169,
17186 170, -1, 172, 173, -1, 175, -1, -1, -1, 179,
17187 -1, 181, 182, 183, 184, 185, 186, 187, 188, 189,
17188 190, 191, 192, -1, 194, 195, 196, 197, 198, 199,
17189 200, -1, 202, 203, -1, 205, 206, 207, 208, 209,
17190 210, 211, -1, 213, -1, 215, 216, 217, 218, 219,
17191 220, 221, 222, 223, 224, 225, -1, -1, 228, 229,
17192 230, 231, -1, 233, 234, 235, 236, 237, 238, 239,
17193 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
17194 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
17195 260, 261, 262, 263, 264, 265, -1, -1, 268, 269,
17196 270, 271, -1, -1, 274, 275, 276, 277, 278, -1,
17197 280, 281, -1, -1, 284, 285, 286, -1, -1, 289,
17198 -1, 291, 292, 293, -1, 295, 296, 297, 298, 299,
17199 300, 301, 302, 303, 304, -1, -1, -1, -1, 309,
17200 310, -1, 312, 313, 314, -1, 316, 317, 318, -1,
17201 320, 321, 322, 323, 324, 325, -1, 327, 328, 329,
17202 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
17203 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
17204 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
17205 360, 361, 362, 363, 364, 365, 366, 367, -1, 369,
17206 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
17207 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
17208 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
17209 -1, 401, -1, 403, 404, -1, 406, 407, 408, 409,
17210 410, 411, 412, -1, 414, 415, -1, -1, 418, 419,
17211 -1, 421, -1, -1, 424, 425, 426, 427, 428, 429,
17212 430, 431, 432, -1, 434, 435, 436, -1, 438, 439,
17213 440, 441, -1, 443, 444, 445, 446, 447, -1, 449,
17214 -1, 451, 452, 453, 454, 455, 456, 457, -1, -1,
17215 460, -1, -1, 463, 464, 465, 466, 467, 468, 3,
17216 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17217 480, 481, 482, 483, -1, -1, -1, -1, 22, 23,
17218 24, 25, 26, 27, 28, 29, -1, 31, 32, 33,
17219 -1, -1, -1, 37, -1, -1, -1, -1, 42, 43,
17220 44, -1, 46, 47, 48, 49, 50, 51, 52, -1,
17221 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
17222 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
17223 74, 75, 76, -1, -1, 79, -1, 81, 82, 83,
17224 84, 85, 86, 87, 88, 89, 90, -1, 92, 93,
17225 94, 95, 96, 97, -1, 99, 100, 101, 102, 103,
17226 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
17227 114, -1, 116, 117, 118, 119, 120, 121, -1, 123,
17228 124, 125, 126, 127, -1, -1, 130, 131, 132, 133,
17229 134, -1, 136, 137, 138, -1, 140, 141, 142, -1,
17230 144, 145, 146, 147, -1, 149, 150, 151, 152, 153,
17231 -1, -1, 156, -1, 158, 159, 160, 161, -1, 163,
17232 -1, 165, 166, -1, 168, 169, 170, -1, 172, 173,
17233 -1, 175, -1, -1, -1, 179, -1, 181, 182, 183,
17234 184, 185, 186, 187, 188, 189, 190, 191, 192, -1,
17235 194, 195, 196, 197, 198, 199, 200, -1, 202, 203,
17236 -1, 205, 206, 207, 208, 209, 210, 211, -1, 213,
17237 -1, 215, 216, 217, 218, 219, 220, 221, 222, 223,
17238 224, 225, -1, -1, 228, 229, 230, 231, -1, 233,
17239 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
17240 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
17241 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
17242 264, 265, -1, -1, 268, 269, 270, 271, -1, -1,
17243 274, 275, 276, 277, 278, -1, 280, 281, -1, -1,
17244 284, 285, 286, -1, -1, 289, -1, 291, 292, 293,
17245 -1, 295, 296, 297, 298, 299, 300, 301, 302, 303,
17246 304, -1, -1, -1, -1, 309, 310, -1, 312, 313,
17247 314, -1, 316, 317, 318, -1, 320, 321, 322, 323,
17248 324, 325, -1, 327, 328, 329, 330, 331, 332, 333,
17249 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
17250 344, 345, 346, 347, 348, -1, 350, 351, 352, 353,
17251 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
17252 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
17253 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
17254 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
17255 394, 395, 396, 397, 398, 399, -1, 401, -1, 403,
17256 404, -1, 406, 407, 408, 409, 410, 411, 412, -1,
17257 414, 415, -1, -1, 418, 419, -1, 421, -1, -1,
17258 424, 425, 426, 427, 428, 429, 430, 431, 432, -1,
17259 434, 435, 436, -1, 438, 439, 440, 441, -1, 443,
17260 444, 445, 446, 447, -1, 449, -1, 451, 452, 453,
17261 454, 455, 456, 457, -1, -1, 460, -1, -1, 463,
17262 464, 465, 466, 467, 468, 3, -1, -1, -1, -1,
17263 -1, -1, -1, -1, -1, -1, 480, 481, 482, 483,
17264 -1, -1, -1, -1, 22, 23, 24, 25, 26, 27,
17265 28, 29, -1, 31, 32, 33, -1, -1, -1, 37,
17266 -1, -1, -1, -1, 42, 43, 44, -1, 46, 47,
17267 48, 49, 50, 51, 52, -1, 54, 55, 56, 57,
17268 -1, 59, 60, 61, 62, 63, 64, -1, -1, 67,
17269 68, 69, 70, 71, -1, 73, 74, 75, 76, -1,
17270 -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
17271 88, 89, 90, -1, 92, 93, 94, 95, 96, 97,
17272 -1, 99, 100, 101, 102, 103, 104, 105, 106, 107,
17273 108, 109, 110, 111, 112, -1, 114, -1, 116, 117,
17274 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
17275 -1, -1, 130, 131, 132, 133, 134, -1, 136, 137,
17276 138, -1, 140, 141, 142, -1, 144, 145, 146, 147,
17277 -1, 149, 150, 151, 152, 153, -1, -1, 156, -1,
17278 158, 159, 160, 161, -1, 163, -1, 165, 166, -1,
17279 168, 169, 170, 171, 172, 173, -1, 175, -1, -1,
17280 -1, 179, -1, 181, 182, 183, 184, 185, 186, 187,
17281 188, 189, 190, 191, 192, -1, 194, 195, 196, 197,
17282 198, 199, 200, -1, 202, 203, -1, 205, 206, 207,
17283 208, 209, 210, 211, -1, 213, -1, 215, 216, 217,
17284 218, 219, 220, 221, 222, 223, 224, 225, -1, -1,
17285 228, 229, 230, 231, -1, 233, 234, 235, 236, 237,
17286 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
17287 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
17288 258, 259, 260, 261, 262, 263, 264, 265, -1, -1,
17289 268, 269, 270, 271, -1, -1, 274, 275, 276, 277,
17290 278, -1, 280, 281, -1, -1, 284, 285, 286, -1,
17291 -1, 289, -1, 291, 292, 293, -1, 295, 296, 297,
17292 298, 299, 300, 301, 302, 303, 304, -1, -1, -1,
17293 -1, 309, 310, -1, 312, 313, 314, -1, 316, 317,
17294 318, -1, 320, 321, 322, 323, 324, 325, -1, 327,
17295 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
17296 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
17297 348, -1, 350, 351, 352, 353, 354, 355, -1, 357,
17298 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
17299 -1, 369, 370, 371, 372, 373, 374, 375, -1, 377,
17300 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
17301 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
17302 398, 399, -1, 401, -1, 403, 404, -1, 406, 407,
17303 408, 409, 410, 411, 412, -1, 414, 415, -1, -1,
17304 418, 419, -1, 421, -1, -1, 424, 425, 426, 427,
17305 428, 429, 430, 431, -1, -1, 434, 435, 436, -1,
17306 438, 439, 440, 441, -1, 443, 444, 445, 446, 447,
17307 -1, 449, -1, 451, 452, 453, 454, 455, 456, 457,
17308 -1, -1, 460, -1, -1, 463, 464, 465, 466, 467,
17309 468, 3, -1, -1, -1, -1, -1, -1, -1, -1,
17310 -1, -1, 480, 481, 482, 483, -1, -1, -1, -1,
17311 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
17312 32, 33, -1, -1, -1, -1, -1, -1, -1, -1,
17313 -1, 43, 44, -1, 46, 47, 48, -1, 50, 51,
17314 52, 53, 54, -1, 56, 57, -1, 59, 60, 61,
17315 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
17316 -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
17317 82, 83, 84, 85, 86, -1, 88, 89, 90, -1,
17318 92, 93, 94, 95, 96, 97, -1, -1, 100, 101,
17319 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
17320 112, -1, 114, -1, 116, 117, 118, 119, 120, 121,
17321 -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
17322 132, 133, 134, -1, 136, 137, 138, -1, 140, 141,
17323 142, -1, 144, 145, 146, 147, 148, 149, 150, 151,
17324 152, 153, 154, -1, 156, -1, 158, 159, 160, 161,
17325 -1, 163, -1, 165, -1, -1, -1, 169, 170, 171,
17326 -1, 173, -1, 175, -1, 177, 178, 179, -1, 181,
17327 182, 183, 184, 185, 186, 187, -1, 189, 190, 191,
17328 192, -1, 194, 195, 196, 197, 198, 199, 200, -1,
17329 202, -1, 204, 205, 206, 207, 208, 209, 210, 211,
17330 -1, 213, -1, 215, -1, -1, 218, -1, 220, 221,
17331 222, 223, 224, 225, -1, -1, 228, -1, 230, -1,
17332 -1, 233, 234, 235, 236, 237, 238, 239, 240, 241,
17333 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
17334 252, 253, 254, 255, 256, 257, 258, 259, 260, -1,
17335 262, 263, 264, 265, 266, -1, 268, 269, -1, 271,
17336 -1, 273, 274, 275, 276, 277, 278, -1, 280, 281,
17337 -1, -1, 284, 285, 286, -1, -1, 289, 290, -1,
17338 292, -1, 294, 295, 296, 297, 298, 299, 300, -1,
17339 302, 303, 304, -1, -1, -1, -1, 309, 310, 311,
17340 -1, 313, 314, 315, 316, 317, 318, -1, 320, 321,
17341 322, 323, 324, 325, -1, 327, -1, 329, 330, 331,
17342 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
17343 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
17344 -1, 353, 354, 355, 356, -1, 358, 359, 360, 361,
17345 362, 363, 364, 365, 366, 367, -1, -1, 370, 371,
17346 372, 373, 374, 375, 376, 377, 378, 379, -1, 381,
17347 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
17348 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
17349 -1, 403, 404, -1, 406, -1, 408, 409, 410, 411,
17350 412, -1, 414, 415, -1, -1, 418, 419, 420, 421,
17351 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
17352 -1, -1, 434, 435, 436, -1, 438, 439, 440, 441,
17353 -1, 443, 444, 445, 446, 447, 448, 449, -1, 451,
17354 -1, 453, 454, 455, 456, 457, -1, -1, 460, -1,
17355 -1, 463, 464, 465, 466, 467, 468, 469, 470, 471,
17356 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
17357 482, 483, 3, -1, -1, -1, -1, -1, -1, -1,
17358 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17359 -1, 22, 23, 24, 25, 26, 27, 28, 29, -1,
17360 31, 32, 33, -1, -1, -1, 37, -1, -1, -1,
17361 -1, 42, 43, 44, -1, 46, 47, 48, 49, 50,
17362 51, 52, -1, 54, 55, 56, 57, -1, 59, 60,
17363 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
17364 71, -1, 73, 74, 75, 76, -1, -1, 79, -1,
17365 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
17366 -1, 92, 93, 94, 95, 96, 97, -1, 99, 100,
17367 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
17368 111, 112, -1, 114, -1, 116, 117, 118, 119, 120,
17369 121, -1, 123, 124, 125, 126, 127, -1, -1, 130,
17370 131, 132, 133, 134, -1, 136, 137, 138, -1, 140,
17371 141, 142, -1, 144, 145, 146, 147, -1, 149, 150,
17372 151, 152, 153, -1, -1, 156, -1, 158, 159, 160,
17373 161, -1, 163, -1, 165, 166, -1, 168, 169, 170,
17374 -1, 172, 173, -1, 175, -1, -1, -1, 179, -1,
17375 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
17376 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
17377 -1, 202, 203, -1, 205, 206, 207, 208, 209, 210,
17378 211, -1, 213, -1, 215, 216, 217, 218, 219, 220,
17379 221, 222, 223, 224, 225, -1, -1, 228, 229, 230,
17380 231, -1, 233, 234, 235, 236, 237, 238, 239, 240,
17381 -1, 242, 243, 244, 245, 246, 247, 248, 249, 250,
17382 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
17383 261, 262, 263, 264, 265, -1, -1, 268, 269, 270,
17384 271, -1, -1, 274, 275, 276, 277, 278, -1, 280,
17385 281, -1, -1, 284, 285, 286, -1, -1, 289, -1,
17386 291, 292, 293, -1, 295, 296, 297, 298, 299, 300,
17387 301, 302, 303, 304, -1, -1, -1, -1, 309, 310,
17388 -1, 312, 313, 314, -1, 316, 317, 318, -1, 320,
17389 321, 322, 323, 324, 325, -1, 327, 328, 329, 330,
17390 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
17391 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
17392 351, 352, 353, 354, 355, -1, 357, 358, 359, 360,
17393 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
17394 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
17395 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
17396 391, 392, 393, 394, 395, 396, 397, -1, 399, -1,
17397 401, -1, 403, 404, -1, 406, 407, 408, 409, 410,
17398 411, 412, -1, 414, 415, -1, -1, 418, 419, -1,
17399 421, -1, -1, 424, 425, 426, 427, 428, 429, 430,
17400 431, -1, -1, 434, 435, 436, -1, 438, 439, 440,
17401 441, -1, 443, 444, 445, 446, 447, -1, 449, -1,
17402 451, 452, 453, 454, 455, 456, 457, -1, 22, 460,
17403 -1, -1, 463, 464, 465, 466, 467, 468, 32, -1,
17404 34, 35, -1, -1, -1, 22, -1, -1, -1, 480,
17405 481, 482, 483, -1, -1, 32, -1, -1, 52, -1,
17406 -1, -1, -1, -1, -1, -1, -1, 61, -1, -1,
17407 -1, -1, -1, -1, -1, 52, -1, -1, -1, 73,
17408 -1, -1, -1, -1, 61, -1, -1, -1, -1, -1,
17409 84, -1, -1, -1, -1, -1, 73, -1, -1, -1,
17410 -1, -1, 96, -1, 98, -1, -1, 84, -1, -1,
17411 -1, -1, -1, -1, -1, 109, -1, -1, -1, 96,
17412 -1, 98, -1, -1, -1, -1, -1, -1, -1, 123,
17413 -1, -1, 109, -1, -1, -1, -1, -1, -1, 133,
17414 -1, -1, -1, -1, -1, 139, 123, -1, -1, -1,
17415 -1, -1, -1, 147, -1, -1, 133, -1, -1, -1,
17416 -1, -1, 139, -1, -1, -1, -1, -1, -1, 163,
17417 147, -1, -1, 167, -1, -1, -1, -1, -1, -1,
17418 -1, -1, -1, -1, -1, -1, 163, -1, -1, -1,
17419 167, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17420 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17421 -1, -1, -1, -1, 208, -1, -1, -1, -1, -1,
17422 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17423 -1, 208, -1, -1, -1, -1, -1, -1, -1, -1,
17424 234, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17425 -1, -1, -1, -1, -1, -1, -1, 234, -1, -1,
17426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17427 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17431 -1, 305, 306, 307, -1, -1, -1, -1, -1, 313,
17432 -1, -1, 316, -1, -1, -1, -1, -1, 305, 306,
17433 307, -1, -1, -1, -1, -1, 313, -1, -1, 316,
17434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17435 -1, 345, -1, -1, -1, -1, -1, -1, -1, -1,
17436 354, -1, -1, -1, -1, -1, -1, -1, 345, -1,
17437 -1, -1, -1, -1, 368, -1, -1, 354, -1, -1,
17438 -1, 375, -1, -1, -1, 379, -1, -1, -1, -1,
17439 -1, 368, -1, -1, -1, 389, -1, -1, 375, -1,
17440 -1, -1, 379, -1, -1, -1, -1, 401, -1, -1,
17441 -1, 405, 389, -1, -1, -1, -1, -1, -1, -1,
17442 -1, -1, -1, -1, 401, -1, -1, -1, 405, -1,
17443 424, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17444 -1, -1, -1, 437, -1, -1, -1, 424, -1, 443,
17445 -1, -1, -1, -1, 448, -1, -1, -1, 452, -1,
17446 437, -1, -1, -1, -1, -1, 443, -1, 462, -1,
17447 -1, 448, -1, -1, -1, -1, -1, -1, -1, -1,
17448 -1, -1, -1, -1, -1, 462, -1, -1, -1, -1,
17449 -1, -1, 486, -1, -1, -1, -1, -1, -1, -1,
17450 -1, -1, -1, -1, -1, -1, 500, -1, -1, 486,
17451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17452 -1, -1, -1, 500
17453};
17454
17455/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
17456 symbol of state STATE-NUM. */
17457static const yytype_uint16 yystos[] =
17458{
17459 0, 22, 32, 34, 35, 47, 52, 61, 73, 84,
17460 96, 98, 109, 123, 124, 133, 139, 147, 149, 150,
17461 163, 167, 192, 208, 234, 305, 306, 307, 313, 316,
17462 345, 354, 368, 375, 379, 389, 401, 405, 424, 437,
17463 440, 443, 448, 462, 486, 500, 512, 513, 514, 515,
17464 526, 535, 537, 542, 558, 561, 562, 564, 566, 573,
17465 575, 576, 624, 631, 634, 635, 652, 653, 654, 655,
17466 657, 659, 660, 664, 716, 717, 876, 879, 882, 889,
17467 890, 892, 893, 894, 901, 905, 911, 913, 918, 922,
17468 923, 924, 927, 930, 931, 935, 936, 938, 418, 465,
17469 574, 197, 361, 370, 405, 454, 106, 925, 574, 3,
17470 22, 23, 24, 25, 26, 27, 28, 29, 31, 32,
17471 33, 42, 43, 44, 46, 47, 48, 49, 50, 51,
17472 52, 53, 54, 55, 56, 57, 59, 60, 61, 62,
17473 63, 64, 67, 68, 69, 70, 71, 73, 74, 75,
17474 76, 77, 79, 81, 82, 83, 84, 85, 86, 87,
17475 88, 89, 90, 92, 93, 94, 95, 96, 97, 99,
17476 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
17477 110, 111, 112, 114, 116, 117, 118, 119, 120, 121,
17478 123, 124, 125, 126, 127, 130, 131, 132, 133, 134,
17479 136, 137, 138, 140, 141, 142, 144, 145, 146, 147,
17480 148, 149, 150, 151, 152, 153, 154, 156, 158, 159,
17481 160, 161, 163, 165, 166, 168, 169, 170, 171, 172,
17482 173, 175, 177, 178, 179, 181, 182, 183, 184, 185,
17483 186, 187, 188, 189, 190, 191, 192, 194, 195, 196,
17484 197, 198, 199, 200, 202, 203, 204, 205, 206, 207,
17485 208, 209, 210, 211, 213, 215, 216, 217, 218, 219,
17486 220, 221, 222, 223, 224, 225, 228, 229, 230, 231,
17487 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
17488 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
17489 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
17490 263, 264, 265, 266, 268, 269, 270, 271, 273, 274,
17491 275, 276, 277, 278, 280, 281, 284, 285, 286, 289,
17492 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
17493 300, 301, 302, 303, 304, 309, 310, 311, 312, 313,
17494 314, 315, 316, 317, 318, 320, 321, 322, 323, 324,
17495 325, 327, 328, 329, 330, 331, 332, 333, 334, 336,
17496 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
17497 347, 348, 350, 351, 352, 353, 354, 355, 356, 357,
17498 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
17499 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
17500 380, 381, 382, 383, 384, 386, 387, 388, 389, 390,
17501 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
17502 401, 403, 404, 406, 407, 408, 409, 410, 411, 412,
17503 414, 415, 418, 419, 420, 421, 422, 424, 425, 426,
17504 427, 428, 429, 430, 431, 434, 435, 436, 438, 439,
17505 440, 441, 443, 444, 445, 446, 447, 448, 449, 451,
17506 452, 453, 454, 455, 456, 457, 460, 463, 464, 465,
17507 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
17508 476, 477, 478, 479, 480, 481, 482, 483, 528, 786,
17509 865, 869, 941, 942, 943, 3, 171, 241, 398, 528,
17510 891, 941, 574, 55, 500, 647, 173, 235, 287, 361,
17511 409, 411, 427, 433, 436, 622, 888, 5, 30, 316,
17512 528, 529, 864, 106, 925, 24, 79, 95, 142, 152,
17513 164, 169, 197, 240, 244, 310, 325, 358, 361, 370,
17514 373, 391, 405, 412, 421, 427, 454, 625, 626, 629,
17515 574, 864, 452, 500, 515, 526, 535, 537, 558, 561,
17516 562, 564, 566, 573, 576, 624, 631, 634, 635, 652,
17517 876, 879, 882, 889, 890, 897, 901, 905, 911, 913,
17518 918, 927, 930, 935, 936, 938, 106, 73, 208, 66,
17519 77, 79, 154, 226, 273, 283, 294, 311, 357, 400,
17520 420, 422, 426, 448, 500, 527, 528, 529, 653, 717,
17521 719, 721, 731, 738, 739, 786, 788, 789, 106, 5,
17522 528, 530, 912, 912, 528, 864, 30, 414, 418, 528,
17523 928, 929, 933, 574, 30, 128, 672, 673, 173, 235,
17524 361, 374, 414, 906, 907, 933, 574, 528, 652, 664,
17525 934, 528, 738, 405, 669, 527, 168, 500, 915, 500,
17526 333, 665, 666, 864, 665, 653, 654, 0, 503, 118,
17527 207, 439, 143, 212, 288, 432, 675, 676, 721, 721,
17528 653, 655, 657, 504, 452, 895, 30, 414, 418, 652,
17529 934, 186, 527, 864, 186, 527, 186, 738, 186, 527,
17530 530, 498, 502, 531, 532, 500, 652, 527, 409, 411,
17531 409, 411, 343, 186, 527, 527, 169, 240, 333, 370,
17532 405, 454, 632, 197, 30, 864, 186, 3, 246, 421,
17533 105, 405, 405, 454, 364, 3, 37, 42, 49, 54,
17534 55, 56, 57, 69, 70, 79, 81, 87, 99, 110,
17535 111, 132, 160, 166, 168, 172, 186, 188, 203, 210,
17536 211, 213, 216, 217, 219, 229, 231, 241, 260, 261,
17537 262, 270, 275, 291, 293, 312, 330, 352, 356, 369,
17538 376, 380, 383, 398, 407, 414, 415, 426, 432, 449,
17539 452, 630, 749, 751, 753, 755, 757, 759, 761, 762,
17540 763, 765, 766, 767, 769, 770, 870, 941, 944, 186,
17541 528, 627, 871, 186, 861, 864, 186, 864, 500, 565,
17542 897, 3, 37, 42, 49, 53, 54, 55, 56, 57,
17543 69, 70, 77, 79, 81, 87, 99, 110, 111, 148,
17544 154, 160, 166, 168, 171, 172, 177, 178, 188, 203,
17545 204, 210, 211, 213, 216, 217, 219, 229, 231, 241,
17546 260, 261, 262, 266, 270, 273, 275, 290, 291, 293,
17547 294, 311, 312, 315, 330, 352, 356, 369, 376, 380,
17548 383, 398, 400, 407, 414, 415, 420, 422, 426, 448,
17549 449, 452, 469, 470, 471, 472, 473, 474, 475, 476,
17550 477, 478, 479, 898, 900, 901, 903, 904, 941, 945,
17551 895, 528, 530, 891, 912, 500, 500, 162, 500, 653,
17552 739, 500, 500, 527, 500, 500, 167, 500, 500, 500,
17553 500, 653, 717, 721, 731, 493, 531, 40, 528, 732,
17554 733, 732, 368, 504, 656, 37, 42, 99, 168, 203,
17555 219, 229, 261, 305, 312, 352, 369, 437, 735, 733,
17556 40, 528, 732, 734, 486, 743, 530, 489, 500, 500,
17557 877, 483, 218, 502, 282, 4, 6, 7, 8, 9,
17558 10, 39, 54, 56, 57, 65, 69, 70, 81, 110,
17559 111, 113, 148, 155, 160, 177, 178, 210, 211, 213,
17560 241, 260, 262, 267, 272, 275, 284, 330, 356, 383,
17561 414, 415, 423, 449, 484, 491, 492, 493, 498, 500,
17562 505, 506, 507, 508, 528, 530, 653, 706, 754, 757,
17563 760, 761, 762, 764, 765, 766, 769, 770, 781, 783,
17564 784, 785, 786, 787, 789, 790, 804, 805, 816, 838,
17565 843, 851, 852, 853, 865, 866, 867, 850, 852, 906,
17566 906, 530, 906, 483, 167, 416, 489, 502, 531, 738,
17567 919, 3, 166, 168, 452, 901, 914, 916, 166, 917,
17568 781, 822, 823, 665, 504, 500, 873, 501, 501, 514,
17569 167, 287, 545, 919, 30, 128, 670, 670, 59, 670,
17570 157, 162, 232, 279, 681, 683, 684, 709, 711, 712,
17571 713, 176, 282, 442, 282, 675, 676, 500, 527, 406,
17572 932, 483, 218, 148, 26, 32, 133, 286, 341, 345,
17573 375, 445, 520, 523, 524, 341, 148, 40, 60, 104,
17574 196, 245, 253, 265, 296, 341, 347, 370, 375, 389,
17575 523, 567, 570, 148, 341, 375, 523, 148, 341, 375,
17576 523, 40, 926, 781, 844, 3, 30, 34, 35, 36,
17577 38, 39, 40, 41, 45, 58, 65, 66, 72, 78,
17578 80, 91, 98, 113, 115, 122, 128, 129, 135, 139,
17579 143, 155, 157, 162, 164, 167, 174, 176, 180, 193,
17580 201, 212, 214, 226, 227, 232, 267, 272, 279, 282,
17581 283, 287, 288, 305, 306, 307, 308, 319, 326, 335,
17582 349, 368, 385, 402, 405, 413, 416, 417, 423, 432,
17583 433, 437, 442, 448, 450, 458, 459, 461, 462, 533,
17584 534, 941, 945, 947, 532, 3, 30, 37, 42, 49,
17585 55, 79, 81, 87, 99, 128, 166, 168, 171, 172,
17586 188, 203, 216, 217, 219, 229, 231, 241, 261, 270,
17587 291, 293, 312, 352, 369, 380, 398, 407, 426, 450,
17588 452, 501, 781, 825, 826, 868, 874, 941, 946, 501,
17589 500, 611, 361, 622, 267, 880, 40, 454, 186, 527,
17590 186, 527, 940, 186, 527, 186, 527, 87, 885, 148,
17591 466, 88, 125, 299, 410, 451, 768, 768, 768, 500,
17592 756, 756, 315, 500, 758, 148, 500, 69, 70, 768,
17593 756, 753, 464, 486, 500, 771, 500, 771, 500, 63,
17594 348, 504, 628, 500, 39, 752, 500, 107, 108, 183,
17595 184, 247, 248, 249, 250, 251, 252, 255, 256, 365,
17596 366, 480, 481, 500, 772, 773, 774, 775, 776, 777,
17597 778, 779, 780, 756, 148, 502, 872, 504, 628, 148,
17598 504, 628, 148, 282, 823, 501, 504, 4, 155, 282,
17599 423, 491, 492, 530, 569, 572, 867, 896, 898, 899,
17600 902, 897, 416, 500, 642, 646, 781, 823, 500, 3,
17601 530, 772, 773, 774, 775, 776, 777, 778, 779, 828,
17602 829, 733, 734, 781, 527, 781, 830, 491, 492, 528,
17603 782, 783, 805, 816, 832, 500, 781, 822, 833, 781,
17604 58, 167, 227, 417, 781, 823, 836, 781, 501, 529,
17605 500, 407, 689, 690, 690, 672, 673, 721, 214, 667,
17606 219, 37, 219, 369, 735, 219, 291, 736, 721, 736,
17607 219, 735, 500, 219, 736, 219, 144, 194, 723, 219,
17608 690, 500, 529, 500, 690, 289, 569, 902, 908, 910,
17609 825, 751, 827, 40, 230, 528, 500, 498, 653, 781,
17610 842, 500, 653, 508, 781, 500, 500, 781, 781, 781,
17611 144, 854, 855, 781, 823, 824, 653, 781, 822, 9,
17612 534, 529, 806, 807, 808, 502, 531, 845, 531, 500,
17613 530, 500, 530, 867, 3, 8, 11, 15, 16, 17,
17614 18, 19, 20, 21, 36, 40, 46, 53, 78, 172,
17615 188, 193, 216, 217, 231, 267, 270, 284, 287, 380,
17616 484, 487, 488, 489, 491, 492, 493, 494, 495, 496,
17617 814, 815, 816, 818, 848, 463, 791, 293, 781, 504,
17618 667, 500, 530, 667, 3, 113, 235, 530, 569, 770,
17619 909, 102, 113, 910, 113, 910, 528, 40, 528, 501,
17620 504, 895, 504, 501, 666, 861, 862, 40, 919, 187,
17621 343, 214, 375, 655, 655, 30, 677, 678, 781, 59,
17622 655, 671, 159, 264, 697, 221, 265, 329, 378, 439,
17623 4, 9, 30, 692, 781, 491, 492, 693, 694, 781,
17624 783, 709, 710, 684, 683, 681, 682, 162, 712, 277,
17625 714, 59, 661, 662, 663, 724, 782, 852, 852, 681,
17626 709, 823, 873, 230, 527, 72, 80, 91, 164, 186,
17627 319, 433, 528, 593, 603, 618, 80, 91, 536, 91,
17628 536, 500, 416, 500, 591, 239, 436, 591, 91, 504,
17629 416, 527, 753, 569, 59, 571, 569, 569, 104, 245,
17630 253, 59, 416, 462, 486, 568, 258, 361, 568, 570,
17631 738, 91, 416, 536, 361, 527, 416, 361, 528, 642,
17632 499, 510, 825, 825, 826, 504, 675, 676, 13, 14,
17633 416, 528, 610, 615, 462, 645, 527, 333, 370, 405,
17634 454, 632, 148, 98, 562, 576, 881, 882, 936, 140,
17635 751, 527, 267, 563, 567, 267, 500, 611, 40, 267,
17636 611, 267, 500, 633, 186, 528, 605, 886, 3, 500,
17637 824, 867, 630, 827, 768, 768, 39, 752, 414, 414,
17638 867, 867, 528, 748, 751, 748, 498, 498, 867, 867,
17639 416, 416, 416, 416, 627, 533, 502, 871, 861, 864,
17640 864, 871, 501, 897, 903, 4, 867, 4, 867, 530,
17641 534, 644, 651, 55, 100, 119, 137, 141, 163, 166,
17642 181, 272, 280, 301, 327, 648, 40, 501, 781, 501,
17643 167, 504, 501, 308, 831, 501, 782, 782, 11, 15,
17644 16, 19, 20, 21, 193, 216, 284, 487, 488, 489,
17645 491, 492, 493, 494, 495, 496, 816, 782, 501, 740,
17646 741, 788, 162, 167, 834, 835, 504, 501, 40, 836,
17647 823, 836, 836, 167, 501, 40, 732, 500, 862, 4,
17648 9, 528, 685, 687, 688, 852, 850, 173, 235, 405,
17649 409, 411, 436, 527, 668, 459, 744, 721, 721, 219,
17650 721, 282, 442, 737, 721, 219, 852, 721, 721, 274,
17651 274, 500, 721, 529, 745, 746, 500, 529, 745, 504,
17652 501, 504, 501, 504, 537, 634, 635, 652, 878, 918,
17653 823, 824, 458, 839, 840, 781, 781, 809, 810, 811,
17654 812, 8, 15, 16, 19, 20, 21, 487, 488, 489,
17655 491, 492, 493, 494, 495, 496, 528, 814, 819, 501,
17656 823, 500, 528, 343, 859, 162, 499, 501, 504, 510,
17657 504, 509, 493, 532, 823, 781, 780, 780, 751, 781,
17658 781, 781, 781, 781, 781, 781, 781, 5, 534, 875,
17659 414, 45, 402, 849, 871, 781, 781, 500, 653, 837,
17660 128, 155, 267, 272, 277, 423, 434, 781, 272, 500,
17661 781, 416, 53, 172, 188, 193, 231, 380, 781, 781,
17662 781, 781, 781, 781, 781, 781, 781, 781, 30, 38,
17663 385, 813, 498, 502, 847, 176, 158, 792, 356, 500,
17664 805, 853, 167, 718, 825, 718, 500, 530, 528, 527,
17665 914, 527, 922, 781, 504, 501, 500, 442, 921, 527,
17666 539, 500, 528, 544, 554, 555, 557, 41, 122, 679,
17667 504, 442, 679, 258, 655, 356, 357, 491, 492, 694,
17668 696, 783, 378, 221, 283, 304, 304, 504, 495, 4,
17669 695, 867, 695, 356, 357, 696, 527, 860, 271, 382,
17670 715, 500, 862, 863, 504, 176, 442, 193, 176, 214,
17671 710, 682, 501, 341, 523, 500, 186, 603, 864, 221,
17672 267, 221, 442, 500, 596, 750, 751, 864, 528, 186,
17673 864, 186, 528, 26, 133, 375, 519, 522, 534, 587,
17674 601, 864, 534, 595, 614, 864, 520, 864, 341, 375,
17675 523, 567, 569, 871, 864, 569, 871, 864, 569, 341,
17676 375, 523, 864, 864, 864, 864, 341, 375, 523, 864,
17677 864, 781, 844, 675, 675, 675, 450, 826, 187, 346,
17678 674, 781, 781, 324, 641, 501, 504, 280, 167, 416,
17679 636, 880, 454, 527, 527, 940, 527, 527, 527, 287,
17680 622, 500, 653, 500, 148, 148, 231, 528, 593, 603,
17681 606, 609, 619, 621, 462, 464, 598, 147, 652, 148,
17682 462, 887, 148, 501, 825, 40, 267, 282, 823, 501,
17683 501, 628, 501, 498, 483, 483, 501, 501, 751, 501,
17684 504, 501, 867, 499, 867, 501, 501, 773, 775, 776,
17685 777, 776, 777, 777, 628, 533, 628, 282, 628, 642,
17686 493, 500, 569, 643, 902, 501, 504, 40, 640, 530,
17687 640, 267, 272, 327, 640, 59, 640, 751, 501, 781,
17688 781, 781, 834, 751, 782, 782, 782, 782, 782, 782,
17689 128, 267, 277, 782, 782, 782, 782, 782, 782, 782,
17690 782, 782, 782, 501, 504, 40, 742, 781, 781, 835,
17691 834, 751, 501, 501, 501, 823, 751, 862, 501, 304,
17692 495, 304, 357, 495, 500, 500, 667, 409, 411, 409,
17693 411, 527, 669, 669, 669, 781, 176, 698, 737, 737,
17694 721, 781, 500, 721, 162, 737, 500, 529, 728, 737,
17695 751, 501, 504, 745, 501, 908, 751, 501, 499, 781,
17696 135, 840, 841, 501, 510, 504, 509, 502, 501, 501,
17697 862, 500, 781, 856, 528, 781, 781, 806, 855, 501,
17698 501, 483, 782, 782, 141, 823, 167, 128, 155, 272,
17699 277, 423, 434, 500, 141, 819, 781, 402, 849, 781,
17700 837, 781, 416, 500, 653, 781, 844, 533, 500, 500,
17701 151, 793, 719, 720, 744, 675, 744, 867, 780, 873,
17702 873, 878, 720, 459, 920, 40, 59, 540, 550, 557,
17703 845, 504, 718, 489, 485, 680, 678, 284, 814, 817,
17704 680, 4, 867, 696, 283, 439, 693, 504, 238, 862,
17705 661, 59, 852, 500, 529, 59, 258, 416, 781, 267,
17706 618, 500, 148, 500, 596, 197, 615, 616, 577, 40,
17707 171, 586, 612, 577, 26, 133, 345, 347, 375, 516,
17708 517, 518, 524, 525, 148, 628, 148, 628, 587, 601,
17709 587, 501, 504, 530, 580, 489, 502, 501, 504, 416,
17710 361, 91, 416, 536, 361, 416, 416, 416, 361, 499,
17711 674, 674, 674, 826, 274, 274, 501, 392, 393, 530,
17712 650, 610, 641, 527, 563, 500, 40, 611, 633, 880,
17713 343, 405, 530, 559, 560, 615, 527, 527, 940, 527,
17714 501, 504, 280, 591, 280, 282, 590, 864, 462, 939,
17715 527, 591, 40, 527, 501, 405, 781, 148, 527, 501,
17716 752, 867, 771, 771, 752, 528, 752, 499, 499, 871,
17717 638, 649, 902, 644, 530, 530, 272, 615, 493, 615,
17718 530, 493, 615, 530, 501, 501, 835, 167, 128, 277,
17719 500, 743, 740, 500, 501, 501, 501, 528, 685, 744,
17720 669, 669, 669, 669, 527, 527, 527, 59, 180, 707,
17721 737, 862, 500, 725, 726, 727, 784, 865, 862, 162,
17722 78, 747, 746, 501, 413, 781, 139, 781, 809, 819,
17723 501, 781, 856, 857, 858, 40, 193, 501, 859, 780,
17724 781, 36, 36, 781, 501, 781, 167, 500, 827, 781,
17725 501, 141, 782, 782, 141, 141, 781, 781, 499, 510,
17726 500, 846, 676, 459, 781, 292, 797, 504, 698, 674,
17727 698, 501, 501, 781, 349, 548, 528, 258, 311, 113,
17728 295, 500, 538, 652, 501, 504, 544, 920, 781, 159,
17729 225, 500, 680, 283, 527, 501, 863, 176, 653, 654,
17730 852, 863, 864, 864, 501, 148, 616, 603, 616, 577,
17731 605, 504, 501, 115, 201, 265, 267, 602, 500, 33,
17732 59, 623, 612, 72, 78, 91, 113, 115, 201, 267,
17733 272, 319, 335, 433, 442, 582, 583, 597, 171, 113,
17734 185, 267, 591, 568, 105, 113, 171, 267, 391, 394,
17735 570, 591, 375, 518, 427, 864, 528, 522, 3, 37,
17736 42, 49, 55, 79, 81, 87, 99, 166, 168, 171,
17737 172, 188, 203, 216, 217, 219, 229, 231, 241, 261,
17738 266, 270, 284, 291, 293, 312, 352, 369, 376, 380,
17739 398, 407, 426, 432, 452, 491, 492, 530, 569, 578,
17740 617, 751, 817, 868, 941, 947, 534, 614, 864, 864,
17741 864, 864, 864, 864, 864, 864, 864, 864, 501, 501,
17742 501, 675, 568, 650, 500, 609, 652, 887, 40, 622,
17743 186, 527, 501, 504, 501, 563, 500, 40, 600, 598,
17744 606, 84, 565, 105, 265, 611, 652, 633, 652, 605,
17745 442, 884, 499, 751, 628, 501, 504, 615, 782, 167,
17746 500, 827, 745, 501, 504, 501, 698, 527, 527, 527,
17747 527, 30, 101, 177, 355, 500, 699, 700, 701, 702,
17748 703, 704, 705, 781, 781, 461, 794, 501, 783, 820,
17749 821, 193, 176, 722, 726, 500, 501, 728, 729, 730,
17750 871, 781, 504, 501, 528, 781, 783, 781, 781, 781,
17751 827, 501, 781, 36, 36, 781, 781, 141, 501, 844,
17752 501, 825, 501, 781, 501, 500, 528, 798, 707, 501,
17753 707, 530, 851, 448, 404, 441, 549, 528, 543, 553,
17754 282, 546, 489, 557, 548, 819, 59, 501, 501, 447,
17755 448, 658, 577, 603, 501, 501, 462, 608, 116, 189,
17756 199, 115, 444, 781, 113, 40, 500, 871, 864, 782,
17757 116, 189, 115, 272, 221, 527, 608, 86, 623, 186,
17758 272, 569, 781, 623, 272, 491, 492, 572, 528, 751,
17759 628, 628, 241, 398, 868, 872, 489, 416, 416, 674,
17760 642, 442, 637, 639, 615, 501, 939, 40, 405, 781,
17761 405, 267, 500, 530, 887, 609, 147, 652, 145, 195,
17762 590, 118, 133, 318, 939, 105, 887, 462, 937, 40,
17763 282, 528, 883, 500, 649, 782, 827, 501, 501, 9,
17764 342, 691, 707, 500, 377, 500, 501, 504, 528, 795,
17765 796, 326, 708, 504, 501, 500, 529, 59, 501, 825,
17766 193, 501, 729, 856, 499, 186, 501, 781, 781, 781,
17767 499, 501, 501, 528, 799, 794, 530, 794, 504, 447,
17768 845, 501, 504, 89, 548, 781, 501, 863, 863, 335,
17769 608, 500, 599, 577, 501, 185, 500, 781, 267, 583,
17770 608, 611, 864, 40, 148, 747, 872, 495, 578, 864,
17771 864, 501, 568, 120, 501, 598, 652, 652, 527, 148,
17772 40, 501, 864, 939, 30, 83, 92, 114, 185, 198,
17773 391, 394, 594, 594, 357, 357, 40, 64, 72, 235,
17774 405, 781, 527, 500, 528, 547, 556, 788, 501, 501,
17775 500, 794, 823, 500, 823, 701, 40, 504, 781, 442,
17776 686, 783, 852, 862, 733, 675, 500, 733, 781, 301,
17777 800, 708, 708, 652, 295, 652, 543, 282, 500, 541,
17778 527, 577, 534, 604, 607, 395, 456, 584, 585, 500,
17779 579, 781, 501, 243, 620, 185, 442, 521, 495, 427,
17780 642, 530, 887, 590, 937, 500, 527, 652, 598, 565,
17781 652, 72, 285, 72, 652, 884, 781, 78, 551, 501,
17782 504, 551, 9, 708, 501, 700, 501, 798, 796, 359,
17783 501, 674, 852, 499, 59, 675, 686, 686, 549, 91,
17784 556, 129, 611, 489, 501, 504, 567, 501, 265, 592,
17785 168, 300, 381, 282, 588, 589, 613, 579, 781, 427,
17786 40, 500, 937, 590, 939, 937, 285, 285, 500, 501,
17787 871, 552, 871, 887, 547, 552, 501, 686, 501, 688,
17788 501, 501, 822, 328, 357, 801, 447, 864, 501, 268,
17789 439, 620, 578, 607, 501, 585, 199, 118, 439, 282,
17790 613, 282, 588, 652, 556, 551, 679, 744, 679, 53,
17791 102, 429, 781, 802, 803, 802, 501, 652, 744, 375,
17792 589, 63, 265, 348, 375, 581, 581, 937, 501, 552,
17793 680, 680, 803, 356, 161, 314, 161, 314, 555, 577,
17794 25, 113, 272, 887, 679, 36, 744, 744, 680, 803
17795};
17796
17797#define yyerrok (yyerrstatus = 0)
17798#define yyclearin (yychar = YYEMPTY)
17799#define YYEMPTY (-2)
17800#define YYEOF 0
17801
17802#define YYACCEPT goto yyacceptlab
17803#define YYABORT goto yyabortlab
17804#define YYERROR goto yyerrorlab
17805
17806
17807/* Like YYERROR except do call yyerror. This remains here temporarily
17808 to ease the transition to the new meaning of YYERROR, for GCC.
17809 Once GCC version 2 has supplanted version 1, this can go. */
17810
17811#define YYFAIL goto yyerrlab
17812
17813#define YYRECOVERING() (!!yyerrstatus)
17814
17815#define YYBACKUP(Token, Value) \
17816do \
17817 if (yychar == YYEMPTY && yylen == 1) \
17818 { \
17819 yychar = (Token); \
17820 yylval = (Value); \
17821 yytoken = YYTRANSLATE (yychar); \
17822 YYPOPSTACK (1); \
17823 goto yybackup; \
17824 } \
17825 else \
17826 { \
17827 yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \
17828 YYERROR; \
17829 } \
17830while (YYID (0))
17831
17832
17833#define YYTERROR 1
17834#define YYERRCODE 256
17835
17836
17837/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
17838 If N is 0, then set CURRENT to the empty location which ends
17839 the previous symbol: RHS[0] (always defined). */
17840
17841#define YYRHSLOC(Rhs, K) ((Rhs)[K])
17842#ifndef YYLLOC_DEFAULT
17843# define YYLLOC_DEFAULT(Current, Rhs, N) \
17844 do \
17845 if (YYID (N)) \
17846 { \
17847 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
17848 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
17849 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
17850 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
17851 } \
17852 else \
17853 { \
17854 (Current).first_line = (Current).last_line = \
17855 YYRHSLOC (Rhs, 0).last_line; \
17856 (Current).first_column = (Current).last_column = \
17857 YYRHSLOC (Rhs, 0).last_column; \
17858 } \
17859 while (YYID (0))
17860#endif
17861
17862
17863/* YY_LOCATION_PRINT -- Print the location on the stream.
17864 This macro was not mandated originally: define only if we know
17865 we won't break user code: when these are the locations we know. */
17866
17867#ifndef YY_LOCATION_PRINT
17868# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
17869# define YY_LOCATION_PRINT(File, Loc) \
17870 fprintf (File, "%d.%d-%d.%d", \
17871 (Loc).first_line, (Loc).first_column, \
17872 (Loc).last_line, (Loc).last_column)
17873# else
17874# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
17875# endif
17876#endif
17877
17878
17879/* YYLEX -- calling `yylex' with the right arguments. */
17880
17881#ifdef YYLEX_PARAM
17882# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
17883#else
17884# define YYLEX yylex (&yylval, &yylloc, yyscanner)
17885#endif
17886
17887/* Enable debugging if requested. */
17888#if YYDEBUG
17889
17890# ifndef YYFPRINTF
17891# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
17892# define YYFPRINTF fprintf
17893# endif
17894
17895# define YYDPRINTF(Args) \
17896do { \
17897 if (yydebug) \
17898 YYFPRINTF Args; \
17899} while (YYID (0))
17900
17901# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
17902do { \
17903 if (yydebug) \
17904 { \
17905 YYFPRINTF (stderr, "%s ", Title); \
17906 yy_symbol_print (stderr, \
17907 Type, Value, Location, yyscanner); \
17908 YYFPRINTF (stderr, "\n"); \
17909 } \
17910} while (YYID (0))
17911
17912
17913/*--------------------------------.
17914| Print this symbol on YYOUTPUT. |
17915`--------------------------------*/
17916
17917/*ARGSUSED*/
17918#if (defined __STDC__ || defined __C99__FUNC__ \
17919 || defined __cplusplus || defined _MSC_VER)
17920static void
17921yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
17922#else
17923static void
17924yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner)
17925 FILE *yyoutput;
17926 int yytype;
17927 YYSTYPE const * const yyvaluep;
17928 YYLTYPE const * const yylocationp;
17929 core_yyscan_t yyscanner;
17930#endif
17931{
17932 if (!yyvaluep)
17933 return;
17934 YYUSE (yylocationp);
17935 YYUSE (yyscanner);
17936# ifdef YYPRINT
17937 if (yytype < YYNTOKENS)
17938 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
17939# else
17940 YYUSE (yyoutput);
17941# endif
17942 switch (yytype)
17943 {
17944 default:
17945 break;
17946 }
17947}
17948
17949
17950/*--------------------------------.
17951| Print this symbol on YYOUTPUT. |
17952`--------------------------------*/
17953
17954#if (defined __STDC__ || defined __C99__FUNC__ \
17955 || defined __cplusplus || defined _MSC_VER)
17956static void
17957yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
17958#else
17959static void
17960yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner)
17961 FILE *yyoutput;
17962 int yytype;
17963 YYSTYPE const * const yyvaluep;
17964 YYLTYPE const * const yylocationp;
17965 core_yyscan_t yyscanner;
17966#endif
17967{
17968 if (yytype < YYNTOKENS)
17969 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
17970 else
17971 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
17972
17973 YY_LOCATION_PRINT (yyoutput, *yylocationp);
17974 YYFPRINTF (yyoutput, ": ");
17975 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner);
17976 YYFPRINTF (yyoutput, ")");
17977}
17978
17979/*------------------------------------------------------------------.
17980| yy_stack_print -- Print the state stack from its BOTTOM up to its |
17981| TOP (included). |
17982`------------------------------------------------------------------*/
17983
17984#if (defined __STDC__ || defined __C99__FUNC__ \
17985 || defined __cplusplus || defined _MSC_VER)
17986static void
17987yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
17988#else
17989static void
17990yy_stack_print (bottom, top)
17991 yytype_int16 *bottom;
17992 yytype_int16 *top;
17993#endif
17994{
17995 YYFPRINTF (stderr, "Stack now");
17996 for (; bottom <= top; ++bottom)
17997 YYFPRINTF (stderr, " %d", *bottom);
17998 YYFPRINTF (stderr, "\n");
17999}
18000
18001# define YY_STACK_PRINT(Bottom, Top) \
18002do { \
18003 if (yydebug) \
18004 yy_stack_print ((Bottom), (Top)); \
18005} while (YYID (0))
18006
18007
18008/*------------------------------------------------.
18009| Report that the YYRULE is going to be reduced. |
18010`------------------------------------------------*/
18011
18012#if (defined __STDC__ || defined __C99__FUNC__ \
18013 || defined __cplusplus || defined _MSC_VER)
18014static void
18015yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner)
18016#else
18017static void
18018yy_reduce_print (yyvsp, yylsp, yyrule, yyscanner)
18019 YYSTYPE *yyvsp;
18020 YYLTYPE *yylsp;
18021 int yyrule;
18022 core_yyscan_t yyscanner;
18023#endif
18024{
18025 int yynrhs = yyr2[yyrule];
18026 int yyi;
18027 unsigned long int yylno = yyrline[yyrule];
18028 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
18029 yyrule - 1, yylno);
18030 /* The symbols being reduced. */
18031 for (yyi = 0; yyi < yynrhs; yyi++)
18032 {
18033 fprintf (stderr, " $%d = ", yyi + 1);
18034 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
18035 &(yyvsp[(yyi + 1) - (yynrhs)])
18036 , &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner);
18037 fprintf (stderr, "\n");
18038 }
18039}
18040
18041# define YY_REDUCE_PRINT(Rule) \
18042do { \
18043 if (yydebug) \
18044 yy_reduce_print (yyvsp, yylsp, Rule, yyscanner); \
18045} while (YYID (0))
18046
18047/* Nonzero means print parse trace. It is left uninitialized so that
18048 multiple parsers can coexist. */
18049int yydebug;
18050#else /* !YYDEBUG */
18051# define YYDPRINTF(Args)
18052# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
18053# define YY_STACK_PRINT(Bottom, Top)
18054# define YY_REDUCE_PRINT(Rule)
18055#endif /* !YYDEBUG */
18056
18057
18058/* YYINITDEPTH -- initial size of the parser's stacks. */
18059#ifndef YYINITDEPTH
18060# define YYINITDEPTH 200
18061#endif
18062
18063/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
18064 if the built-in stack extension method is used).
18065
18066 Do not make this value too large; the results are undefined if
18067 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
18068 evaluated with infinite-precision integer arithmetic. */
18069
18070#ifndef YYMAXDEPTH
18071# define YYMAXDEPTH 10000
18072#endif
18073
18074
18075
18076#if YYERROR_VERBOSE
18077
18078# ifndef yystrlen
18079# if defined __GLIBC__ && defined _STRING_H
18080# define yystrlen strlen
18081# else
18082/* Return the length of YYSTR. */
18083#if (defined __STDC__ || defined __C99__FUNC__ \
18084 || defined __cplusplus || defined _MSC_VER)
18085static YYSIZE_T
18086yystrlen (const char *yystr)
18087#else
18088static YYSIZE_T
18089yystrlen (yystr)
18090 const char *yystr;
18091#endif
18092{
18093 YYSIZE_T yylen;
18094 for (yylen = 0; yystr[yylen]; yylen++)
18095 continue;
18096 return yylen;
18097}
18098# endif
18099# endif
18100
18101# ifndef yystpcpy
18102# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
18103# define yystpcpy stpcpy
18104# else
18105/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
18106 YYDEST. */
18107#if (defined __STDC__ || defined __C99__FUNC__ \
18108 || defined __cplusplus || defined _MSC_VER)
18109static char *
18110yystpcpy (char *yydest, const char *yysrc)
18111#else
18112static char *
18113yystpcpy (yydest, yysrc)
18114 char *yydest;
18115 const char *yysrc;
18116#endif
18117{
18118 char *yyd = yydest;
18119 const char *yys = yysrc;
18120
18121 while ((*yyd++ = *yys++) != '\0')
18122 continue;
18123
18124 return yyd - 1;
18125}
18126# endif
18127# endif
18128
18129# ifndef yytnamerr
18130/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
18131 quotes and backslashes, so that it's suitable for yyerror. The
18132 heuristic is that double-quoting is unnecessary unless the string
18133 contains an apostrophe, a comma, or backslash (other than
18134 backslash-backslash). YYSTR is taken from yytname. If YYRES is
18135 null, do not copy; instead, return the length of what the result
18136 would have been. */
18137static YYSIZE_T
18138yytnamerr (char *yyres, const char *yystr)
18139{
18140 if (*yystr == '"')
18141 {
18142 YYSIZE_T yyn = 0;
18143 char const *yyp = yystr;
18144
18145 for (;;)
18146 switch (*++yyp)
18147 {
18148 case '\'':
18149 case ',':
18150 goto do_not_strip_quotes;
18151
18152 case '\\':
18153 if (*++yyp != '\\')
18154 goto do_not_strip_quotes;
18155 /* Fall through. */
18156 default:
18157 if (yyres)
18158 yyres[yyn] = *yyp;
18159 yyn++;
18160 break;
18161
18162 case '"':
18163 if (yyres)
18164 yyres[yyn] = '\0';
18165 return yyn;
18166 }
18167 do_not_strip_quotes: ;
18168 }
18169
18170 if (! yyres)
18171 return yystrlen (yystr);
18172
18173 return yystpcpy (yyres, yystr) - yyres;
18174}
18175# endif
18176
18177/* Copy into YYRESULT an error message about the unexpected token
18178 YYCHAR while in state YYSTATE. Return the number of bytes copied,
18179 including the terminating null byte. If YYRESULT is null, do not
18180 copy anything; just return the number of bytes that would be
18181 copied. As a special case, return 0 if an ordinary "syntax error"
18182 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
18183 size calculation. */
18184static YYSIZE_T
18185yysyntax_error (char *yyresult, int yystate, int yychar)
18186{
18187 int yyn = yypact[yystate];
18188
18189 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
18190 return 0;
18191 else
18192 {
18193 int yytype = YYTRANSLATE (yychar);
18194 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
18195 YYSIZE_T yysize = yysize0;
18196 YYSIZE_T yysize1;
18197 int yysize_overflow = 0;
18198 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
18199 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
18200 int yyx;
18201
18202# if 0
18203 /* This is so xgettext sees the translatable formats that are
18204 constructed on the fly. */
18205 YY_("syntax error, unexpected %s");
18206 YY_("syntax error, unexpected %s, expecting %s");
18207 YY_("syntax error, unexpected %s, expecting %s or %s");
18208 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
18209 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
18210# endif
18211 char *yyfmt;
18212 char const *yyf;
18213 static char const yyunexpected[] = "syntax error, unexpected %s";
18214 static char const yyexpecting[] = ", expecting %s";
18215 static char const yyor[] = " or %s";
18216 char yyformat[sizeof yyunexpected
18217 + sizeof yyexpecting - 1
18218 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
18219 * (sizeof yyor - 1))];
18220 char const *yyprefix = yyexpecting;
18221
18222 /* Start YYX at -YYN if negative to avoid negative indexes in
18223 YYCHECK. */
18224 int yyxbegin = yyn < 0 ? -yyn : 0;
18225
18226 /* Stay within bounds of both yycheck and yytname. */
18227 int yychecklim = YYLAST - yyn + 1;
18228 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
18229 int yycount = 1;
18230
18231 yyarg[0] = yytname[yytype];
18232 yyfmt = yystpcpy (yyformat, yyunexpected);
18233
18234 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
18235 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
18236 {
18237 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
18238 {
18239 yycount = 1;
18240 yysize = yysize0;
18241 yyformat[sizeof yyunexpected - 1] = '\0';
18242 break;
18243 }
18244 yyarg[yycount++] = yytname[yyx];
18245 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
18246 yysize_overflow |= (yysize1 < yysize);
18247 yysize = yysize1;
18248 yyfmt = yystpcpy (yyfmt, yyprefix);
18249 yyprefix = yyor;
18250 }
18251
18252 yyf = YY_(yyformat);
18253 yysize1 = yysize + yystrlen (yyf);
18254 yysize_overflow |= (yysize1 < yysize);
18255 yysize = yysize1;
18256
18257 if (yysize_overflow)
18258 return YYSIZE_MAXIMUM;
18259
18260 if (yyresult)
18261 {
18262 /* Avoid sprintf, as that infringes on the user's name space.
18263 Don't have undefined behavior even if the translation
18264 produced a string with the wrong number of "%s"s. */
18265 char *yyp = yyresult;
18266 int yyi = 0;
18267 while ((*yyp = *yyf) != '\0')
18268 {
18269 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
18270 {
18271 yyp += yytnamerr (yyp, yyarg[yyi++]);
18272 yyf += 2;
18273 }
18274 else
18275 {
18276 yyp++;
18277 yyf++;
18278 }
18279 }
18280 }
18281 return yysize;
18282 }
18283}
18284#endif /* YYERROR_VERBOSE */
18285
18286
18287/*-----------------------------------------------.
18288| Release the memory associated to this symbol. |
18289`-----------------------------------------------*/
18290
18291/*ARGSUSED*/
18292#if (defined __STDC__ || defined __C99__FUNC__ \
18293 || defined __cplusplus || defined _MSC_VER)
18294static void
18295yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner)
18296#else
18297static void
18298yydestruct (yymsg, yytype, yyvaluep, yylocationp, yyscanner)
18299 const char *yymsg;
18300 int yytype;
18301 YYSTYPE *yyvaluep;
18302 YYLTYPE *yylocationp;
18303 core_yyscan_t yyscanner;
18304#endif
18305{
18306 YYUSE (yyvaluep);
18307 YYUSE (yylocationp);
18308 YYUSE (yyscanner);
18309
18310 if (!yymsg)
18311 yymsg = "Deleting";
18312 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
18313
18314 switch (yytype)
18315 {
18316
18317 default:
18318 break;
18319 }
18320}
18321
18322
18323/* Prevent warnings from -Wmissing-prototypes. */
18324
18325#ifdef YYPARSE_PARAM
18326#if defined __STDC__ || defined __cplusplus
18327int yyparse (void *YYPARSE_PARAM);
18328#else
18329int yyparse ();
18330#endif
18331#else /* ! YYPARSE_PARAM */
18332#if defined __STDC__ || defined __cplusplus
18333int yyparse (core_yyscan_t yyscanner);
18334#else
18335int yyparse ();
18336#endif
18337#endif /* ! YYPARSE_PARAM */
18338
18339
18340
18341
18342
18343
18344/*----------.
18345| yyparse. |
18346`----------*/
18347
18348#ifdef YYPARSE_PARAM
18349#if (defined __STDC__ || defined __C99__FUNC__ \
18350 || defined __cplusplus || defined _MSC_VER)
18351int
18352yyparse (void *YYPARSE_PARAM)
18353#else
18354int
18355yyparse (YYPARSE_PARAM)
18356 void *YYPARSE_PARAM;
18357#endif
18358#else /* ! YYPARSE_PARAM */
18359#if (defined __STDC__ || defined __C99__FUNC__ \
18360 || defined __cplusplus || defined _MSC_VER)
18361int
18362yyparse (core_yyscan_t yyscanner)
18363#else
18364int
18365yyparse (yyscanner)
18366 core_yyscan_t yyscanner;
18367#endif
18368#endif
18369{
18370 /* The look-ahead symbol. */
18371int yychar;
18372
18373/* The semantic value of the look-ahead symbol. */
18374YYSTYPE yylval;
18375
18376/* Number of syntax errors so far. */
18377int yynerrs;
18378/* Location data for the look-ahead symbol. */
18379YYLTYPE yylloc;
18380
18381 int yystate;
18382 int yyn;
18383 int yyresult;
18384 /* Number of tokens to shift before error messages enabled. */
18385 int yyerrstatus;
18386 /* Look-ahead token as an internal (translated) token number. */
18387 int yytoken = 0;
18388#if YYERROR_VERBOSE
18389 /* Buffer for error messages, and its allocated size. */
18390 char yymsgbuf[128];
18391 char *yymsg = yymsgbuf;
18392 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
18393#endif
18394
18395 /* Three stacks and their tools:
18396 `yyss': related to states,
18397 `yyvs': related to semantic values,
18398 `yyls': related to locations.
18399
18400 Refer to the stacks thru separate pointers, to allow yyoverflow
18401 to reallocate them elsewhere. */
18402
18403 /* The state stack. */
18404 yytype_int16 yyssa[YYINITDEPTH];
18405 yytype_int16 *yyss = yyssa;
18406 yytype_int16 *yyssp;
18407
18408 /* The semantic value stack. */
18409 YYSTYPE yyvsa[YYINITDEPTH];
18410 YYSTYPE *yyvs = yyvsa;
18411 YYSTYPE *yyvsp;
18412
18413 /* The location stack. */
18414 YYLTYPE yylsa[YYINITDEPTH];
18415 YYLTYPE *yyls = yylsa;
18416 YYLTYPE *yylsp;
18417 /* The locations where the error started and ended. */
18418 YYLTYPE yyerror_range[2];
18419
18420#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
18421
18422 YYSIZE_T yystacksize = YYINITDEPTH;
18423
18424 /* The variables used to return semantic value and location from the
18425 action routines. */
18426 YYSTYPE yyval;
18427 YYLTYPE yyloc;
18428
18429 /* The number of symbols on the RHS of the reduced rule.
18430 Keep to zero when no symbol should be popped. */
18431 int yylen = 0;
18432
18433 YYDPRINTF ((stderr, "Starting parse\n"));
18434
18435 yystate = 0;
18436 yyerrstatus = 0;
18437 yynerrs = 0; (void)yynerrs;
18438 yychar = YYEMPTY; /* Cause a token to be read. */
18439
18440 /* Initialize stack pointers.
18441 Waste one element of value and location stack
18442 so that they stay on the same level as the state stack.
18443 The wasted elements are never initialized. */
18444
18445 yyssp = yyss;
18446 yyvsp = yyvs;
18447 yylsp = yyls;
18448#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
18449 /* Initialize the default location before parsing starts. */
18450 yylloc.first_line = yylloc.last_line = 1;
18451 yylloc.first_column = yylloc.last_column = 0;
18452#endif
18453
18454 goto yysetstate;
18455
18456/*------------------------------------------------------------.
18457| yynewstate -- Push a new state, which is found in yystate. |
18458`------------------------------------------------------------*/
18459 yynewstate:
18460 /* In all cases, when you get here, the value and location stacks
18461 have just been pushed. So pushing a state here evens the stacks. */
18462 yyssp++;
18463
18464 yysetstate:
18465 *yyssp = yystate;
18466
18467 if (yyss + yystacksize - 1 <= yyssp)
18468 {
18469 /* Get the current used size of the three stacks, in elements. */
18470 YYSIZE_T yysize = yyssp - yyss + 1;
18471
18472#ifdef yyoverflow
18473 {
18474 /* Give user a chance to reallocate the stack. Use copies of
18475 these so that the &'s don't force the real ones into
18476 memory. */
18477 YYSTYPE *yyvs1 = yyvs;
18478 yytype_int16 *yyss1 = yyss;
18479 YYLTYPE *yyls1 = yyls;
18480
18481 /* Each stack pointer address is followed by the size of the
18482 data in use in that stack, in bytes. This used to be a
18483 conditional around just the two extra args, but that might
18484 be undefined if yyoverflow is a macro. */
18485 yyoverflow (YY_("memory exhausted"),
18486 &yyss1, yysize * sizeof (*yyssp),
18487 &yyvs1, yysize * sizeof (*yyvsp),
18488 &yyls1, yysize * sizeof (*yylsp),
18489 &yystacksize);
18490 yyls = yyls1;
18491 yyss = yyss1;
18492 yyvs = yyvs1;
18493 }
18494#else /* no yyoverflow */
18495# ifndef YYSTACK_RELOCATE
18496 goto yyexhaustedlab;
18497# else
18498 /* Extend the stack our own way. */
18499 if (YYMAXDEPTH <= yystacksize)
18500 goto yyexhaustedlab;
18501 yystacksize *= 2;
18502 if (YYMAXDEPTH < yystacksize)
18503 yystacksize = YYMAXDEPTH;
18504
18505 {
18506 yytype_int16 *yyss1 = yyss;
18507 union yyalloc *yyptr =
18508 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
18509 if (! yyptr)
18510 goto yyexhaustedlab;
18511 YYSTACK_RELOCATE (yyss);
18512 YYSTACK_RELOCATE (yyvs);
18513 YYSTACK_RELOCATE (yyls);
18514# undef YYSTACK_RELOCATE
18515 if (yyss1 != yyssa)
18516 YYSTACK_FREE (yyss1);
18517 }
18518# endif
18519#endif /* no yyoverflow */
18520
18521 yyssp = yyss + yysize - 1;
18522 yyvsp = yyvs + yysize - 1;
18523 yylsp = yyls + yysize - 1;
18524
18525 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
18526 (unsigned long int) yystacksize));
18527
18528 if (yyss + yystacksize - 1 <= yyssp)
18529 YYABORT;
18530 }
18531
18532 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
18533
18534 goto yybackup;
18535
18536/*-----------.
18537| yybackup. |
18538`-----------*/
18539yybackup:
18540
18541 /* Do appropriate processing given the current state. Read a
18542 look-ahead token if we need one and don't already have one. */
18543
18544 /* First try to decide what to do without reference to look-ahead token. */
18545 yyn = yypact[yystate];
18546 if (yyn == YYPACT_NINF)
18547 goto yydefault;
18548
18549 /* Not known => get a look-ahead token if don't already have one. */
18550
18551 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
18552 if (yychar == YYEMPTY)
18553 {
18554 YYDPRINTF ((stderr, "Reading a token: "));
18555 yychar = YYLEX;
18556 }
18557
18558 if (yychar <= YYEOF)
18559 {
18560 yychar = yytoken = YYEOF;
18561 YYDPRINTF ((stderr, "Now at end of input.\n"));
18562 }
18563 else
18564 {
18565 yytoken = YYTRANSLATE (yychar);
18566 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
18567 }
18568
18569 /* If the proper action on seeing token YYTOKEN is to reduce or to
18570 detect an error, take that action. */
18571 yyn += yytoken;
18572 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
18573 goto yydefault;
18574 yyn = yytable[yyn];
18575 if (yyn <= 0)
18576 {
18577 if (yyn == 0 || yyn == YYTABLE_NINF)
18578 goto yyerrlab;
18579 yyn = -yyn;
18580 goto yyreduce;
18581 }
18582
18583 if (yyn == YYFINAL)
18584 YYACCEPT;
18585
18586 /* Count tokens shifted since error; after three, turn off error
18587 status. */
18588 if (yyerrstatus)
18589 yyerrstatus--;
18590
18591 /* Shift the look-ahead token. */
18592 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
18593
18594 /* Discard the shifted token unless it is eof. */
18595 if (yychar != YYEOF)
18596 yychar = YYEMPTY;
18597
18598 yystate = yyn;
18599 *++yyvsp = yylval;
18600 *++yylsp = yylloc;
18601 goto yynewstate;
18602
18603
18604/*-----------------------------------------------------------.
18605| yydefault -- do the default action for the current state. |
18606`-----------------------------------------------------------*/
18607yydefault:
18608 yyn = yydefact[yystate];
18609 if (yyn == 0)
18610 goto yyerrlab;
18611 goto yyreduce;
18612
18613
18614/*-----------------------------.
18615| yyreduce -- Do a reduction. |
18616`-----------------------------*/
18617yyreduce:
18618 /* yyn is the number of a rule to reduce with. */
18619 yylen = yyr2[yyn];
18620
18621 /* If YYLEN is nonzero, implement the default value of the action:
18622 `$$ = $1'.
18623
18624 Otherwise, the following line sets YYVAL to garbage.
18625 This behavior is undocumented and Bison
18626 users should not rely upon it. Assigning to YYVAL
18627 unconditionally makes the parser a bit smaller, and it avoids a
18628 GCC warning that YYVAL may be used uninitialized. */
18629 yyval = yyvsp[1-yylen];
18630
18631 /* Default location. */
18632 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
18633 YY_REDUCE_PRINT (yyn);
18634 switch (yyn)
18635 {
18636 case 2:
18637#line 490 "third_party/libpg_query/grammar/grammar.y"
18638 {
18639 pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list);
18640 ;}
18641 break;
18642
18643 case 3:
18644#line 506 "third_party/libpg_query/grammar/grammar.y"
18645 {
18646 if ((yyvsp[(1) - (3)].list) != NIL)
18647 {
18648 /* update length of previous stmt */
18649 updateRawStmtEnd(llast_node(PGRawStmt, (yyvsp[(1) - (3)].list)), end_location: (yylsp[(2) - (3)]));
18650 }
18651 if ((yyvsp[(3) - (3)].node) != NULL)
18652 (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: makeRawStmt(stmt: (yyvsp[(3) - (3)].node), stmt_location: (yylsp[(2) - (3)]) + 1));
18653 else
18654 (yyval.list) = (yyvsp[(1) - (3)].list);
18655 ;}
18656 break;
18657
18658 case 4:
18659#line 518 "third_party/libpg_query/grammar/grammar.y"
18660 {
18661 if ((yyvsp[(1) - (1)].node) != NULL)
18662 (yyval.list) = list_make1(makeRawStmt((yyvsp[(1) - (1)].node), 0));
18663 else
18664 (yyval.list) = NIL;
18665 ;}
18666 break;
18667
18668 case 42:
18669#line 564 "third_party/libpg_query/grammar/grammar.y"
18670 { (yyval.node) = NULL; ;}
18671 break;
18672
18673 case 43:
18674#line 10 "third_party/libpg_query/grammar/statements/alter_table.y"
18675 {
18676 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
18677 n->relation = (yyvsp[(3) - (4)].range);
18678 n->cmds = (yyvsp[(4) - (4)].list);
18679 n->relkind = PG_OBJECT_TABLE;
18680 n->missing_ok = false;
18681 (yyval.node) = (PGNode *)n;
18682 ;}
18683 break;
18684
18685 case 44:
18686#line 19 "third_party/libpg_query/grammar/statements/alter_table.y"
18687 {
18688 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
18689 n->relation = (yyvsp[(5) - (6)].range);
18690 n->cmds = (yyvsp[(6) - (6)].list);
18691 n->relkind = PG_OBJECT_TABLE;
18692 n->missing_ok = true;
18693 (yyval.node) = (PGNode *)n;
18694 ;}
18695 break;
18696
18697 case 45:
18698#line 28 "third_party/libpg_query/grammar/statements/alter_table.y"
18699 {
18700 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
18701 n->relation = (yyvsp[(3) - (4)].range);
18702 n->cmds = (yyvsp[(4) - (4)].list);
18703 n->relkind = PG_OBJECT_INDEX;
18704 n->missing_ok = false;
18705 (yyval.node) = (PGNode *)n;
18706 ;}
18707 break;
18708
18709 case 46:
18710#line 37 "third_party/libpg_query/grammar/statements/alter_table.y"
18711 {
18712 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
18713 n->relation = (yyvsp[(5) - (6)].range);
18714 n->cmds = (yyvsp[(6) - (6)].list);
18715 n->relkind = PG_OBJECT_INDEX;
18716 n->missing_ok = true;
18717 (yyval.node) = (PGNode *)n;
18718 ;}
18719 break;
18720
18721 case 47:
18722#line 46 "third_party/libpg_query/grammar/statements/alter_table.y"
18723 {
18724 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
18725 n->relation = (yyvsp[(3) - (4)].range);
18726 n->cmds = (yyvsp[(4) - (4)].list);
18727 n->relkind = PG_OBJECT_SEQUENCE;
18728 n->missing_ok = false;
18729 (yyval.node) = (PGNode *)n;
18730 ;}
18731 break;
18732
18733 case 48:
18734#line 55 "third_party/libpg_query/grammar/statements/alter_table.y"
18735 {
18736 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
18737 n->relation = (yyvsp[(5) - (6)].range);
18738 n->cmds = (yyvsp[(6) - (6)].list);
18739 n->relkind = PG_OBJECT_SEQUENCE;
18740 n->missing_ok = true;
18741 (yyval.node) = (PGNode *)n;
18742 ;}
18743 break;
18744
18745 case 49:
18746#line 64 "third_party/libpg_query/grammar/statements/alter_table.y"
18747 {
18748 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
18749 n->relation = (yyvsp[(3) - (4)].range);
18750 n->cmds = (yyvsp[(4) - (4)].list);
18751 n->relkind = PG_OBJECT_VIEW;
18752 n->missing_ok = false;
18753 (yyval.node) = (PGNode *)n;
18754 ;}
18755 break;
18756
18757 case 50:
18758#line 73 "third_party/libpg_query/grammar/statements/alter_table.y"
18759 {
18760 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
18761 n->relation = (yyvsp[(5) - (6)].range);
18762 n->cmds = (yyvsp[(6) - (6)].list);
18763 n->relkind = PG_OBJECT_VIEW;
18764 n->missing_ok = true;
18765 (yyval.node) = (PGNode *)n;
18766 ;}
18767 break;
18768
18769 case 51:
18770#line 86 "third_party/libpg_query/grammar/statements/alter_table.y"
18771 { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
18772 break;
18773
18774 case 52:
18775#line 88 "third_party/libpg_query/grammar/statements/alter_table.y"
18776 { (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].defelt)); ;}
18777 break;
18778
18779 case 53:
18780#line 93 "third_party/libpg_query/grammar/statements/alter_table.y"
18781 { (yyval.node) = (yyvsp[(3) - (3)].node); ;}
18782 break;
18783
18784 case 54:
18785#line 94 "third_party/libpg_query/grammar/statements/alter_table.y"
18786 { (yyval.node) = NULL; ;}
18787 break;
18788
18789 case 55:
18790#line 100 "third_party/libpg_query/grammar/statements/alter_table.y"
18791 {
18792 (yyval.defelt) = makeDefElem(name: "restart", NULL, location: (yylsp[(1) - (1)]));
18793 ;}
18794 break;
18795
18796 case 56:
18797#line 104 "third_party/libpg_query/grammar/statements/alter_table.y"
18798 {
18799 (yyval.defelt) = makeDefElem(name: "restart", arg: (PGNode *)(yyvsp[(3) - (3)].value), location: (yylsp[(1) - (3)]));
18800 ;}
18801 break;
18802
18803 case 57:
18804#line 108 "third_party/libpg_query/grammar/statements/alter_table.y"
18805 {
18806 if (strcmp(s1: (yyvsp[(2) - (2)].defelt)->defname, s2: "as") == 0 ||
18807 strcmp(s1: (yyvsp[(2) - (2)].defelt)->defname, s2: "restart") == 0 ||
18808 strcmp(s1: (yyvsp[(2) - (2)].defelt)->defname, s2: "owned_by") == 0)
18809 ereport(code: ERROR,
18810 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
18811 errmsg(fmt: "sequence option \"%s\" not supported here", (yyvsp[(2) - (2)].defelt)->defname),
18812 parser_errposition((yylsp[(2) - (2)]))));
18813 (yyval.defelt) = (yyvsp[(2) - (2)].defelt);
18814 ;}
18815 break;
18816
18817 case 58:
18818#line 119 "third_party/libpg_query/grammar/statements/alter_table.y"
18819 {
18820 (yyval.defelt) = makeDefElem(name: "generated", arg: (PGNode *) makeInteger(i: (yyvsp[(3) - (3)].ival)), location: (yylsp[(1) - (3)]));
18821 ;}
18822 break;
18823
18824 case 59:
18825#line 127 "third_party/libpg_query/grammar/statements/alter_table.y"
18826 {
18827 (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
18828 ;}
18829 break;
18830
18831 case 60:
18832#line 131 "third_party/libpg_query/grammar/statements/alter_table.y"
18833 {
18834 (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].defelt));
18835 ;}
18836 break;
18837
18838 case 61:
18839#line 140 "third_party/libpg_query/grammar/statements/alter_table.y"
18840 {
18841 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18842 n->subtype = PG_AT_AddColumn;
18843 n->def = (yyvsp[(2) - (2)].node);
18844 n->missing_ok = false;
18845 (yyval.node) = (PGNode *)n;
18846 ;}
18847 break;
18848
18849 case 62:
18850#line 149 "third_party/libpg_query/grammar/statements/alter_table.y"
18851 {
18852 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18853 n->subtype = PG_AT_AddColumn;
18854 n->def = (yyvsp[(5) - (5)].node);
18855 n->missing_ok = true;
18856 (yyval.node) = (PGNode *)n;
18857 ;}
18858 break;
18859
18860 case 63:
18861#line 158 "third_party/libpg_query/grammar/statements/alter_table.y"
18862 {
18863 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18864 n->subtype = PG_AT_AddColumn;
18865 n->def = (yyvsp[(3) - (3)].node);
18866 n->missing_ok = false;
18867 (yyval.node) = (PGNode *)n;
18868 ;}
18869 break;
18870
18871 case 64:
18872#line 167 "third_party/libpg_query/grammar/statements/alter_table.y"
18873 {
18874 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18875 n->subtype = PG_AT_AddColumn;
18876 n->def = (yyvsp[(6) - (6)].node);
18877 n->missing_ok = true;
18878 (yyval.node) = (PGNode *)n;
18879 ;}
18880 break;
18881
18882 case 65:
18883#line 176 "third_party/libpg_query/grammar/statements/alter_table.y"
18884 {
18885 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18886 n->subtype = PG_AT_ColumnDefault;
18887 n->name = (yyvsp[(3) - (4)].str);
18888 n->def = (yyvsp[(4) - (4)].node);
18889 (yyval.node) = (PGNode *)n;
18890 ;}
18891 break;
18892
18893 case 66:
18894#line 185 "third_party/libpg_query/grammar/statements/alter_table.y"
18895 {
18896 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18897 n->subtype = PG_AT_DropNotNull;
18898 n->name = (yyvsp[(3) - (6)].str);
18899 (yyval.node) = (PGNode *)n;
18900 ;}
18901 break;
18902
18903 case 67:
18904#line 193 "third_party/libpg_query/grammar/statements/alter_table.y"
18905 {
18906 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18907 n->subtype = PG_AT_SetNotNull;
18908 n->name = (yyvsp[(3) - (6)].str);
18909 (yyval.node) = (PGNode *)n;
18910 ;}
18911 break;
18912
18913 case 68:
18914#line 201 "third_party/libpg_query/grammar/statements/alter_table.y"
18915 {
18916 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18917 n->subtype = PG_AT_SetStatistics;
18918 n->name = (yyvsp[(3) - (6)].str);
18919 n->def = (PGNode *) makeInteger(i: (yyvsp[(6) - (6)].ival));
18920 (yyval.node) = (PGNode *)n;
18921 ;}
18922 break;
18923
18924 case 69:
18925#line 210 "third_party/libpg_query/grammar/statements/alter_table.y"
18926 {
18927 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18928 n->subtype = PG_AT_SetOptions;
18929 n->name = (yyvsp[(3) - (5)].str);
18930 n->def = (PGNode *) (yyvsp[(5) - (5)].list);
18931 (yyval.node) = (PGNode *)n;
18932 ;}
18933 break;
18934
18935 case 70:
18936#line 219 "third_party/libpg_query/grammar/statements/alter_table.y"
18937 {
18938 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18939 n->subtype = PG_AT_ResetOptions;
18940 n->name = (yyvsp[(3) - (5)].str);
18941 n->def = (PGNode *) (yyvsp[(5) - (5)].list);
18942 (yyval.node) = (PGNode *)n;
18943 ;}
18944 break;
18945
18946 case 71:
18947#line 228 "third_party/libpg_query/grammar/statements/alter_table.y"
18948 {
18949 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18950 n->subtype = PG_AT_SetStorage;
18951 n->name = (yyvsp[(3) - (6)].str);
18952 n->def = (PGNode *) makeString(str: (yyvsp[(6) - (6)].str));
18953 (yyval.node) = (PGNode *)n;
18954 ;}
18955 break;
18956
18957 case 72:
18958#line 237 "third_party/libpg_query/grammar/statements/alter_table.y"
18959 {
18960 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18961 PGConstraint *c = makeNode(PGConstraint);
18962
18963 c->contype = PG_CONSTR_IDENTITY;
18964 c->generated_when = (yyvsp[(6) - (9)].ival);
18965 c->options = (yyvsp[(9) - (9)].list);
18966 c->location = (yylsp[(5) - (9)]);
18967
18968 n->subtype = PG_AT_AddIdentity;
18969 n->name = (yyvsp[(3) - (9)].str);
18970 n->def = (PGNode *) c;
18971
18972 (yyval.node) = (PGNode *)n;
18973 ;}
18974 break;
18975
18976 case 73:
18977#line 254 "third_party/libpg_query/grammar/statements/alter_table.y"
18978 {
18979 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18980 n->subtype = PG_AT_SetIdentity;
18981 n->name = (yyvsp[(3) - (4)].str);
18982 n->def = (PGNode *) (yyvsp[(4) - (4)].list);
18983 (yyval.node) = (PGNode *)n;
18984 ;}
18985 break;
18986
18987 case 74:
18988#line 263 "third_party/libpg_query/grammar/statements/alter_table.y"
18989 {
18990 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
18991 n->subtype = AT_DropIdentity;
18992 n->name = (yyvsp[(3) - (5)].str);
18993 n->missing_ok = false;
18994 (yyval.node) = (PGNode *)n;
18995 ;}
18996 break;
18997
18998 case 75:
18999#line 272 "third_party/libpg_query/grammar/statements/alter_table.y"
19000 {
19001 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19002 n->subtype = AT_DropIdentity;
19003 n->name = (yyvsp[(3) - (7)].str);
19004 n->missing_ok = true;
19005 (yyval.node) = (PGNode *)n;
19006 ;}
19007 break;
19008
19009 case 76:
19010#line 281 "third_party/libpg_query/grammar/statements/alter_table.y"
19011 {
19012 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19013 n->subtype = PG_AT_DropColumn;
19014 n->name = (yyvsp[(5) - (6)].str);
19015 n->behavior = (yyvsp[(6) - (6)].dbehavior);
19016 n->missing_ok = true;
19017 (yyval.node) = (PGNode *)n;
19018 ;}
19019 break;
19020
19021 case 77:
19022#line 291 "third_party/libpg_query/grammar/statements/alter_table.y"
19023 {
19024 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19025 n->subtype = PG_AT_DropColumn;
19026 n->name = (yyvsp[(3) - (4)].str);
19027 n->behavior = (yyvsp[(4) - (4)].dbehavior);
19028 n->missing_ok = false;
19029 (yyval.node) = (PGNode *)n;
19030 ;}
19031 break;
19032
19033 case 78:
19034#line 304 "third_party/libpg_query/grammar/statements/alter_table.y"
19035 {
19036 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19037 PGColumnDef *def = makeNode(PGColumnDef);
19038 n->subtype = PG_AT_AlterColumnType;
19039 n->name = (yyvsp[(3) - (8)].str);
19040 n->def = (PGNode *) def;
19041 /* We only use these fields of the PGColumnDef node */
19042 def->typeName = (yyvsp[(6) - (8)].typnam);
19043 def->collClause = (PGCollateClause *) (yyvsp[(7) - (8)].node);
19044 def->raw_default = (yyvsp[(8) - (8)].node);
19045 def->location = (yylsp[(3) - (8)]);
19046 (yyval.node) = (PGNode *)n;
19047 ;}
19048 break;
19049
19050 case 79:
19051#line 319 "third_party/libpg_query/grammar/statements/alter_table.y"
19052 {
19053 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19054 n->subtype = PG_AT_AlterColumnGenericOptions;
19055 n->name = (yyvsp[(3) - (4)].str);
19056 n->def = (PGNode *) (yyvsp[(4) - (4)].list);
19057 (yyval.node) = (PGNode *)n;
19058 ;}
19059 break;
19060
19061 case 80:
19062#line 328 "third_party/libpg_query/grammar/statements/alter_table.y"
19063 {
19064 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19065 n->subtype = PG_AT_AddConstraint;
19066 n->def = (yyvsp[(2) - (2)].node);
19067 (yyval.node) = (PGNode *)n;
19068 ;}
19069 break;
19070
19071 case 81:
19072#line 336 "third_party/libpg_query/grammar/statements/alter_table.y"
19073 {
19074 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19075 PGConstraint *c = makeNode(PGConstraint);
19076 n->subtype = PG_AT_AlterConstraint;
19077 n->def = (PGNode *) c;
19078 c->contype = PG_CONSTR_FOREIGN; /* others not supported, yet */
19079 c->conname = (yyvsp[(3) - (4)].str);
19080 processCASbits(cas_bits: (yyvsp[(4) - (4)].ival), location: (yylsp[(4) - (4)]), constrType: "ALTER CONSTRAINT statement",
19081 deferrable: &c->deferrable,
19082 initdeferred: &c->initdeferred,
19083 NULL, NULL, yyscanner);
19084 (yyval.node) = (PGNode *)n;
19085 ;}
19086 break;
19087
19088 case 82:
19089#line 351 "third_party/libpg_query/grammar/statements/alter_table.y"
19090 {
19091 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19092 n->subtype = PG_AT_ValidateConstraint;
19093 n->name = (yyvsp[(3) - (3)].str);
19094 (yyval.node) = (PGNode *)n;
19095 ;}
19096 break;
19097
19098 case 83:
19099#line 359 "third_party/libpg_query/grammar/statements/alter_table.y"
19100 {
19101 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19102 n->subtype = PG_AT_DropConstraint;
19103 n->name = (yyvsp[(5) - (6)].str);
19104 n->behavior = (yyvsp[(6) - (6)].dbehavior);
19105 n->missing_ok = true;
19106 (yyval.node) = (PGNode *)n;
19107 ;}
19108 break;
19109
19110 case 84:
19111#line 369 "third_party/libpg_query/grammar/statements/alter_table.y"
19112 {
19113 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19114 n->subtype = PG_AT_DropConstraint;
19115 n->name = (yyvsp[(3) - (4)].str);
19116 n->behavior = (yyvsp[(4) - (4)].dbehavior);
19117 n->missing_ok = false;
19118 (yyval.node) = (PGNode *)n;
19119 ;}
19120 break;
19121
19122 case 85:
19123#line 379 "third_party/libpg_query/grammar/statements/alter_table.y"
19124 {
19125 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19126 n->subtype = PG_AT_SetLogged;
19127 (yyval.node) = (PGNode *)n;
19128 ;}
19129 break;
19130
19131 case 86:
19132#line 386 "third_party/libpg_query/grammar/statements/alter_table.y"
19133 {
19134 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19135 n->subtype = PG_AT_SetUnLogged;
19136 (yyval.node) = (PGNode *)n;
19137 ;}
19138 break;
19139
19140 case 87:
19141#line 393 "third_party/libpg_query/grammar/statements/alter_table.y"
19142 {
19143 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19144 n->subtype = PG_AT_SetRelOptions;
19145 n->def = (PGNode *)(yyvsp[(2) - (2)].list);
19146 (yyval.node) = (PGNode *)n;
19147 ;}
19148 break;
19149
19150 case 88:
19151#line 401 "third_party/libpg_query/grammar/statements/alter_table.y"
19152 {
19153 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19154 n->subtype = PG_AT_ResetRelOptions;
19155 n->def = (PGNode *)(yyvsp[(2) - (2)].list);
19156 (yyval.node) = (PGNode *)n;
19157 ;}
19158 break;
19159
19160 case 89:
19161#line 408 "third_party/libpg_query/grammar/statements/alter_table.y"
19162 {
19163 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
19164 n->subtype = PG_AT_GenericOptions;
19165 n->def = (PGNode *)(yyvsp[(1) - (1)].list);
19166 (yyval.node) = (PGNode *) n;
19167 ;}
19168 break;
19169
19170 case 90:
19171#line 418 "third_party/libpg_query/grammar/statements/alter_table.y"
19172 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
19173 break;
19174
19175 case 91:
19176#line 419 "third_party/libpg_query/grammar/statements/alter_table.y"
19177 { (yyval.node) = NULL; ;}
19178 break;
19179
19180 case 92:
19181#line 425 "third_party/libpg_query/grammar/statements/alter_table.y"
19182 {
19183 (yyval.defelt) = (yyvsp[(1) - (1)].defelt);
19184 ;}
19185 break;
19186
19187 case 93:
19188#line 429 "third_party/libpg_query/grammar/statements/alter_table.y"
19189 {
19190 (yyval.defelt) = (yyvsp[(2) - (2)].defelt);
19191 (yyval.defelt)->defaction = PG_DEFELEM_SET;
19192 ;}
19193 break;
19194
19195 case 94:
19196#line 434 "third_party/libpg_query/grammar/statements/alter_table.y"
19197 {
19198 (yyval.defelt) = (yyvsp[(2) - (2)].defelt);
19199 (yyval.defelt)->defaction = PG_DEFELEM_ADD;
19200 ;}
19201 break;
19202
19203 case 95:
19204#line 439 "third_party/libpg_query/grammar/statements/alter_table.y"
19205 {
19206 (yyval.defelt) = makeDefElemExtended(NULL, name: (yyvsp[(2) - (2)].str), NULL, defaction: DEFELEM_DROP, location: (yylsp[(2) - (2)]));
19207 ;}
19208 break;
19209
19210 case 96:
19211#line 446 "third_party/libpg_query/grammar/statements/alter_table.y"
19212 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
19213 break;
19214
19215 case 97:
19216#line 447 "third_party/libpg_query/grammar/statements/alter_table.y"
19217 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node)); ;}
19218 break;
19219
19220 case 98:
19221#line 452 "third_party/libpg_query/grammar/statements/alter_table.y"
19222 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
19223 break;
19224
19225 case 99:
19226#line 456 "third_party/libpg_query/grammar/statements/alter_table.y"
19227 { (yyval.ival) = 1; ;}
19228 break;
19229
19230 case 100:
19231#line 457 "third_party/libpg_query/grammar/statements/alter_table.y"
19232 { (yyval.ival) = 0; ;}
19233 break;
19234
19235 case 101:
19236#line 458 "third_party/libpg_query/grammar/statements/alter_table.y"
19237 { (yyval.ival) = 0; ;}
19238 break;
19239
19240 case 102:
19241#line 8 "third_party/libpg_query/grammar/statements/deallocate.y"
19242 {
19243 PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
19244 n->name = (yyvsp[(2) - (2)].str);
19245 (yyval.node) = (PGNode *) n;
19246 ;}
19247 break;
19248
19249 case 103:
19250#line 14 "third_party/libpg_query/grammar/statements/deallocate.y"
19251 {
19252 PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
19253 n->name = (yyvsp[(3) - (3)].str);
19254 (yyval.node) = (PGNode *) n;
19255 ;}
19256 break;
19257
19258 case 104:
19259#line 20 "third_party/libpg_query/grammar/statements/deallocate.y"
19260 {
19261 PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
19262 n->name = NULL;
19263 (yyval.node) = (PGNode *) n;
19264 ;}
19265 break;
19266
19267 case 105:
19268#line 26 "third_party/libpg_query/grammar/statements/deallocate.y"
19269 {
19270 PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
19271 n->name = NULL;
19272 (yyval.node) = (PGNode *) n;
19273 ;}
19274 break;
19275
19276 case 106:
19277#line 10 "third_party/libpg_query/grammar/statements/common.y"
19278 {
19279 (yyval.range) = makeRangeVar(NULL, relname: (yyvsp[(1) - (1)].str), location: (yylsp[(1) - (1)]));
19280 ;}
19281 break;
19282
19283 case 107:
19284#line 14 "third_party/libpg_query/grammar/statements/common.y"
19285 {
19286 check_qualified_name(names: (yyvsp[(2) - (2)].list), yyscanner);
19287 (yyval.range) = makeRangeVar(NULL, NULL, location: (yylsp[(1) - (2)]));
19288 switch (list_length(l: (yyvsp[(2) - (2)].list)))
19289 {
19290 case 1:
19291 (yyval.range)->catalogname = NULL;
19292 (yyval.range)->schemaname = (yyvsp[(1) - (2)].str);
19293 (yyval.range)->relname = strVal(linitial((yyvsp[(2) - (2)].list)));
19294 break;
19295 case 2:
19296 (yyval.range)->catalogname = (yyvsp[(1) - (2)].str);
19297 (yyval.range)->schemaname = strVal(linitial((yyvsp[(2) - (2)].list)));
19298 (yyval.range)->relname = strVal(lsecond((yyvsp[(2) - (2)].list)));
19299 break;
19300 case 3:
19301 default:
19302 ereport(code: ERROR,
19303 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
19304 errmsg(fmt: "improper qualified name (too many dotted names): %s",
19305 NameListToString(names: lcons(datum: makeString(str: (yyvsp[(1) - (2)].str)), list: (yyvsp[(2) - (2)].list)))),
19306 parser_errposition((yylsp[(1) - (2)]))));
19307 break;
19308 }
19309 ;}
19310 break;
19311
19312 case 108:
19313#line 44 "third_party/libpg_query/grammar/statements/common.y"
19314 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
19315 break;
19316
19317 case 109:
19318#line 45 "third_party/libpg_query/grammar/statements/common.y"
19319 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
19320 break;
19321
19322 case 110:
19323#line 46 "third_party/libpg_query/grammar/statements/common.y"
19324 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
19325 break;
19326
19327 case 111:
19328#line 50 "third_party/libpg_query/grammar/statements/common.y"
19329 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
19330 break;
19331
19332 case 112:
19333#line 51 "third_party/libpg_query/grammar/statements/common.y"
19334 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
19335 break;
19336
19337 case 113:
19338#line 55 "third_party/libpg_query/grammar/statements/common.y"
19339 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
19340 break;
19341
19342 case 114:
19343#line 59 "third_party/libpg_query/grammar/statements/common.y"
19344 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
19345 break;
19346
19347 case 115:
19348#line 60 "third_party/libpg_query/grammar/statements/common.y"
19349 { (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].node)); ;}
19350 break;
19351
19352 case 116:
19353#line 65 "third_party/libpg_query/grammar/statements/common.y"
19354 {
19355 (yyval.node) = (PGNode *) makeString(str: (yyvsp[(2) - (2)].str));
19356 ;}
19357 break;
19358
19359 case 117:
19360#line 70 "third_party/libpg_query/grammar/statements/common.y"
19361 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
19362 break;
19363
19364 case 118:
19365#line 75 "third_party/libpg_query/grammar/statements/common.y"
19366 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
19367 break;
19368
19369 case 119:
19370#line 76 "third_party/libpg_query/grammar/statements/common.y"
19371 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
19372 break;
19373
19374 case 120:
19375#line 77 "third_party/libpg_query/grammar/statements/common.y"
19376 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
19377 break;
19378
19379 case 121:
19380#line 78 "third_party/libpg_query/grammar/statements/common.y"
19381 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
19382 break;
19383
19384 case 122:
19385#line 7 "third_party/libpg_query/grammar/statements/rename.y"
19386 {
19387 PGRenameStmt *n = makeNode(PGRenameStmt);
19388 n->renameType = PG_OBJECT_SCHEMA;
19389 n->subname = (yyvsp[(3) - (6)].str);
19390 n->newname = (yyvsp[(6) - (6)].str);
19391 n->missing_ok = false;
19392 (yyval.node) = (PGNode *)n;
19393 ;}
19394 break;
19395
19396 case 123:
19397#line 16 "third_party/libpg_query/grammar/statements/rename.y"
19398 {
19399 PGRenameStmt *n = makeNode(PGRenameStmt);
19400 n->renameType = PG_OBJECT_TABLE;
19401 n->relation = (yyvsp[(3) - (6)].range);
19402 n->subname = NULL;
19403 n->newname = (yyvsp[(6) - (6)].str);
19404 n->missing_ok = false;
19405 (yyval.node) = (PGNode *)n;
19406 ;}
19407 break;
19408
19409 case 124:
19410#line 26 "third_party/libpg_query/grammar/statements/rename.y"
19411 {
19412 PGRenameStmt *n = makeNode(PGRenameStmt);
19413 n->renameType = PG_OBJECT_TABLE;
19414 n->relation = (yyvsp[(5) - (8)].range);
19415 n->subname = NULL;
19416 n->newname = (yyvsp[(8) - (8)].str);
19417 n->missing_ok = true;
19418 (yyval.node) = (PGNode *)n;
19419 ;}
19420 break;
19421
19422 case 125:
19423#line 36 "third_party/libpg_query/grammar/statements/rename.y"
19424 {
19425 PGRenameStmt *n = makeNode(PGRenameStmt);
19426 n->renameType = PG_OBJECT_SEQUENCE;
19427 n->relation = (yyvsp[(3) - (6)].range);
19428 n->subname = NULL;
19429 n->newname = (yyvsp[(6) - (6)].str);
19430 n->missing_ok = false;
19431 (yyval.node) = (PGNode *)n;
19432 ;}
19433 break;
19434
19435 case 126:
19436#line 46 "third_party/libpg_query/grammar/statements/rename.y"
19437 {
19438 PGRenameStmt *n = makeNode(PGRenameStmt);
19439 n->renameType = PG_OBJECT_SEQUENCE;
19440 n->relation = (yyvsp[(5) - (8)].range);
19441 n->subname = NULL;
19442 n->newname = (yyvsp[(8) - (8)].str);
19443 n->missing_ok = true;
19444 (yyval.node) = (PGNode *)n;
19445 ;}
19446 break;
19447
19448 case 127:
19449#line 56 "third_party/libpg_query/grammar/statements/rename.y"
19450 {
19451 PGRenameStmt *n = makeNode(PGRenameStmt);
19452 n->renameType = PG_OBJECT_VIEW;
19453 n->relation = (yyvsp[(3) - (6)].range);
19454 n->subname = NULL;
19455 n->newname = (yyvsp[(6) - (6)].str);
19456 n->missing_ok = false;
19457 (yyval.node) = (PGNode *)n;
19458 ;}
19459 break;
19460
19461 case 128:
19462#line 66 "third_party/libpg_query/grammar/statements/rename.y"
19463 {
19464 PGRenameStmt *n = makeNode(PGRenameStmt);
19465 n->renameType = PG_OBJECT_VIEW;
19466 n->relation = (yyvsp[(5) - (8)].range);
19467 n->subname = NULL;
19468 n->newname = (yyvsp[(8) - (8)].str);
19469 n->missing_ok = true;
19470 (yyval.node) = (PGNode *)n;
19471 ;}
19472 break;
19473
19474 case 129:
19475#line 76 "third_party/libpg_query/grammar/statements/rename.y"
19476 {
19477 PGRenameStmt *n = makeNode(PGRenameStmt);
19478 n->renameType = PG_OBJECT_INDEX;
19479 n->relation = (yyvsp[(3) - (6)].range);
19480 n->subname = NULL;
19481 n->newname = (yyvsp[(6) - (6)].str);
19482 n->missing_ok = false;
19483 (yyval.node) = (PGNode *)n;
19484 ;}
19485 break;
19486
19487 case 130:
19488#line 86 "third_party/libpg_query/grammar/statements/rename.y"
19489 {
19490 PGRenameStmt *n = makeNode(PGRenameStmt);
19491 n->renameType = PG_OBJECT_INDEX;
19492 n->relation = (yyvsp[(5) - (8)].range);
19493 n->subname = NULL;
19494 n->newname = (yyvsp[(8) - (8)].str);
19495 n->missing_ok = true;
19496 (yyval.node) = (PGNode *)n;
19497 ;}
19498 break;
19499
19500 case 131:
19501#line 96 "third_party/libpg_query/grammar/statements/rename.y"
19502 {
19503 PGRenameStmt *n = makeNode(PGRenameStmt);
19504 n->renameType = PG_OBJECT_COLUMN;
19505 n->relationType = PG_OBJECT_TABLE;
19506 n->relation = (yyvsp[(3) - (8)].range);
19507 n->subname = (yyvsp[(6) - (8)].str);
19508 n->newname = (yyvsp[(8) - (8)].str);
19509 n->missing_ok = false;
19510 (yyval.node) = (PGNode *)n;
19511 ;}
19512 break;
19513
19514 case 132:
19515#line 107 "third_party/libpg_query/grammar/statements/rename.y"
19516 {
19517 PGRenameStmt *n = makeNode(PGRenameStmt);
19518 n->renameType = PG_OBJECT_COLUMN;
19519 n->relationType = PG_OBJECT_TABLE;
19520 n->relation = (yyvsp[(5) - (10)].range);
19521 n->subname = (yyvsp[(8) - (10)].str);
19522 n->newname = (yyvsp[(10) - (10)].str);
19523 n->missing_ok = true;
19524 (yyval.node) = (PGNode *)n;
19525 ;}
19526 break;
19527
19528 case 133:
19529#line 118 "third_party/libpg_query/grammar/statements/rename.y"
19530 {
19531 PGRenameStmt *n = makeNode(PGRenameStmt);
19532 n->renameType = PG_OBJECT_TABCONSTRAINT;
19533 n->relation = (yyvsp[(3) - (8)].range);
19534 n->subname = (yyvsp[(6) - (8)].str);
19535 n->newname = (yyvsp[(8) - (8)].str);
19536 n->missing_ok = false;
19537 (yyval.node) = (PGNode *)n;
19538 ;}
19539 break;
19540
19541 case 134:
19542#line 128 "third_party/libpg_query/grammar/statements/rename.y"
19543 {
19544 PGRenameStmt *n = makeNode(PGRenameStmt);
19545 n->renameType = PG_OBJECT_TABCONSTRAINT;
19546 n->relation = (yyvsp[(5) - (10)].range);
19547 n->subname = (yyvsp[(8) - (10)].str);
19548 n->newname = (yyvsp[(10) - (10)].str);
19549 n->missing_ok = true;
19550 (yyval.node) = (PGNode *)n;
19551 ;}
19552 break;
19553
19554 case 135:
19555#line 140 "third_party/libpg_query/grammar/statements/rename.y"
19556 { (yyval.ival) = COLUMN; ;}
19557 break;
19558
19559 case 136:
19560#line 141 "third_party/libpg_query/grammar/statements/rename.y"
19561 { (yyval.ival) = 0; ;}
19562 break;
19563
19564 case 137:
19565#line 11 "third_party/libpg_query/grammar/statements/insert.y"
19566 {
19567 (yyvsp[(7) - (9)].istmt)->relation = (yyvsp[(5) - (9)].range);
19568 (yyvsp[(7) - (9)].istmt)->onConflictAlias = (yyvsp[(3) - (9)].onconflictshorthand);
19569 (yyvsp[(7) - (9)].istmt)->onConflictClause = (yyvsp[(8) - (9)].onconflict);
19570 (yyvsp[(7) - (9)].istmt)->returningList = (yyvsp[(9) - (9)].list);
19571 (yyvsp[(7) - (9)].istmt)->withClause = (yyvsp[(1) - (9)].with);
19572 (yyvsp[(7) - (9)].istmt)->insert_column_order = (yyvsp[(6) - (9)].bynameorposition);
19573 (yyval.node) = (PGNode *) (yyvsp[(7) - (9)].istmt);
19574 ;}
19575 break;
19576
19577 case 138:
19578#line 24 "third_party/libpg_query/grammar/statements/insert.y"
19579 {
19580 (yyval.istmt) = makeNode(PGInsertStmt);
19581 (yyval.istmt)->cols = NIL;
19582 (yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node);
19583 ;}
19584 break;
19585
19586 case 139:
19587#line 30 "third_party/libpg_query/grammar/statements/insert.y"
19588 {
19589 (yyval.istmt) = makeNode(PGInsertStmt);
19590 (yyval.istmt)->cols = NIL;
19591 (yyval.istmt)->override = (yyvsp[(2) - (4)].override);
19592 (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node);
19593 ;}
19594 break;
19595
19596 case 140:
19597#line 37 "third_party/libpg_query/grammar/statements/insert.y"
19598 {
19599 (yyval.istmt) = makeNode(PGInsertStmt);
19600 (yyval.istmt)->cols = (yyvsp[(2) - (4)].list);
19601 (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node);
19602 ;}
19603 break;
19604
19605 case 141:
19606#line 43 "third_party/libpg_query/grammar/statements/insert.y"
19607 {
19608 (yyval.istmt) = makeNode(PGInsertStmt);
19609 (yyval.istmt)->cols = (yyvsp[(2) - (7)].list);
19610 (yyval.istmt)->override = (yyvsp[(5) - (7)].override);
19611 (yyval.istmt)->selectStmt = (yyvsp[(7) - (7)].node);
19612 ;}
19613 break;
19614
19615 case 142:
19616#line 50 "third_party/libpg_query/grammar/statements/insert.y"
19617 {
19618 (yyval.istmt) = makeNode(PGInsertStmt);
19619 (yyval.istmt)->cols = NIL;
19620 (yyval.istmt)->selectStmt = NULL;
19621 ;}
19622 break;
19623
19624 case 143:
19625#line 60 "third_party/libpg_query/grammar/statements/insert.y"
19626 {
19627 (yyval.range) = (yyvsp[(1) - (1)].range);
19628 ;}
19629 break;
19630
19631 case 144:
19632#line 64 "third_party/libpg_query/grammar/statements/insert.y"
19633 {
19634 (yyvsp[(1) - (3)].range)->alias = makeAlias(aliasname: (yyvsp[(3) - (3)].str), NIL);
19635 (yyval.range) = (yyvsp[(1) - (3)].range);
19636 ;}
19637 break;
19638
19639 case 145:
19640#line 71 "third_party/libpg_query/grammar/statements/insert.y"
19641 { (yyval.bynameorposition) = PG_INSERT_BY_NAME; ;}
19642 break;
19643
19644 case 146:
19645#line 72 "third_party/libpg_query/grammar/statements/insert.y"
19646 { (yyval.bynameorposition) = PG_INSERT_BY_POSITION; ;}
19647 break;
19648
19649 case 147:
19650#line 73 "third_party/libpg_query/grammar/statements/insert.y"
19651 { (yyval.bynameorposition) = PG_INSERT_BY_POSITION; ;}
19652 break;
19653
19654 case 148:
19655#line 78 "third_party/libpg_query/grammar/statements/insert.y"
19656 {
19657 (yyval.infer) = makeNode(PGInferClause);
19658 (yyval.infer)->indexElems = (yyvsp[(2) - (4)].list);
19659 (yyval.infer)->whereClause = (yyvsp[(4) - (4)].node);
19660 (yyval.infer)->conname = NULL;
19661 (yyval.infer)->location = (yylsp[(1) - (4)]);
19662 ;}
19663 break;
19664
19665 case 149:
19666#line 87 "third_party/libpg_query/grammar/statements/insert.y"
19667 {
19668 (yyval.infer) = makeNode(PGInferClause);
19669 (yyval.infer)->indexElems = NIL;
19670 (yyval.infer)->whereClause = NULL;
19671 (yyval.infer)->conname = (yyvsp[(3) - (3)].str);
19672 (yyval.infer)->location = (yylsp[(1) - (3)]);
19673 ;}
19674 break;
19675
19676 case 150:
19677#line 95 "third_party/libpg_query/grammar/statements/insert.y"
19678 {
19679 (yyval.infer) = NULL;
19680 ;}
19681 break;
19682
19683 case 151:
19684#line 102 "third_party/libpg_query/grammar/statements/insert.y"
19685 { (yyval.with) = (yyvsp[(1) - (1)].with); ;}
19686 break;
19687
19688 case 152:
19689#line 103 "third_party/libpg_query/grammar/statements/insert.y"
19690 { (yyval.with) = NULL; ;}
19691 break;
19692
19693 case 153:
19694#line 109 "third_party/libpg_query/grammar/statements/insert.y"
19695 {
19696 (yyval.target) = makeNode(PGResTarget);
19697 (yyval.target)->name = (yyvsp[(1) - (2)].str);
19698 (yyval.target)->indirection = check_indirection(indirection: (yyvsp[(2) - (2)].list), yyscanner);
19699 (yyval.target)->val = NULL;
19700 (yyval.target)->location = (yylsp[(1) - (2)]);
19701 ;}
19702 break;
19703
19704 case 154:
19705#line 121 "third_party/libpg_query/grammar/statements/insert.y"
19706 {
19707 (yyvsp[(1) - (3)].target)->val = (PGNode *) (yyvsp[(3) - (3)].node);
19708 (yyval.list) = list_make1((yyvsp[(1) - (3)].target));
19709 ;}
19710 break;
19711
19712 case 155:
19713#line 126 "third_party/libpg_query/grammar/statements/insert.y"
19714 {
19715 int ncolumns = list_length(l: (yyvsp[(2) - (5)].list));
19716 int i = 1;
19717 PGListCell *col_cell;
19718
19719 /* Create a PGMultiAssignRef source for each target */
19720 foreach(col_cell, (yyvsp[(2) - (5)].list))
19721 {
19722 PGResTarget *res_col = (PGResTarget *) lfirst(col_cell);
19723 PGMultiAssignRef *r = makeNode(PGMultiAssignRef);
19724
19725 r->source = (PGNode *) (yyvsp[(5) - (5)].node);
19726 r->colno = i;
19727 r->ncolumns = ncolumns;
19728 res_col->val = (PGNode *) r;
19729 i++;
19730 }
19731
19732 (yyval.list) = (yyvsp[(2) - (5)].list);
19733 ;}
19734 break;
19735
19736 case 156:
19737#line 151 "third_party/libpg_query/grammar/statements/insert.y"
19738 {
19739 (yyval.onconflictshorthand) = PG_ONCONFLICT_ALIAS_REPLACE;
19740 ;}
19741 break;
19742
19743 case 157:
19744#line 156 "third_party/libpg_query/grammar/statements/insert.y"
19745 {
19746 (yyval.onconflictshorthand) = PG_ONCONFLICT_ALIAS_IGNORE;
19747 ;}
19748 break;
19749
19750 case 158:
19751#line 160 "third_party/libpg_query/grammar/statements/insert.y"
19752 {
19753 (yyval.onconflictshorthand) = PG_ONCONFLICT_ALIAS_NONE;
19754 ;}
19755 break;
19756
19757 case 159:
19758#line 167 "third_party/libpg_query/grammar/statements/insert.y"
19759 {
19760 (yyval.onconflict) = makeNode(PGOnConflictClause);
19761 (yyval.onconflict)->action = PG_ONCONFLICT_UPDATE;
19762 (yyval.onconflict)->infer = (yyvsp[(3) - (8)].infer);
19763 (yyval.onconflict)->targetList = (yyvsp[(7) - (8)].list);
19764 (yyval.onconflict)->whereClause = (yyvsp[(8) - (8)].node);
19765 (yyval.onconflict)->location = (yylsp[(1) - (8)]);
19766 ;}
19767 break;
19768
19769 case 160:
19770#line 177 "third_party/libpg_query/grammar/statements/insert.y"
19771 {
19772 (yyval.onconflict) = makeNode(PGOnConflictClause);
19773 (yyval.onconflict)->action = PG_ONCONFLICT_NOTHING;
19774 (yyval.onconflict)->infer = (yyvsp[(3) - (5)].infer);
19775 (yyval.onconflict)->targetList = NIL;
19776 (yyval.onconflict)->whereClause = NULL;
19777 (yyval.onconflict)->location = (yylsp[(1) - (5)]);
19778 ;}
19779 break;
19780
19781 case 161:
19782#line 186 "third_party/libpg_query/grammar/statements/insert.y"
19783 {
19784 (yyval.onconflict) = NULL;
19785 ;}
19786 break;
19787
19788 case 162:
19789#line 193 "third_party/libpg_query/grammar/statements/insert.y"
19790 {
19791 (yyval.ielem) = makeNode(PGIndexElem);
19792 (yyval.ielem)->name = (yyvsp[(1) - (5)].str);
19793 (yyval.ielem)->expr = NULL;
19794 (yyval.ielem)->indexcolname = NULL;
19795 (yyval.ielem)->collation = (yyvsp[(2) - (5)].list);
19796 (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list);
19797 (yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder);
19798 (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder);
19799 ;}
19800 break;
19801
19802 case 163:
19803#line 204 "third_party/libpg_query/grammar/statements/insert.y"
19804 {
19805 (yyval.ielem) = makeNode(PGIndexElem);
19806 (yyval.ielem)->name = NULL;
19807 (yyval.ielem)->expr = (yyvsp[(1) - (5)].node);
19808 (yyval.ielem)->indexcolname = NULL;
19809 (yyval.ielem)->collation = (yyvsp[(2) - (5)].list);
19810 (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list);
19811 (yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder);
19812 (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder);
19813 ;}
19814 break;
19815
19816 case 164:
19817#line 215 "third_party/libpg_query/grammar/statements/insert.y"
19818 {
19819 (yyval.ielem) = makeNode(PGIndexElem);
19820 (yyval.ielem)->name = NULL;
19821 (yyval.ielem)->expr = (yyvsp[(2) - (7)].node);
19822 (yyval.ielem)->indexcolname = NULL;
19823 (yyval.ielem)->collation = (yyvsp[(4) - (7)].list);
19824 (yyval.ielem)->opclass = (yyvsp[(5) - (7)].list);
19825 (yyval.ielem)->ordering = (yyvsp[(6) - (7)].sortorder);
19826 (yyval.ielem)->nulls_ordering = (yyvsp[(7) - (7)].nullorder);
19827 ;}
19828 break;
19829
19830 case 165:
19831#line 229 "third_party/libpg_query/grammar/statements/insert.y"
19832 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
19833 break;
19834
19835 case 166:
19836#line 230 "third_party/libpg_query/grammar/statements/insert.y"
19837 { (yyval.list) = NIL; ;}
19838 break;
19839
19840 case 167:
19841#line 236 "third_party/libpg_query/grammar/statements/insert.y"
19842 { (yyval.override) = PG_OVERRIDING_USER_VALUE; ;}
19843 break;
19844
19845 case 168:
19846#line 237 "third_party/libpg_query/grammar/statements/insert.y"
19847 { (yyval.override) = OVERRIDING_SYSTEM_VALUE; ;}
19848 break;
19849
19850 case 169:
19851#line 242 "third_party/libpg_query/grammar/statements/insert.y"
19852 { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
19853 break;
19854
19855 case 170:
19856#line 243 "third_party/libpg_query/grammar/statements/insert.y"
19857 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list),datum: (yyvsp[(3) - (3)].target)); ;}
19858 break;
19859
19860 case 171:
19861#line 249 "third_party/libpg_query/grammar/statements/insert.y"
19862 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
19863 break;
19864
19865 case 172:
19866#line 250 "third_party/libpg_query/grammar/statements/insert.y"
19867 { (yyval.list) = NIL; ;}
19868 break;
19869
19870 case 173:
19871#line 254 "third_party/libpg_query/grammar/statements/insert.y"
19872 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
19873 break;
19874
19875 case 174:
19876#line 255 "third_party/libpg_query/grammar/statements/insert.y"
19877 { (yyval.list) = NIL; ;}
19878 break;
19879
19880 case 175:
19881#line 261 "third_party/libpg_query/grammar/statements/insert.y"
19882 { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
19883 break;
19884
19885 case 176:
19886#line 263 "third_party/libpg_query/grammar/statements/insert.y"
19887 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].target)); ;}
19888 break;
19889
19890 case 177:
19891#line 268 "third_party/libpg_query/grammar/statements/insert.y"
19892 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
19893 break;
19894
19895 case 178:
19896#line 269 "third_party/libpg_query/grammar/statements/insert.y"
19897 { (yyval.list) = list_concat(list1: (yyvsp[(1) - (3)].list),list2: (yyvsp[(3) - (3)].list)); ;}
19898 break;
19899
19900 case 179:
19901#line 273 "third_party/libpg_query/grammar/statements/insert.y"
19902 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
19903 break;
19904
19905 case 180:
19906#line 274 "third_party/libpg_query/grammar/statements/insert.y"
19907 { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
19908 break;
19909
19910 case 181:
19911#line 277 "third_party/libpg_query/grammar/statements/insert.y"
19912 { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;}
19913 break;
19914
19915 case 182:
19916#line 278 "third_party/libpg_query/grammar/statements/insert.y"
19917 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].ielem)); ;}
19918 break;
19919
19920 case 183:
19921#line 284 "third_party/libpg_query/grammar/statements/insert.y"
19922 {
19923 (yyval.target) = makeNode(PGResTarget);
19924 (yyval.target)->name = (yyvsp[(1) - (2)].str);
19925 (yyval.target)->indirection = check_indirection(indirection: (yyvsp[(2) - (2)].list), yyscanner);
19926 (yyval.target)->val = NULL; /* upper production sets this */
19927 (yyval.target)->location = (yylsp[(1) - (2)]);
19928 ;}
19929 break;
19930
19931 case 184:
19932#line 8 "third_party/libpg_query/grammar/statements/create_type.y"
19933 {
19934 PGCreateTypeStmt *n = makeNode(PGCreateTypeStmt);
19935 n->typeName = (yyvsp[(3) - (6)].range);
19936 n->kind = PG_NEWTYPE_ENUM;
19937 n->query = (yyvsp[(6) - (6)].node);
19938 n->vals = NULL;
19939 (yyval.node) = (PGNode *)n;
19940 ;}
19941 break;
19942
19943 case 185:
19944#line 17 "third_party/libpg_query/grammar/statements/create_type.y"
19945 {
19946 PGCreateTypeStmt *n = makeNode(PGCreateTypeStmt);
19947 n->typeName = (yyvsp[(3) - (8)].range);
19948 n->kind = PG_NEWTYPE_ENUM;
19949 n->vals = (yyvsp[(7) - (8)].list);
19950 n->query = NULL;
19951 (yyval.node) = (PGNode *)n;
19952 ;}
19953 break;
19954
19955 case 186:
19956#line 26 "third_party/libpg_query/grammar/statements/create_type.y"
19957 {
19958 PGCreateTypeStmt *n = makeNode(PGCreateTypeStmt);
19959 n->typeName = (yyvsp[(3) - (5)].range);
19960 n->query = NULL;
19961 auto name = std::string(reinterpret_cast<PGValue *>((yyvsp[(5) - (5)].typnam)->names->tail->data.ptr_value)->val.str);
19962 if (name == "enum") {
19963 n->kind = PG_NEWTYPE_ENUM;
19964 n->vals = (yyvsp[(5) - (5)].typnam)->typmods;
19965 } else {
19966 n->kind = PG_NEWTYPE_ALIAS;
19967 n->ofType = (yyvsp[(5) - (5)].typnam);
19968 }
19969 (yyval.node) = (PGNode *)n;
19970 ;}
19971 break;
19972
19973 case 187:
19974#line 46 "third_party/libpg_query/grammar/statements/create_type.y"
19975 { (yyval.list) = (yyvsp[(1) - (1)].list);;}
19976 break;
19977
19978 case 188:
19979#line 47 "third_party/libpg_query/grammar/statements/create_type.y"
19980 {(yyval.list) = NIL;;}
19981 break;
19982
19983 case 189:
19984#line 51 "third_party/libpg_query/grammar/statements/create_type.y"
19985 {
19986 (yyval.list) = list_make1(makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])));
19987 ;}
19988 break;
19989
19990 case 190:
19991#line 55 "third_party/libpg_query/grammar/statements/create_type.y"
19992 {
19993 (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: makeStringConst(str: (yyvsp[(3) - (3)].str), location: (yylsp[(3) - (3)])));
19994 ;}
19995 break;
19996
19997 case 191:
19998#line 8 "third_party/libpg_query/grammar/statements/pragma.y"
19999 {
20000 PGPragmaStmt *n = makeNode(PGPragmaStmt);
20001 n->kind = PG_PRAGMA_TYPE_NOTHING;
20002 n->name = (yyvsp[(2) - (2)].str);
20003 (yyval.node) = (PGNode *)n;
20004 ;}
20005 break;
20006
20007 case 192:
20008#line 15 "third_party/libpg_query/grammar/statements/pragma.y"
20009 {
20010 PGPragmaStmt *n = makeNode(PGPragmaStmt);
20011 n->kind = PG_PRAGMA_TYPE_ASSIGNMENT;
20012 n->name = (yyvsp[(2) - (4)].str);
20013 n->args = (yyvsp[(4) - (4)].list);
20014 (yyval.node) = (PGNode *)n;
20015 ;}
20016 break;
20017
20018 case 193:
20019#line 23 "third_party/libpg_query/grammar/statements/pragma.y"
20020 {
20021 PGPragmaStmt *n = makeNode(PGPragmaStmt);
20022 n->kind = PG_PRAGMA_TYPE_CALL;
20023 n->name = (yyvsp[(2) - (5)].str);
20024 n->args = (yyvsp[(4) - (5)].list);
20025 (yyval.node) = (PGNode *)n;
20026 ;}
20027 break;
20028
20029 case 194:
20030#line 10 "third_party/libpg_query/grammar/statements/create_sequence.y"
20031 {
20032 PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt);
20033 (yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival);
20034 n->sequence = (yyvsp[(4) - (5)].range);
20035 n->options = (yyvsp[(5) - (5)].list);
20036 n->ownerId = InvalidOid;
20037 n->onconflict = PG_ERROR_ON_CONFLICT;
20038 (yyval.node) = (PGNode *)n;
20039 ;}
20040 break;
20041
20042 case 195:
20043#line 20 "third_party/libpg_query/grammar/statements/create_sequence.y"
20044 {
20045 PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt);
20046 (yyvsp[(7) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival);
20047 n->sequence = (yyvsp[(7) - (8)].range);
20048 n->options = (yyvsp[(8) - (8)].list);
20049 n->ownerId = InvalidOid;
20050 n->onconflict = PG_IGNORE_ON_CONFLICT;
20051 (yyval.node) = (PGNode *)n;
20052 ;}
20053 break;
20054
20055 case 196:
20056#line 30 "third_party/libpg_query/grammar/statements/create_sequence.y"
20057 {
20058 PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt);
20059 (yyvsp[(6) - (7)].range)->relpersistence = (yyvsp[(4) - (7)].ival);
20060 n->sequence = (yyvsp[(6) - (7)].range);
20061 n->options = (yyvsp[(7) - (7)].list);
20062 n->ownerId = InvalidOid;
20063 n->onconflict = PG_REPLACE_ON_CONFLICT;
20064 (yyval.node) = (PGNode *)n;
20065 ;}
20066 break;
20067
20068 case 197:
20069#line 42 "third_party/libpg_query/grammar/statements/create_sequence.y"
20070 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
20071 break;
20072
20073 case 198:
20074#line 43 "third_party/libpg_query/grammar/statements/create_sequence.y"
20075 { (yyval.list) = NIL; ;}
20076 break;
20077
20078 case 199:
20079#line 8 "third_party/libpg_query/grammar/statements/execute.y"
20080 {
20081 PGExecuteStmt *n = makeNode(PGExecuteStmt);
20082 n->name = (yyvsp[(2) - (3)].str);
20083 n->params = (yyvsp[(3) - (3)].list);
20084 (yyval.node) = (PGNode *) n;
20085 ;}
20086 break;
20087
20088 case 200:
20089#line 16 "third_party/libpg_query/grammar/statements/execute.y"
20090 {
20091 PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
20092 PGExecuteStmt *n = makeNode(PGExecuteStmt);
20093 n->name = (yyvsp[(7) - (9)].str);
20094 n->params = (yyvsp[(8) - (9)].list);
20095 ctas->query = (PGNode *) n;
20096 ctas->into = (yyvsp[(4) - (9)].into);
20097 ctas->relkind = PG_OBJECT_TABLE;
20098 ctas->is_select_into = false;
20099 ctas->onconflict = PG_ERROR_ON_CONFLICT;
20100 /* cram additional flags into the PGIntoClause */
20101 (yyvsp[(4) - (9)].into)->rel->relpersistence = (yyvsp[(2) - (9)].ival);
20102 (yyvsp[(4) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean));
20103 (yyval.node) = (PGNode *) ctas;
20104 ;}
20105 break;
20106
20107 case 201:
20108#line 33 "third_party/libpg_query/grammar/statements/execute.y"
20109 {
20110 PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
20111 PGExecuteStmt *n = makeNode(PGExecuteStmt);
20112 n->name = (yyvsp[(10) - (12)].str);
20113 n->params = (yyvsp[(11) - (12)].list);
20114 ctas->query = (PGNode *) n;
20115 ctas->into = (yyvsp[(7) - (12)].into);
20116 ctas->relkind = PG_OBJECT_TABLE;
20117 ctas->is_select_into = false;
20118 ctas->onconflict = PG_IGNORE_ON_CONFLICT;
20119 /* cram additional flags into the PGIntoClause */
20120 (yyvsp[(7) - (12)].into)->rel->relpersistence = (yyvsp[(2) - (12)].ival);
20121 (yyvsp[(7) - (12)].into)->skipData = !((yyvsp[(12) - (12)].boolean));
20122 (yyval.node) = (PGNode *) ctas;
20123 ;}
20124 break;
20125
20126 case 202:
20127#line 51 "third_party/libpg_query/grammar/statements/execute.y"
20128 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
20129 break;
20130
20131 case 203:
20132#line 52 "third_party/libpg_query/grammar/statements/execute.y"
20133 { (yyval.list) = NIL; ;}
20134 break;
20135
20136 case 204:
20137#line 10 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20138 {
20139 PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt);
20140 n->sequence = (yyvsp[(3) - (4)].range);
20141 n->options = (yyvsp[(4) - (4)].list);
20142 n->missing_ok = false;
20143 (yyval.node) = (PGNode *)n;
20144 ;}
20145 break;
20146
20147 case 205:
20148#line 18 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20149 {
20150 PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt);
20151 n->sequence = (yyvsp[(5) - (6)].range);
20152 n->options = (yyvsp[(6) - (6)].list);
20153 n->missing_ok = true;
20154 (yyval.node) = (PGNode *)n;
20155 ;}
20156 break;
20157
20158 case 206:
20159#line 29 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20160 { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
20161 break;
20162
20163 case 207:
20164#line 30 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20165 { (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].defelt)); ;}
20166 break;
20167
20168 case 208:
20169#line 34 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20170 {;}
20171 break;
20172
20173 case 209:
20174#line 35 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20175 {;}
20176 break;
20177
20178 case 210:
20179#line 36 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20180 {;}
20181 break;
20182
20183 case 211:
20184#line 41 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20185 { (yyval.value) = makeFloat(numericStr: (yyvsp[(1) - (1)].str)); ;}
20186 break;
20187
20188 case 212:
20189#line 42 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20190 { (yyval.value) = makeFloat(numericStr: (yyvsp[(2) - (2)].str)); ;}
20191 break;
20192
20193 case 213:
20194#line 44 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20195 {
20196 (yyval.value) = makeFloat(numericStr: (yyvsp[(2) - (2)].str));
20197 doNegateFloat(v: (yyval.value));
20198 ;}
20199 break;
20200
20201 case 214:
20202#line 48 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20203 { (yyval.value) = makeInteger(i: (yyvsp[(1) - (1)].ival)); ;}
20204 break;
20205
20206 case 215:
20207#line 53 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20208 {
20209 (yyval.defelt) = makeDefElem(name: "as", arg: (PGNode *)(yyvsp[(2) - (2)].typnam), location: (yylsp[(1) - (2)]));
20210 ;}
20211 break;
20212
20213 case 216:
20214#line 57 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20215 {
20216 (yyval.defelt) = makeDefElem(name: "cache", arg: (PGNode *)(yyvsp[(2) - (2)].value), location: (yylsp[(1) - (2)]));
20217 ;}
20218 break;
20219
20220 case 217:
20221#line 61 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20222 {
20223 (yyval.defelt) = makeDefElem(name: "cycle", arg: (PGNode *)makeInteger(i: true), location: (yylsp[(1) - (1)]));
20224 ;}
20225 break;
20226
20227 case 218:
20228#line 65 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20229 {
20230 (yyval.defelt) = makeDefElem(name: "cycle", arg: (PGNode *)makeInteger(i: false), location: (yylsp[(1) - (2)]));
20231 ;}
20232 break;
20233
20234 case 219:
20235#line 69 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20236 {
20237 (yyval.defelt) = makeDefElem(name: "increment", arg: (PGNode *)(yyvsp[(3) - (3)].value), location: (yylsp[(1) - (3)]));
20238 ;}
20239 break;
20240
20241 case 220:
20242#line 73 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20243 {
20244 (yyval.defelt) = makeDefElem(name: "maxvalue", arg: (PGNode *)(yyvsp[(2) - (2)].value), location: (yylsp[(1) - (2)]));
20245 ;}
20246 break;
20247
20248 case 221:
20249#line 77 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20250 {
20251 (yyval.defelt) = makeDefElem(name: "minvalue", arg: (PGNode *)(yyvsp[(2) - (2)].value), location: (yylsp[(1) - (2)]));
20252 ;}
20253 break;
20254
20255 case 222:
20256#line 81 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20257 {
20258 (yyval.defelt) = makeDefElem(name: "maxvalue", NULL, location: (yylsp[(1) - (2)]));
20259 ;}
20260 break;
20261
20262 case 223:
20263#line 85 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20264 {
20265 (yyval.defelt) = makeDefElem(name: "minvalue", NULL, location: (yylsp[(1) - (2)]));
20266 ;}
20267 break;
20268
20269 case 224:
20270#line 89 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20271 {
20272 (yyval.defelt) = makeDefElem(name: "owned_by", arg: (PGNode *)(yyvsp[(3) - (3)].list), location: (yylsp[(1) - (3)]));
20273 ;}
20274 break;
20275
20276 case 225:
20277#line 93 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20278 {
20279 /* not documented, only used by pg_dump */
20280 (yyval.defelt) = makeDefElem(name: "sequence_name", arg: (PGNode *)(yyvsp[(3) - (3)].list), location: (yylsp[(1) - (3)]));
20281 ;}
20282 break;
20283
20284 case 226:
20285#line 98 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20286 {
20287 (yyval.defelt) = makeDefElem(name: "start", arg: (PGNode *)(yyvsp[(3) - (3)].value), location: (yylsp[(1) - (3)]));
20288 ;}
20289 break;
20290
20291 case 227:
20292#line 102 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20293 {
20294 (yyval.defelt) = makeDefElem(name: "restart", NULL, location: (yylsp[(1) - (1)]));
20295 ;}
20296 break;
20297
20298 case 228:
20299#line 106 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20300 {
20301 (yyval.defelt) = makeDefElem(name: "restart", arg: (PGNode *)(yyvsp[(3) - (3)].value), location: (yylsp[(1) - (3)]));
20302 ;}
20303 break;
20304
20305 case 229:
20306#line 112 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20307 {;}
20308 break;
20309
20310 case 230:
20311#line 113 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20312 {;}
20313 break;
20314
20315 case 231:
20316#line 117 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20317 { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
20318 break;
20319
20320 case 232:
20321#line 118 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20322 { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;}
20323 break;
20324
20325 case 233:
20326#line 119 "third_party/libpg_query/grammar/statements/alter_sequence.y"
20327 { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;}
20328 break;
20329
20330 case 234:
20331#line 3 "third_party/libpg_query/grammar/statements/transaction.y"
20332 {
20333 PGTransactionStmt *n = makeNode(PGTransactionStmt);
20334 n->kind = PG_TRANS_STMT_ROLLBACK;
20335 n->options = NIL;
20336 (yyval.node) = (PGNode *)n;
20337 ;}
20338 break;
20339
20340 case 235:
20341#line 10 "third_party/libpg_query/grammar/statements/transaction.y"
20342 {
20343 PGTransactionStmt *n = makeNode(PGTransactionStmt);
20344 n->kind = PG_TRANS_STMT_BEGIN;
20345 (yyval.node) = (PGNode *)n;
20346 ;}
20347 break;
20348
20349 case 236:
20350#line 16 "third_party/libpg_query/grammar/statements/transaction.y"
20351 {
20352 PGTransactionStmt *n = makeNode(PGTransactionStmt);
20353 n->kind = PG_TRANS_STMT_START;
20354 (yyval.node) = (PGNode *)n;
20355 ;}
20356 break;
20357
20358 case 237:
20359#line 22 "third_party/libpg_query/grammar/statements/transaction.y"
20360 {
20361 PGTransactionStmt *n = makeNode(PGTransactionStmt);
20362 n->kind = PG_TRANS_STMT_COMMIT;
20363 n->options = NIL;
20364 (yyval.node) = (PGNode *)n;
20365 ;}
20366 break;
20367
20368 case 238:
20369#line 29 "third_party/libpg_query/grammar/statements/transaction.y"
20370 {
20371 PGTransactionStmt *n = makeNode(PGTransactionStmt);
20372 n->kind = PG_TRANS_STMT_COMMIT;
20373 n->options = NIL;
20374 (yyval.node) = (PGNode *)n;
20375 ;}
20376 break;
20377
20378 case 239:
20379#line 36 "third_party/libpg_query/grammar/statements/transaction.y"
20380 {
20381 PGTransactionStmt *n = makeNode(PGTransactionStmt);
20382 n->kind = PG_TRANS_STMT_ROLLBACK;
20383 n->options = NIL;
20384 (yyval.node) = (PGNode *)n;
20385 ;}
20386 break;
20387
20388 case 240:
20389#line 45 "third_party/libpg_query/grammar/statements/transaction.y"
20390 {;}
20391 break;
20392
20393 case 241:
20394#line 46 "third_party/libpg_query/grammar/statements/transaction.y"
20395 {;}
20396 break;
20397
20398 case 242:
20399#line 47 "third_party/libpg_query/grammar/statements/transaction.y"
20400 {;}
20401 break;
20402
20403 case 243:
20404#line 3 "third_party/libpg_query/grammar/statements/use.y"
20405 {
20406 PGUseStmt *n = makeNode(PGUseStmt);
20407 n->name = (yyvsp[(2) - (2)].range);
20408 (yyval.node) = (PGNode *) n;
20409 ;}
20410 break;
20411
20412 case 244:
20413#line 9 "third_party/libpg_query/grammar/statements/create.y"
20414 {
20415 PGCreateStmt *n = makeNode(PGCreateStmt);
20416 (yyvsp[(4) - (9)].range)->relpersistence = (yyvsp[(2) - (9)].ival);
20417 n->relation = (yyvsp[(4) - (9)].range);
20418 n->tableElts = (yyvsp[(6) - (9)].list);
20419 n->ofTypename = NULL;
20420 n->constraints = NIL;
20421 n->options = (yyvsp[(8) - (9)].list);
20422 n->oncommit = (yyvsp[(9) - (9)].oncommit);
20423 n->onconflict = PG_ERROR_ON_CONFLICT;
20424 (yyval.node) = (PGNode *)n;
20425 ;}
20426 break;
20427
20428 case 245:
20429#line 24 "third_party/libpg_query/grammar/statements/create.y"
20430 {
20431 PGCreateStmt *n = makeNode(PGCreateStmt);
20432 (yyvsp[(7) - (12)].range)->relpersistence = (yyvsp[(2) - (12)].ival);
20433 n->relation = (yyvsp[(7) - (12)].range);
20434 n->tableElts = (yyvsp[(9) - (12)].list);
20435 n->ofTypename = NULL;
20436 n->constraints = NIL;
20437 n->options = (yyvsp[(11) - (12)].list);
20438 n->oncommit = (yyvsp[(12) - (12)].oncommit);
20439 n->onconflict = PG_IGNORE_ON_CONFLICT;
20440 (yyval.node) = (PGNode *)n;
20441 ;}
20442 break;
20443
20444 case 246:
20445#line 39 "third_party/libpg_query/grammar/statements/create.y"
20446 {
20447 PGCreateStmt *n = makeNode(PGCreateStmt);
20448 (yyvsp[(6) - (11)].range)->relpersistence = (yyvsp[(4) - (11)].ival);
20449 n->relation = (yyvsp[(6) - (11)].range);
20450 n->tableElts = (yyvsp[(8) - (11)].list);
20451 n->ofTypename = NULL;
20452 n->constraints = NIL;
20453 n->options = (yyvsp[(10) - (11)].list);
20454 n->oncommit = (yyvsp[(11) - (11)].oncommit);
20455 n->onconflict = PG_REPLACE_ON_CONFLICT;
20456 (yyval.node) = (PGNode *)n;
20457 ;}
20458 break;
20459
20460 case 247:
20461#line 56 "third_party/libpg_query/grammar/statements/create.y"
20462 { (yyval.ival) = 0; ;}
20463 break;
20464
20465 case 248:
20466#line 58 "third_party/libpg_query/grammar/statements/create.y"
20467 {
20468 /*
20469 * We must complain about conflicting options.
20470 * We could, but choose not to, complain about redundant
20471 * options (ie, where $2's bit is already set in $1).
20472 */
20473 int newspec = (yyvsp[(1) - (2)].ival) | (yyvsp[(2) - (2)].ival);
20474
20475 /* special message for this case */
20476 if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED))
20477 ereport(code: ERROR,
20478 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
20479 errmsg(fmt: "constraint declared INITIALLY DEFERRED must be DEFERRABLE"),
20480 parser_errposition((yylsp[(2) - (2)]))));
20481 /* generic message for other conflicts */
20482 if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) ||
20483 (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED))
20484 ereport(code: ERROR,
20485 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
20486 errmsg(fmt: "conflicting constraint properties"),
20487 parser_errposition((yylsp[(2) - (2)]))));
20488 (yyval.ival) = newspec;
20489 ;}
20490 break;
20491
20492 case 249:
20493#line 84 "third_party/libpg_query/grammar/statements/create.y"
20494 { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].typnam); ;}
20495 break;
20496
20497 case 250:
20498#line 85 "third_party/libpg_query/grammar/statements/create.y"
20499 { (yyval.node) = (PGNode *)makeString(str: pstrdup(in: (yyvsp[(1) - (1)].keyword))); ;}
20500 break;
20501
20502 case 251:
20503#line 86 "third_party/libpg_query/grammar/statements/create.y"
20504 { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].list); ;}
20505 break;
20506
20507 case 252:
20508#line 87 "third_party/libpg_query/grammar/statements/create.y"
20509 { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].value); ;}
20510 break;
20511
20512 case 253:
20513#line 88 "third_party/libpg_query/grammar/statements/create.y"
20514 { (yyval.node) = (PGNode *)makeString(str: (yyvsp[(1) - (1)].str)); ;}
20515 break;
20516
20517 case 254:
20518#line 89 "third_party/libpg_query/grammar/statements/create.y"
20519 { (yyval.node) = (PGNode *)makeString(str: pstrdup(in: (yyvsp[(1) - (1)].keyword))); ;}
20520 break;
20521
20522 case 255:
20523#line 93 "third_party/libpg_query/grammar/statements/create.y"
20524 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
20525 break;
20526
20527 case 256:
20528#line 94 "third_party/libpg_query/grammar/statements/create.y"
20529 { (yyval.list) = NIL; ;}
20530 break;
20531
20532 case 257:
20533#line 99 "third_party/libpg_query/grammar/statements/create.y"
20534 { (yyval.node) = (PGNode *) makeString(str: (yyvsp[(1) - (1)].str)); ;}
20535 break;
20536
20537 case 258:
20538#line 104 "third_party/libpg_query/grammar/statements/create.y"
20539 { (yyval.ival) = PG_FKCONSTR_ACTION_NOACTION; ;}
20540 break;
20541
20542 case 259:
20543#line 105 "third_party/libpg_query/grammar/statements/create.y"
20544 { (yyval.ival) = PG_FKCONSTR_ACTION_RESTRICT; ;}
20545 break;
20546
20547 case 260:
20548#line 106 "third_party/libpg_query/grammar/statements/create.y"
20549 { (yyval.ival) = PG_FKCONSTR_ACTION_CASCADE; ;}
20550 break;
20551
20552 case 261:
20553#line 107 "third_party/libpg_query/grammar/statements/create.y"
20554 { (yyval.ival) = PG_FKCONSTR_ACTION_SETNULL; ;}
20555 break;
20556
20557 case 262:
20558#line 108 "third_party/libpg_query/grammar/statements/create.y"
20559 { (yyval.ival) = PG_FKCONSTR_ACTION_SETDEFAULT; ;}
20560 break;
20561
20562 case 263:
20563#line 114 "third_party/libpg_query/grammar/statements/create.y"
20564 {
20565 PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node));
20566 n->conname = (yyvsp[(2) - (3)].str);
20567 n->location = (yylsp[(1) - (3)]);
20568 (yyval.node) = (PGNode *) n;
20569 ;}
20570 break;
20571
20572 case 264:
20573#line 120 "third_party/libpg_query/grammar/statements/create.y"
20574 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
20575 break;
20576
20577 case 265:
20578#line 121 "third_party/libpg_query/grammar/statements/create.y"
20579 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
20580 break;
20581
20582 case 266:
20583#line 123 "third_party/libpg_query/grammar/statements/create.y"
20584 {
20585 /*
20586 * Note: the PGCollateClause is momentarily included in
20587 * the list built by ColQualList, but we split it out
20588 * again in SplitColQualList.
20589 */
20590 PGCollateClause *n = makeNode(PGCollateClause);
20591 n->arg = NULL;
20592 n->collname = (yyvsp[(2) - (2)].list);
20593 n->location = (yylsp[(1) - (2)]);
20594 (yyval.node) = (PGNode *) n;
20595 ;}
20596 break;
20597
20598 case 267:
20599#line 140 "third_party/libpg_query/grammar/statements/create.y"
20600 {
20601 PGConstraint *n = makeNode(PGConstraint);
20602 n->contype = PG_CONSTR_NOTNULL;
20603 n->location = (yylsp[(1) - (2)]);
20604 (yyval.node) = (PGNode *)n;
20605 ;}
20606 break;
20607
20608 case 268:
20609#line 147 "third_party/libpg_query/grammar/statements/create.y"
20610 {
20611 PGConstraint *n = makeNode(PGConstraint);
20612 n->contype = PG_CONSTR_NULL;
20613 n->location = (yylsp[(1) - (1)]);
20614 (yyval.node) = (PGNode *)n;
20615 ;}
20616 break;
20617
20618 case 269:
20619#line 154 "third_party/libpg_query/grammar/statements/create.y"
20620 {
20621 PGConstraint *n = makeNode(PGConstraint);
20622 n->contype = PG_CONSTR_UNIQUE;
20623 n->location = (yylsp[(1) - (2)]);
20624 n->keys = NULL;
20625 n->options = (yyvsp[(2) - (2)].list);
20626 n->indexname = NULL;
20627 (yyval.node) = (PGNode *)n;
20628 ;}
20629 break;
20630
20631 case 270:
20632#line 164 "third_party/libpg_query/grammar/statements/create.y"
20633 {
20634 PGConstraint *n = makeNode(PGConstraint);
20635 n->contype = PG_CONSTR_PRIMARY;
20636 n->location = (yylsp[(1) - (3)]);
20637 n->keys = NULL;
20638 n->options = (yyvsp[(3) - (3)].list);
20639 n->indexname = NULL;
20640 (yyval.node) = (PGNode *)n;
20641 ;}
20642 break;
20643
20644 case 271:
20645#line 174 "third_party/libpg_query/grammar/statements/create.y"
20646 {
20647 PGConstraint *n = makeNode(PGConstraint);
20648 n->contype = PG_CONSTR_CHECK;
20649 n->location = (yylsp[(1) - (5)]);
20650 n->is_no_inherit = (yyvsp[(5) - (5)].boolean);
20651 n->raw_expr = (yyvsp[(3) - (5)].node);
20652 n->cooked_expr = NULL;
20653 n->skip_validation = false;
20654 n->initially_valid = true;
20655 (yyval.node) = (PGNode *)n;
20656 ;}
20657 break;
20658
20659 case 272:
20660#line 186 "third_party/libpg_query/grammar/statements/create.y"
20661 {
20662 PGConstraint *n = makeNode(PGConstraint);
20663 n->contype = PG_CONSTR_COMPRESSION;
20664 n->location = (yylsp[(1) - (3)]);
20665 n->compression_name = (yyvsp[(3) - (3)].str);
20666 (yyval.node) = (PGNode *)n;
20667 ;}
20668 break;
20669
20670 case 273:
20671#line 194 "third_party/libpg_query/grammar/statements/create.y"
20672 {
20673 PGConstraint *n = makeNode(PGConstraint);
20674 n->contype = PG_CONSTR_DEFAULT;
20675 n->location = (yylsp[(1) - (2)]);
20676 n->raw_expr = (yyvsp[(2) - (2)].node);
20677 n->cooked_expr = NULL;
20678 (yyval.node) = (PGNode *)n;
20679 ;}
20680 break;
20681
20682 case 274:
20683#line 203 "third_party/libpg_query/grammar/statements/create.y"
20684 {
20685 PGConstraint *n = makeNode(PGConstraint);
20686 n->contype = PG_CONSTR_FOREIGN;
20687 n->location = (yylsp[(1) - (5)]);
20688 n->pktable = (yyvsp[(2) - (5)].range);
20689 n->fk_attrs = NIL;
20690 n->pk_attrs = (yyvsp[(3) - (5)].list);
20691 n->fk_matchtype = (yyvsp[(4) - (5)].ival);
20692 n->fk_upd_action = (char) ((yyvsp[(5) - (5)].ival) >> 8);
20693 n->fk_del_action = (char) ((yyvsp[(5) - (5)].ival) & 0xFF);
20694 n->skip_validation = false;
20695 n->initially_valid = true;
20696 (yyval.node) = (PGNode *)n;
20697 ;}
20698 break;
20699
20700 case 275:
20701#line 220 "third_party/libpg_query/grammar/statements/create.y"
20702 { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; ;}
20703 break;
20704
20705 case 276:
20706#line 221 "third_party/libpg_query/grammar/statements/create.y"
20707 { (yyval.constr) = PG_CONSTR_GENERATED_STORED; ;}
20708 break;
20709
20710 case 277:
20711#line 225 "third_party/libpg_query/grammar/statements/create.y"
20712 { (yyval.constr) = (yyvsp[(1) - (1)].constr); ;}
20713 break;
20714
20715 case 278:
20716#line 226 "third_party/libpg_query/grammar/statements/create.y"
20717 { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; ;}
20718 break;
20719
20720 case 279:
20721#line 231 "third_party/libpg_query/grammar/statements/create.y"
20722 {
20723 PGConstraint *n = makeNode(PGConstraint);
20724 n->contype = PG_CONSTR_IDENTITY;
20725 n->generated_when = (yyvsp[(2) - (5)].ival);
20726 n->options = (yyvsp[(5) - (5)].list);
20727 n->location = (yylsp[(1) - (5)]);
20728 (yyval.node) = (PGNode *)n;
20729 ;}
20730 break;
20731
20732 case 280:
20733#line 240 "third_party/libpg_query/grammar/statements/create.y"
20734 {
20735 PGConstraint *n = makeNode(PGConstraint);
20736 n->contype = (yyvsp[(7) - (7)].constr);
20737 n->generated_when = (yyvsp[(2) - (7)].ival);
20738 n->raw_expr = (yyvsp[(5) - (7)].node);
20739 n->cooked_expr = NULL;
20740 n->location = (yylsp[(1) - (7)]);
20741
20742 /*
20743 * Can't do this in the grammar because of shift/reduce
20744 * conflicts. (IDENTITY allows both ALWAYS and BY
20745 * DEFAULT, but generated columns only allow ALWAYS.) We
20746 * can also give a more useful error message and location.
20747 */
20748 if ((yyvsp[(2) - (7)].ival) != PG_ATTRIBUTE_IDENTITY_ALWAYS)
20749 ereport(code: ERROR,
20750 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
20751 errmsg(fmt: "for a generated column, GENERATED ALWAYS must be specified"),
20752 parser_errposition((yylsp[(2) - (7)]))));
20753
20754 (yyval.node) = (PGNode *)n;
20755 ;}
20756 break;
20757
20758 case 281:
20759#line 263 "third_party/libpg_query/grammar/statements/create.y"
20760 {
20761 PGConstraint *n = makeNode(PGConstraint);
20762 n->contype = (yyvsp[(5) - (5)].constr);
20763 n->generated_when = PG_ATTRIBUTE_IDENTITY_ALWAYS;
20764 n->raw_expr = (yyvsp[(3) - (5)].node);
20765 n->cooked_expr = NULL;
20766 n->location = (yylsp[(1) - (5)]);
20767 (yyval.node) = (PGNode *)n;
20768 ;}
20769 break;
20770
20771 case 282:
20772#line 277 "third_party/libpg_query/grammar/statements/create.y"
20773 {
20774 (yyval.defelt) = makeDefElem(name: (yyvsp[(1) - (2)].str), arg: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)]));
20775 ;}
20776 break;
20777
20778 case 283:
20779#line 283 "third_party/libpg_query/grammar/statements/create.y"
20780 { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;}
20781 break;
20782
20783 case 284:
20784#line 289 "third_party/libpg_query/grammar/statements/create.y"
20785 { (yyval.ival) = ((yyvsp[(1) - (1)].ival) << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;}
20786 break;
20787
20788 case 285:
20789#line 291 "third_party/libpg_query/grammar/statements/create.y"
20790 { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[(1) - (1)].ival) & 0xFF); ;}
20791 break;
20792
20793 case 286:
20794#line 293 "third_party/libpg_query/grammar/statements/create.y"
20795 { (yyval.ival) = ((yyvsp[(1) - (2)].ival) << 8) | ((yyvsp[(2) - (2)].ival) & 0xFF); ;}
20796 break;
20797
20798 case 287:
20799#line 295 "third_party/libpg_query/grammar/statements/create.y"
20800 { (yyval.ival) = ((yyvsp[(2) - (2)].ival) << 8) | ((yyvsp[(1) - (2)].ival) & 0xFF); ;}
20801 break;
20802
20803 case 288:
20804#line 297 "third_party/libpg_query/grammar/statements/create.y"
20805 { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;}
20806 break;
20807
20808 case 289:
20809#line 300 "third_party/libpg_query/grammar/statements/create.y"
20810 { (yyval.oncommit) = ONCOMMIT_DROP; ;}
20811 break;
20812
20813 case 290:
20814#line 301 "third_party/libpg_query/grammar/statements/create.y"
20815 { (yyval.oncommit) = PG_ONCOMMIT_DELETE_ROWS; ;}
20816 break;
20817
20818 case 291:
20819#line 302 "third_party/libpg_query/grammar/statements/create.y"
20820 { (yyval.oncommit) = PG_ONCOMMIT_PRESERVE_ROWS; ;}
20821 break;
20822
20823 case 292:
20824#line 303 "third_party/libpg_query/grammar/statements/create.y"
20825 { (yyval.oncommit) = PG_ONCOMMIT_NOOP; ;}
20826 break;
20827
20828 case 293:
20829#line 308 "third_party/libpg_query/grammar/statements/create.y"
20830 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
20831 break;
20832
20833 case 294:
20834#line 312 "third_party/libpg_query/grammar/statements/create.y"
20835 { (yyval.boolean) = true; ;}
20836 break;
20837
20838 case 295:
20839#line 313 "third_party/libpg_query/grammar/statements/create.y"
20840 { (yyval.boolean) = false; ;}
20841 break;
20842
20843 case 296:
20844#line 319 "third_party/libpg_query/grammar/statements/create.y"
20845 {
20846 PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node));
20847 n->conname = (yyvsp[(2) - (3)].str);
20848 n->location = (yylsp[(1) - (3)]);
20849 (yyval.node) = (PGNode *) n;
20850 ;}
20851 break;
20852
20853 case 297:
20854#line 325 "third_party/libpg_query/grammar/statements/create.y"
20855 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
20856 break;
20857
20858 case 298:
20859#line 330 "third_party/libpg_query/grammar/statements/create.y"
20860 { (yyval.ival) = PG_CREATE_TABLE_LIKE_COMMENTS; ;}
20861 break;
20862
20863 case 299:
20864#line 331 "third_party/libpg_query/grammar/statements/create.y"
20865 { (yyval.ival) = PG_CREATE_TABLE_LIKE_CONSTRAINTS; ;}
20866 break;
20867
20868 case 300:
20869#line 332 "third_party/libpg_query/grammar/statements/create.y"
20870 { (yyval.ival) = PG_CREATE_TABLE_LIKE_DEFAULTS; ;}
20871 break;
20872
20873 case 301:
20874#line 333 "third_party/libpg_query/grammar/statements/create.y"
20875 { (yyval.ival) = PG_CREATE_TABLE_LIKE_IDENTITY; ;}
20876 break;
20877
20878 case 302:
20879#line 334 "third_party/libpg_query/grammar/statements/create.y"
20880 { (yyval.ival) = PG_CREATE_TABLE_LIKE_INDEXES; ;}
20881 break;
20882
20883 case 303:
20884#line 335 "third_party/libpg_query/grammar/statements/create.y"
20885 { (yyval.ival) = PG_CREATE_TABLE_LIKE_STATISTICS; ;}
20886 break;
20887
20888 case 304:
20889#line 336 "third_party/libpg_query/grammar/statements/create.y"
20890 { (yyval.ival) = PG_CREATE_TABLE_LIKE_STORAGE; ;}
20891 break;
20892
20893 case 305:
20894#line 337 "third_party/libpg_query/grammar/statements/create.y"
20895 { (yyval.ival) = PG_CREATE_TABLE_LIKE_ALL; ;}
20896 break;
20897
20898 case 306:
20899#line 343 "third_party/libpg_query/grammar/statements/create.y"
20900 { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
20901 break;
20902
20903 case 307:
20904#line 344 "third_party/libpg_query/grammar/statements/create.y"
20905 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].defelt)); ;}
20906 break;
20907
20908 case 308:
20909#line 348 "third_party/libpg_query/grammar/statements/create.y"
20910 { (yyval.str) = (yyvsp[(3) - (3)].str); ;}
20911 break;
20912
20913 case 309:
20914#line 354 "third_party/libpg_query/grammar/statements/create.y"
20915 {
20916 PGConstraint *n = makeNode(PGConstraint);
20917 n->contype = PG_CONSTR_ATTR_DEFERRABLE;
20918 n->location = (yylsp[(1) - (1)]);
20919 (yyval.node) = (PGNode *)n;
20920 ;}
20921 break;
20922
20923 case 310:
20924#line 361 "third_party/libpg_query/grammar/statements/create.y"
20925 {
20926 PGConstraint *n = makeNode(PGConstraint);
20927 n->contype = PG_CONSTR_ATTR_NOT_DEFERRABLE;
20928 n->location = (yylsp[(1) - (2)]);
20929 (yyval.node) = (PGNode *)n;
20930 ;}
20931 break;
20932
20933 case 311:
20934#line 368 "third_party/libpg_query/grammar/statements/create.y"
20935 {
20936 PGConstraint *n = makeNode(PGConstraint);
20937 n->contype = PG_CONSTR_ATTR_DEFERRED;
20938 n->location = (yylsp[(1) - (2)]);
20939 (yyval.node) = (PGNode *)n;
20940 ;}
20941 break;
20942
20943 case 312:
20944#line 375 "third_party/libpg_query/grammar/statements/create.y"
20945 {
20946 PGConstraint *n = makeNode(PGConstraint);
20947 n->contype = PG_CONSTR_ATTR_IMMEDIATE;
20948 n->location = (yylsp[(1) - (2)]);
20949 (yyval.node) = (PGNode *)n;
20950 ;}
20951 break;
20952
20953 case 313:
20954#line 386 "third_party/libpg_query/grammar/statements/create.y"
20955 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
20956 break;
20957
20958 case 314:
20959#line 387 "third_party/libpg_query/grammar/statements/create.y"
20960 { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(true), (yylsp[(1) - (2)]))); ;}
20961 break;
20962
20963 case 315:
20964#line 388 "third_party/libpg_query/grammar/statements/create.y"
20965 { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(false), (yylsp[(1) - (2)]))); ;}
20966 break;
20967
20968 case 316:
20969#line 389 "third_party/libpg_query/grammar/statements/create.y"
20970 { (yyval.list) = NIL; ;}
20971 break;
20972
20973 case 317:
20974#line 393 "third_party/libpg_query/grammar/statements/create.y"
20975 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
20976 break;
20977
20978 case 318:
20979#line 398 "third_party/libpg_query/grammar/statements/create.y"
20980 { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;}
20981 break;
20982
20983 case 319:
20984#line 399 "third_party/libpg_query/grammar/statements/create.y"
20985 { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;}
20986 break;
20987
20988 case 320:
20989#line 400 "third_party/libpg_query/grammar/statements/create.y"
20990 { (yyval.ival) = 0; ;}
20991 break;
20992
20993 case 321:
20994#line 405 "third_party/libpg_query/grammar/statements/create.y"
20995 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
20996 break;
20997
20998 case 322:
20999#line 410 "third_party/libpg_query/grammar/statements/create.y"
21000 { (yyval.ival) = CAS_NOT_DEFERRABLE; ;}
21001 break;
21002
21003 case 323:
21004#line 411 "third_party/libpg_query/grammar/statements/create.y"
21005 { (yyval.ival) = CAS_DEFERRABLE; ;}
21006 break;
21007
21008 case 324:
21009#line 412 "third_party/libpg_query/grammar/statements/create.y"
21010 { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;}
21011 break;
21012
21013 case 325:
21014#line 413 "third_party/libpg_query/grammar/statements/create.y"
21015 { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;}
21016 break;
21017
21018 case 326:
21019#line 414 "third_party/libpg_query/grammar/statements/create.y"
21020 { (yyval.ival) = CAS_NOT_VALID; ;}
21021 break;
21022
21023 case 327:
21024#line 415 "third_party/libpg_query/grammar/statements/create.y"
21025 { (yyval.ival) = CAS_NO_INHERIT; ;}
21026 break;
21027
21028 case 328:
21029#line 421 "third_party/libpg_query/grammar/statements/create.y"
21030 {
21031 PGColumnDef *n = makeNode(PGColumnDef);
21032 n->category = COL_STANDARD;
21033 n->colname = (yyvsp[(1) - (3)].str);
21034 n->typeName = (yyvsp[(2) - (3)].typnam);
21035 n->inhcount = 0;
21036 n->is_local = true;
21037 n->is_not_null = false;
21038 n->is_from_type = false;
21039 n->storage = 0;
21040 n->raw_default = NULL;
21041 n->cooked_default = NULL;
21042 n->collOid = InvalidOid;
21043 SplitColQualList(qualList: (yyvsp[(3) - (3)].list), constraintList: &n->constraints, collClause: &n->collClause,
21044 yyscanner);
21045 n->location = (yylsp[(1) - (3)]);
21046 (yyval.node) = (PGNode *)n;
21047 ;}
21048 break;
21049
21050 case 329:
21051#line 441 "third_party/libpg_query/grammar/statements/create.y"
21052 {
21053 PGColumnDef *n = makeNode(PGColumnDef);
21054 n->category = COL_GENERATED;
21055 n->colname = (yyvsp[(1) - (4)].str);
21056 n->typeName = (yyvsp[(2) - (4)].typnam);
21057 n->inhcount = 0;
21058 n->is_local = true;
21059 n->is_not_null = false;
21060 n->is_from_type = false;
21061 n->storage = 0;
21062 n->raw_default = NULL;
21063 n->cooked_default = NULL;
21064 n->collOid = InvalidOid;
21065 // merge the constraints with the generated column constraint
21066 auto constraints = (yyvsp[(4) - (4)].list);
21067 if (constraints) {
21068 constraints = lappend(list: constraints, datum: (yyvsp[(3) - (4)].node));
21069 } else {
21070 constraints = list_make1((yyvsp[(3) - (4)].node));
21071 }
21072 SplitColQualList(qualList: constraints, constraintList: &n->constraints, collClause: &n->collClause,
21073 yyscanner);
21074 n->location = (yylsp[(1) - (4)]);
21075 (yyval.node) = (PGNode *)n;
21076 ;}
21077 break;
21078
21079 case 330:
21080#line 469 "third_party/libpg_query/grammar/statements/create.y"
21081 { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
21082 break;
21083
21084 case 331:
21085#line 470 "third_party/libpg_query/grammar/statements/create.y"
21086 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].defelt)); ;}
21087 break;
21088
21089 case 332:
21090#line 474 "third_party/libpg_query/grammar/statements/create.y"
21091 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
21092 break;
21093
21094 case 333:
21095#line 478 "third_party/libpg_query/grammar/statements/create.y"
21096 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
21097 break;
21098
21099 case 334:
21100#line 479 "third_party/libpg_query/grammar/statements/create.y"
21101 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
21102 break;
21103
21104 case 335:
21105#line 480 "third_party/libpg_query/grammar/statements/create.y"
21106 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
21107 break;
21108
21109 case 336:
21110#line 485 "third_party/libpg_query/grammar/statements/create.y"
21111 {
21112 (yyval.defelt) = makeDefElem(name: (yyvsp[(1) - (3)].str), arg: (PGNode *) (yyvsp[(3) - (3)].node), location: (yylsp[(1) - (3)]));
21113 ;}
21114 break;
21115
21116 case 337:
21117#line 489 "third_party/libpg_query/grammar/statements/create.y"
21118 {
21119 (yyval.defelt) = makeDefElem(name: (yyvsp[(1) - (1)].str), NULL, location: (yylsp[(1) - (1)]));
21120 ;}
21121 break;
21122
21123 case 338:
21124#line 496 "third_party/libpg_query/grammar/statements/create.y"
21125 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
21126 break;
21127
21128 case 339:
21129#line 497 "third_party/libpg_query/grammar/statements/create.y"
21130 { (yyval.list) = NIL; ;}
21131 break;
21132
21133 case 340:
21134#line 502 "third_party/libpg_query/grammar/statements/create.y"
21135 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
21136 break;
21137
21138 case 341:
21139#line 503 "third_party/libpg_query/grammar/statements/create.y"
21140 { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
21141 break;
21142
21143 case 342:
21144#line 504 "third_party/libpg_query/grammar/statements/create.y"
21145 { (yyval.list) = NIL; ;}
21146 break;
21147
21148 case 343:
21149#line 509 "third_party/libpg_query/grammar/statements/create.y"
21150 {
21151 (yyval.node) = (PGNode *) makeString(str: (yyvsp[(1) - (1)].str));
21152 ;}
21153 break;
21154
21155 case 344:
21156#line 516 "third_party/libpg_query/grammar/statements/create.y"
21157 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
21158 break;
21159
21160 case 345:
21161#line 517 "third_party/libpg_query/grammar/statements/create.y"
21162 { (yyval.list) = NIL; ;}
21163 break;
21164
21165 case 346:
21166#line 522 "third_party/libpg_query/grammar/statements/create.y"
21167 { (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].node)); ;}
21168 break;
21169
21170 case 347:
21171#line 523 "third_party/libpg_query/grammar/statements/create.y"
21172 { (yyval.list) = NIL; ;}
21173 break;
21174
21175 case 348:
21176#line 527 "third_party/libpg_query/grammar/statements/create.y"
21177 { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;}
21178 break;
21179
21180 case 349:
21181#line 533 "third_party/libpg_query/grammar/statements/create.y"
21182 {
21183 (yyval.defelt) = makeDefElem(name: (yyvsp[(1) - (3)].str), arg: (PGNode *) (yyvsp[(3) - (3)].node), location: (yylsp[(1) - (3)]));
21184 ;}
21185 break;
21186
21187 case 350:
21188#line 537 "third_party/libpg_query/grammar/statements/create.y"
21189 {
21190 (yyval.defelt) = makeDefElem(name: (yyvsp[(1) - (1)].str), NULL, location: (yylsp[(1) - (1)]));
21191 ;}
21192 break;
21193
21194 case 351:
21195#line 541 "third_party/libpg_query/grammar/statements/create.y"
21196 {
21197 (yyval.defelt) = makeDefElemExtended(nameSpace: (yyvsp[(1) - (5)].str), name: (yyvsp[(3) - (5)].str), arg: (PGNode *) (yyvsp[(5) - (5)].node),
21198 defaction: PG_DEFELEM_UNSPEC, location: (yylsp[(1) - (5)]));
21199 ;}
21200 break;
21201
21202 case 352:
21203#line 546 "third_party/libpg_query/grammar/statements/create.y"
21204 {
21205 (yyval.defelt) = makeDefElemExtended(nameSpace: (yyvsp[(1) - (3)].str), name: (yyvsp[(3) - (3)].str), NULL, defaction: PG_DEFELEM_UNSPEC, location: (yylsp[(1) - (3)]));
21206 ;}
21207 break;
21208
21209 case 353:
21210#line 553 "third_party/libpg_query/grammar/statements/create.y"
21211 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
21212 break;
21213
21214 case 354:
21215#line 554 "third_party/libpg_query/grammar/statements/create.y"
21216 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node)); ;}
21217 break;
21218
21219 case 355:
21220#line 558 "third_party/libpg_query/grammar/statements/create.y"
21221 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
21222 break;
21223
21224 case 356:
21225#line 559 "third_party/libpg_query/grammar/statements/create.y"
21226 { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
21227 break;
21228
21229 case 357:
21230#line 563 "third_party/libpg_query/grammar/statements/create.y"
21231 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
21232 break;
21233
21234 case 358:
21235#line 565 "third_party/libpg_query/grammar/statements/create.y"
21236 {
21237 (yyval.typnam) = makeTypeNameFromNameList(names: lcons(datum: makeString(str: (yyvsp[(1) - (4)].str)), list: (yyvsp[(2) - (4)].list)));
21238 (yyval.typnam)->pct_type = true;
21239 (yyval.typnam)->location = (yylsp[(1) - (4)]);
21240 ;}
21241 break;
21242
21243 case 359:
21244#line 571 "third_party/libpg_query/grammar/statements/create.y"
21245 {
21246 (yyval.typnam) = makeTypeNameFromNameList(names: lcons(datum: makeString(str: (yyvsp[(2) - (5)].str)), list: (yyvsp[(3) - (5)].list)));
21247 (yyval.typnam)->pct_type = true;
21248 (yyval.typnam)->setof = true;
21249 (yyval.typnam)->location = (yylsp[(2) - (5)]);
21250 ;}
21251 break;
21252
21253 case 360:
21254#line 582 "third_party/libpg_query/grammar/statements/create.y"
21255 {
21256 PGConstraint *n = makeNode(PGConstraint);
21257 n->contype = PG_CONSTR_CHECK;
21258 n->location = (yylsp[(1) - (5)]);
21259 n->raw_expr = (yyvsp[(3) - (5)].node);
21260 n->cooked_expr = NULL;
21261 processCASbits(cas_bits: (yyvsp[(5) - (5)].ival), location: (yylsp[(5) - (5)]), constrType: "CHECK",
21262 NULL, NULL, not_valid: &n->skip_validation,
21263 no_inherit: &n->is_no_inherit, yyscanner);
21264 n->initially_valid = !n->skip_validation;
21265 (yyval.node) = (PGNode *)n;
21266 ;}
21267 break;
21268
21269 case 361:
21270#line 596 "third_party/libpg_query/grammar/statements/create.y"
21271 {
21272 PGConstraint *n = makeNode(PGConstraint);
21273 n->contype = PG_CONSTR_UNIQUE;
21274 n->location = (yylsp[(1) - (6)]);
21275 n->keys = (yyvsp[(3) - (6)].list);
21276 n->options = (yyvsp[(5) - (6)].list);
21277 n->indexname = NULL;
21278 processCASbits(cas_bits: (yyvsp[(6) - (6)].ival), location: (yylsp[(6) - (6)]), constrType: "UNIQUE",
21279 deferrable: &n->deferrable, initdeferred: &n->initdeferred, NULL,
21280 NULL, yyscanner);
21281 (yyval.node) = (PGNode *)n;
21282 ;}
21283 break;
21284
21285 case 362:
21286#line 609 "third_party/libpg_query/grammar/statements/create.y"
21287 {
21288 PGConstraint *n = makeNode(PGConstraint);
21289 n->contype = PG_CONSTR_UNIQUE;
21290 n->location = (yylsp[(1) - (3)]);
21291 n->keys = NIL;
21292 n->options = NIL;
21293 n->indexname = (yyvsp[(2) - (3)].str);
21294 n->indexspace = NULL;
21295 processCASbits(cas_bits: (yyvsp[(3) - (3)].ival), location: (yylsp[(3) - (3)]), constrType: "UNIQUE",
21296 deferrable: &n->deferrable, initdeferred: &n->initdeferred, NULL,
21297 NULL, yyscanner);
21298 (yyval.node) = (PGNode *)n;
21299 ;}
21300 break;
21301
21302 case 363:
21303#line 624 "third_party/libpg_query/grammar/statements/create.y"
21304 {
21305 PGConstraint *n = makeNode(PGConstraint);
21306 n->contype = PG_CONSTR_PRIMARY;
21307 n->location = (yylsp[(1) - (7)]);
21308 n->keys = (yyvsp[(4) - (7)].list);
21309 n->options = (yyvsp[(6) - (7)].list);
21310 n->indexname = NULL;
21311 processCASbits(cas_bits: (yyvsp[(7) - (7)].ival), location: (yylsp[(7) - (7)]), constrType: "PRIMARY KEY",
21312 deferrable: &n->deferrable, initdeferred: &n->initdeferred, NULL,
21313 NULL, yyscanner);
21314 (yyval.node) = (PGNode *)n;
21315 ;}
21316 break;
21317
21318 case 364:
21319#line 637 "third_party/libpg_query/grammar/statements/create.y"
21320 {
21321 PGConstraint *n = makeNode(PGConstraint);
21322 n->contype = PG_CONSTR_PRIMARY;
21323 n->location = (yylsp[(1) - (4)]);
21324 n->keys = NIL;
21325 n->options = NIL;
21326 n->indexname = (yyvsp[(3) - (4)].str);
21327 n->indexspace = NULL;
21328 processCASbits(cas_bits: (yyvsp[(4) - (4)].ival), location: (yylsp[(4) - (4)]), constrType: "PRIMARY KEY",
21329 deferrable: &n->deferrable, initdeferred: &n->initdeferred, NULL,
21330 NULL, yyscanner);
21331 (yyval.node) = (PGNode *)n;
21332 ;}
21333 break;
21334
21335 case 365:
21336#line 652 "third_party/libpg_query/grammar/statements/create.y"
21337 {
21338 PGConstraint *n = makeNode(PGConstraint);
21339 n->contype = PG_CONSTR_FOREIGN;
21340 n->location = (yylsp[(1) - (11)]);
21341 n->pktable = (yyvsp[(7) - (11)].range);
21342 n->fk_attrs = (yyvsp[(4) - (11)].list);
21343 n->pk_attrs = (yyvsp[(8) - (11)].list);
21344 n->fk_matchtype = (yyvsp[(9) - (11)].ival);
21345 n->fk_upd_action = (char) ((yyvsp[(10) - (11)].ival) >> 8);
21346 n->fk_del_action = (char) ((yyvsp[(10) - (11)].ival) & 0xFF);
21347 processCASbits(cas_bits: (yyvsp[(11) - (11)].ival), location: (yylsp[(11) - (11)]), constrType: "FOREIGN KEY",
21348 deferrable: &n->deferrable, initdeferred: &n->initdeferred,
21349 not_valid: &n->skip_validation, NULL,
21350 yyscanner);
21351 n->initially_valid = !n->skip_validation;
21352 (yyval.node) = (PGNode *)n;
21353 ;}
21354 break;
21355
21356 case 366:
21357#line 674 "third_party/libpg_query/grammar/statements/create.y"
21358 {
21359 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
21360 ;}
21361 break;
21362
21363 case 367:
21364#line 678 "third_party/libpg_query/grammar/statements/create.y"
21365 {
21366 (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node));
21367 ;}
21368 break;
21369
21370 case 368:
21371#line 685 "third_party/libpg_query/grammar/statements/create.y"
21372 {
21373 (yyval.ival) = PG_FKCONSTR_MATCH_FULL;
21374 ;}
21375 break;
21376
21377 case 369:
21378#line 689 "third_party/libpg_query/grammar/statements/create.y"
21379 {
21380 ereport(code: ERROR,
21381 (errcode(sqlerrcode: PG_ERRCODE_FEATURE_NOT_SUPPORTED),
21382 errmsg(fmt: "MATCH PARTIAL not yet implemented"),
21383 parser_errposition((yylsp[(1) - (2)]))));
21384 (yyval.ival) = PG_FKCONSTR_MATCH_PARTIAL;
21385 ;}
21386 break;
21387
21388 case 370:
21389#line 697 "third_party/libpg_query/grammar/statements/create.y"
21390 {
21391 (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE;
21392 ;}
21393 break;
21394
21395 case 371:
21396#line 701 "third_party/libpg_query/grammar/statements/create.y"
21397 {
21398 (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE;
21399 ;}
21400 break;
21401
21402 case 372:
21403#line 709 "third_party/libpg_query/grammar/statements/create.y"
21404 {
21405 PGTableLikeClause *n = makeNode(PGTableLikeClause);
21406 n->relation = (yyvsp[(2) - (3)].range);
21407 n->options = (yyvsp[(3) - (3)].ival);
21408 (yyval.node) = (PGNode *)n;
21409 ;}
21410 break;
21411
21412 case 373:
21413#line 718 "third_party/libpg_query/grammar/statements/create.y"
21414 { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
21415 break;
21416
21417 case 374:
21418#line 719 "third_party/libpg_query/grammar/statements/create.y"
21419 { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
21420 break;
21421
21422 case 375:
21423#line 720 "third_party/libpg_query/grammar/statements/create.y"
21424 { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
21425 break;
21426
21427 case 376:
21428#line 721 "third_party/libpg_query/grammar/statements/create.y"
21429 { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
21430 break;
21431
21432 case 377:
21433#line 723 "third_party/libpg_query/grammar/statements/create.y"
21434 {
21435 ereport(code: PGWARNING,
21436 (errmsg(fmt: "GLOBAL is deprecated in temporary table creation"),
21437 parser_errposition((yylsp[(1) - (2)]))));
21438 (yyval.ival) = PG_RELPERSISTENCE_TEMP;
21439 ;}
21440 break;
21441
21442 case 378:
21443#line 730 "third_party/libpg_query/grammar/statements/create.y"
21444 {
21445 ereport(code: PGWARNING,
21446 (errmsg(fmt: "GLOBAL is deprecated in temporary table creation"),
21447 parser_errposition((yylsp[(1) - (2)]))));
21448 (yyval.ival) = PG_RELPERSISTENCE_TEMP;
21449 ;}
21450 break;
21451
21452 case 379:
21453#line 736 "third_party/libpg_query/grammar/statements/create.y"
21454 { (yyval.ival) = PG_RELPERSISTENCE_UNLOGGED; ;}
21455 break;
21456
21457 case 380:
21458#line 737 "third_party/libpg_query/grammar/statements/create.y"
21459 { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;}
21460 break;
21461
21462 case 381:
21463#line 742 "third_party/libpg_query/grammar/statements/create.y"
21464 { (yyval.ival) = PG_ATTRIBUTE_IDENTITY_ALWAYS; ;}
21465 break;
21466
21467 case 382:
21468#line 743 "third_party/libpg_query/grammar/statements/create.y"
21469 { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; ;}
21470 break;
21471
21472 case 383:
21473#line 10 "third_party/libpg_query/grammar/statements/drop.y"
21474 {
21475 PGDropStmt *n = makeNode(PGDropStmt);
21476 n->removeType = (yyvsp[(2) - (6)].objtype);
21477 n->missing_ok = true;
21478 n->objects = (yyvsp[(5) - (6)].list);
21479 n->behavior = (yyvsp[(6) - (6)].dbehavior);
21480 n->concurrent = false;
21481 (yyval.node) = (PGNode *)n;
21482 ;}
21483 break;
21484
21485 case 384:
21486#line 20 "third_party/libpg_query/grammar/statements/drop.y"
21487 {
21488 PGDropStmt *n = makeNode(PGDropStmt);
21489 n->removeType = (yyvsp[(2) - (4)].objtype);
21490 n->missing_ok = false;
21491 n->objects = (yyvsp[(3) - (4)].list);
21492 n->behavior = (yyvsp[(4) - (4)].dbehavior);
21493 n->concurrent = false;
21494 (yyval.node) = (PGNode *)n;
21495 ;}
21496 break;
21497
21498 case 385:
21499#line 30 "third_party/libpg_query/grammar/statements/drop.y"
21500 {
21501 PGDropStmt *n = makeNode(PGDropStmt);
21502 n->removeType = (yyvsp[(2) - (6)].objtype);
21503 n->missing_ok = true;
21504 n->objects = (yyvsp[(5) - (6)].list);
21505 n->behavior = (yyvsp[(6) - (6)].dbehavior);
21506 n->concurrent = false;
21507 (yyval.node) = (PGNode *)n;
21508 ;}
21509 break;
21510
21511 case 386:
21512#line 40 "third_party/libpg_query/grammar/statements/drop.y"
21513 {
21514 PGDropStmt *n = makeNode(PGDropStmt);
21515 n->removeType = (yyvsp[(2) - (4)].objtype);
21516 n->missing_ok = false;
21517 n->objects = (yyvsp[(3) - (4)].list);
21518 n->behavior = (yyvsp[(4) - (4)].dbehavior);
21519 n->concurrent = false;
21520 (yyval.node) = (PGNode *)n;
21521 ;}
21522 break;
21523
21524 case 387:
21525#line 50 "third_party/libpg_query/grammar/statements/drop.y"
21526 {
21527 PGDropStmt *n = makeNode(PGDropStmt);
21528 n->removeType = (yyvsp[(2) - (6)].objtype);
21529 n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str))));
21530 n->behavior = (yyvsp[(6) - (6)].dbehavior);
21531 n->missing_ok = false;
21532 n->concurrent = false;
21533 (yyval.node) = (PGNode *) n;
21534 ;}
21535 break;
21536
21537 case 388:
21538#line 60 "third_party/libpg_query/grammar/statements/drop.y"
21539 {
21540 PGDropStmt *n = makeNode(PGDropStmt);
21541 n->removeType = (yyvsp[(2) - (8)].objtype);
21542 n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str))));
21543 n->behavior = (yyvsp[(8) - (8)].dbehavior);
21544 n->missing_ok = true;
21545 n->concurrent = false;
21546 (yyval.node) = (PGNode *) n;
21547 ;}
21548 break;
21549
21550 case 389:
21551#line 70 "third_party/libpg_query/grammar/statements/drop.y"
21552 {
21553 PGDropStmt *n = makeNode(PGDropStmt);
21554 n->removeType = PG_OBJECT_TYPE;
21555 n->missing_ok = false;
21556 n->objects = (yyvsp[(3) - (4)].list);
21557 n->behavior = (yyvsp[(4) - (4)].dbehavior);
21558 n->concurrent = false;
21559 (yyval.node) = (PGNode *) n;
21560 ;}
21561 break;
21562
21563 case 390:
21564#line 80 "third_party/libpg_query/grammar/statements/drop.y"
21565 {
21566 PGDropStmt *n = makeNode(PGDropStmt);
21567 n->removeType = PG_OBJECT_TYPE;
21568 n->missing_ok = true;
21569 n->objects = (yyvsp[(5) - (6)].list);
21570 n->behavior = (yyvsp[(6) - (6)].dbehavior);
21571 n->concurrent = false;
21572 (yyval.node) = (PGNode *) n;
21573 ;}
21574 break;
21575
21576 case 391:
21577#line 93 "third_party/libpg_query/grammar/statements/drop.y"
21578 { (yyval.objtype) = PG_OBJECT_TABLE; ;}
21579 break;
21580
21581 case 392:
21582#line 94 "third_party/libpg_query/grammar/statements/drop.y"
21583 { (yyval.objtype) = PG_OBJECT_SEQUENCE; ;}
21584 break;
21585
21586 case 393:
21587#line 95 "third_party/libpg_query/grammar/statements/drop.y"
21588 { (yyval.objtype) = PG_OBJECT_FUNCTION; ;}
21589 break;
21590
21591 case 394:
21592#line 96 "third_party/libpg_query/grammar/statements/drop.y"
21593 { (yyval.objtype) = PG_OBJECT_FUNCTION; ;}
21594 break;
21595
21596 case 395:
21597#line 97 "third_party/libpg_query/grammar/statements/drop.y"
21598 { (yyval.objtype) = PG_OBJECT_TABLE_MACRO; ;}
21599 break;
21600
21601 case 396:
21602#line 98 "third_party/libpg_query/grammar/statements/drop.y"
21603 { (yyval.objtype) = PG_OBJECT_VIEW; ;}
21604 break;
21605
21606 case 397:
21607#line 99 "third_party/libpg_query/grammar/statements/drop.y"
21608 { (yyval.objtype) = PG_OBJECT_MATVIEW; ;}
21609 break;
21610
21611 case 398:
21612#line 100 "third_party/libpg_query/grammar/statements/drop.y"
21613 { (yyval.objtype) = PG_OBJECT_INDEX; ;}
21614 break;
21615
21616 case 399:
21617#line 101 "third_party/libpg_query/grammar/statements/drop.y"
21618 { (yyval.objtype) = PG_OBJECT_FOREIGN_TABLE; ;}
21619 break;
21620
21621 case 400:
21622#line 102 "third_party/libpg_query/grammar/statements/drop.y"
21623 { (yyval.objtype) = PG_OBJECT_COLLATION; ;}
21624 break;
21625
21626 case 401:
21627#line 103 "third_party/libpg_query/grammar/statements/drop.y"
21628 { (yyval.objtype) = PG_OBJECT_CONVERSION; ;}
21629 break;
21630
21631 case 402:
21632#line 104 "third_party/libpg_query/grammar/statements/drop.y"
21633 { (yyval.objtype) = PG_OBJECT_SCHEMA; ;}
21634 break;
21635
21636 case 403:
21637#line 105 "third_party/libpg_query/grammar/statements/drop.y"
21638 { (yyval.objtype) = PG_OBJECT_STATISTIC_EXT; ;}
21639 break;
21640
21641 case 404:
21642#line 106 "third_party/libpg_query/grammar/statements/drop.y"
21643 { (yyval.objtype) = PG_OBJECT_TSPARSER; ;}
21644 break;
21645
21646 case 405:
21647#line 107 "third_party/libpg_query/grammar/statements/drop.y"
21648 { (yyval.objtype) = PG_OBJECT_TSDICTIONARY; ;}
21649 break;
21650
21651 case 406:
21652#line 108 "third_party/libpg_query/grammar/statements/drop.y"
21653 { (yyval.objtype) = PG_OBJECT_TSTEMPLATE; ;}
21654 break;
21655
21656 case 407:
21657#line 109 "third_party/libpg_query/grammar/statements/drop.y"
21658 { (yyval.objtype) = PG_OBJECT_TSCONFIGURATION; ;}
21659 break;
21660
21661 case 408:
21662#line 114 "third_party/libpg_query/grammar/statements/drop.y"
21663 { (yyval.objtype) = PG_OBJECT_ACCESS_METHOD; ;}
21664 break;
21665
21666 case 409:
21667#line 115 "third_party/libpg_query/grammar/statements/drop.y"
21668 { (yyval.objtype) = PG_OBJECT_EVENT_TRIGGER; ;}
21669 break;
21670
21671 case 410:
21672#line 116 "third_party/libpg_query/grammar/statements/drop.y"
21673 { (yyval.objtype) = PG_OBJECT_EXTENSION; ;}
21674 break;
21675
21676 case 411:
21677#line 117 "third_party/libpg_query/grammar/statements/drop.y"
21678 { (yyval.objtype) = PG_OBJECT_FDW; ;}
21679 break;
21680
21681 case 412:
21682#line 118 "third_party/libpg_query/grammar/statements/drop.y"
21683 { (yyval.objtype) = PG_OBJECT_PUBLICATION; ;}
21684 break;
21685
21686 case 413:
21687#line 119 "third_party/libpg_query/grammar/statements/drop.y"
21688 { (yyval.objtype) = PG_OBJECT_FOREIGN_SERVER; ;}
21689 break;
21690
21691 case 414:
21692#line 124 "third_party/libpg_query/grammar/statements/drop.y"
21693 { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
21694 break;
21695
21696 case 415:
21697#line 125 "third_party/libpg_query/grammar/statements/drop.y"
21698 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].list)); ;}
21699 break;
21700
21701 case 416:
21702#line 130 "third_party/libpg_query/grammar/statements/drop.y"
21703 { (yyval.dbehavior) = PG_DROP_CASCADE; ;}
21704 break;
21705
21706 case 417:
21707#line 131 "third_party/libpg_query/grammar/statements/drop.y"
21708 { (yyval.dbehavior) = PG_DROP_RESTRICT; ;}
21709 break;
21710
21711 case 418:
21712#line 132 "third_party/libpg_query/grammar/statements/drop.y"
21713 { (yyval.dbehavior) = PG_DROP_RESTRICT; /* default */ ;}
21714 break;
21715
21716 case 419:
21717#line 137 "third_party/libpg_query/grammar/statements/drop.y"
21718 { (yyval.objtype) = PG_OBJECT_POLICY; ;}
21719 break;
21720
21721 case 420:
21722#line 138 "third_party/libpg_query/grammar/statements/drop.y"
21723 { (yyval.objtype) = PG_OBJECT_RULE; ;}
21724 break;
21725
21726 case 421:
21727#line 139 "third_party/libpg_query/grammar/statements/drop.y"
21728 { (yyval.objtype) = PG_OBJECT_TRIGGER; ;}
21729 break;
21730
21731 case 422:
21732#line 142 "third_party/libpg_query/grammar/statements/drop.y"
21733 { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;}
21734 break;
21735
21736 case 423:
21737#line 143 "third_party/libpg_query/grammar/statements/drop.y"
21738 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].typnam)); ;}
21739 break;
21740
21741 case 424:
21742#line 9 "third_party/libpg_query/grammar/statements/create_function.y"
21743 {
21744 PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
21745 (yyvsp[(4) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival);
21746 n->name = (yyvsp[(4) - (8)].range);
21747 n->params = (yyvsp[(5) - (8)].list);
21748 n->function = NULL;
21749 n->query = (yyvsp[(8) - (8)].node);
21750 n->onconflict = PG_ERROR_ON_CONFLICT;
21751 (yyval.node) = (PGNode *)n;
21752 ;}
21753 break;
21754
21755 case 425:
21756#line 21 "third_party/libpg_query/grammar/statements/create_function.y"
21757 {
21758 PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
21759 (yyvsp[(7) - (11)].range)->relpersistence = (yyvsp[(2) - (11)].ival);
21760 n->name = (yyvsp[(7) - (11)].range);
21761 n->params = (yyvsp[(8) - (11)].list);
21762 n->function = NULL;
21763 n->query = (yyvsp[(11) - (11)].node);
21764 n->onconflict = PG_IGNORE_ON_CONFLICT;
21765 (yyval.node) = (PGNode *)n;
21766
21767 ;}
21768 break;
21769
21770 case 426:
21771#line 34 "third_party/libpg_query/grammar/statements/create_function.y"
21772 {
21773 PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
21774 (yyvsp[(6) - (10)].range)->relpersistence = (yyvsp[(4) - (10)].ival);
21775 n->name = (yyvsp[(6) - (10)].range);
21776 n->params = (yyvsp[(7) - (10)].list);
21777 n->function = NULL;
21778 n->query = (yyvsp[(10) - (10)].node);
21779 n->onconflict = PG_REPLACE_ON_CONFLICT;
21780 (yyval.node) = (PGNode *)n;
21781
21782 ;}
21783 break;
21784
21785 case 427:
21786#line 47 "third_party/libpg_query/grammar/statements/create_function.y"
21787 {
21788 PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
21789 (yyvsp[(4) - (7)].range)->relpersistence = (yyvsp[(2) - (7)].ival);
21790 n->name = (yyvsp[(4) - (7)].range);
21791 n->params = (yyvsp[(5) - (7)].list);
21792 n->function = (yyvsp[(7) - (7)].node);
21793 n->query = NULL;
21794 n->onconflict = PG_ERROR_ON_CONFLICT;
21795 (yyval.node) = (PGNode *)n;
21796 ;}
21797 break;
21798
21799 case 428:
21800#line 59 "third_party/libpg_query/grammar/statements/create_function.y"
21801 {
21802 PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
21803 (yyvsp[(7) - (10)].range)->relpersistence = (yyvsp[(2) - (10)].ival);
21804 n->name = (yyvsp[(7) - (10)].range);
21805 n->params = (yyvsp[(8) - (10)].list);
21806 n->function = (yyvsp[(10) - (10)].node);
21807 n->query = NULL;
21808 n->onconflict = PG_IGNORE_ON_CONFLICT;
21809 (yyval.node) = (PGNode *)n;
21810 ;}
21811 break;
21812
21813 case 429:
21814#line 71 "third_party/libpg_query/grammar/statements/create_function.y"
21815 {
21816 PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
21817 (yyvsp[(6) - (9)].range)->relpersistence = (yyvsp[(4) - (9)].ival);
21818 n->name = (yyvsp[(6) - (9)].range);
21819 n->params = (yyvsp[(7) - (9)].list);
21820 n->function = (yyvsp[(9) - (9)].node);
21821 n->query = NULL;
21822 n->onconflict = PG_REPLACE_ON_CONFLICT;
21823 (yyval.node) = (PGNode *)n;
21824 ;}
21825 break;
21826
21827 case 432:
21828#line 92 "third_party/libpg_query/grammar/statements/create_function.y"
21829 {
21830 (yyval.list) = NIL;
21831 ;}
21832 break;
21833
21834 case 433:
21835#line 96 "third_party/libpg_query/grammar/statements/create_function.y"
21836 {
21837 (yyval.list) = (yyvsp[(2) - (3)].list);
21838 ;}
21839 break;
21840
21841 case 434:
21842#line 12 "third_party/libpg_query/grammar/statements/update.y"
21843 {
21844 PGUpdateStmt *n = makeNode(PGUpdateStmt);
21845 n->relation = (yyvsp[(3) - (8)].range);
21846 n->targetList = (yyvsp[(5) - (8)].list);
21847 n->fromClause = (yyvsp[(6) - (8)].list);
21848 n->whereClause = (yyvsp[(7) - (8)].node);
21849 n->returningList = (yyvsp[(8) - (8)].list);
21850 n->withClause = (yyvsp[(1) - (8)].with);
21851 (yyval.node) = (PGNode *)n;
21852 ;}
21853 break;
21854
21855 case 435:
21856#line 3 "third_party/libpg_query/grammar/statements/copy.y"
21857 {
21858 PGCopyStmt *n = makeNode(PGCopyStmt);
21859 n->relation = (yyvsp[(3) - (11)].range);
21860 n->query = NULL;
21861 n->attlist = (yyvsp[(4) - (11)].list);
21862 n->is_from = (yyvsp[(6) - (11)].boolean);
21863 n->is_program = (yyvsp[(7) - (11)].boolean);
21864 n->filename = (yyvsp[(8) - (11)].str);
21865
21866 if (n->is_program && n->filename == NULL)
21867 ereport(code: ERROR,
21868 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
21869 errmsg(fmt: "STDIN/STDOUT not allowed with PROGRAM"),
21870 parser_errposition((yylsp[(8) - (11)]))));
21871
21872 n->options = NIL;
21873 /* Concatenate user-supplied flags */
21874 if ((yyvsp[(2) - (11)].defelt))
21875 n->options = lappend(list: n->options, datum: (yyvsp[(2) - (11)].defelt));
21876 if ((yyvsp[(5) - (11)].defelt))
21877 n->options = lappend(list: n->options, datum: (yyvsp[(5) - (11)].defelt));
21878 if ((yyvsp[(9) - (11)].defelt))
21879 n->options = lappend(list: n->options, datum: (yyvsp[(9) - (11)].defelt));
21880 if ((yyvsp[(11) - (11)].list))
21881 n->options = list_concat(list1: n->options, list2: (yyvsp[(11) - (11)].list));
21882 (yyval.node) = (PGNode *)n;
21883 ;}
21884 break;
21885
21886 case 436:
21887#line 31 "third_party/libpg_query/grammar/statements/copy.y"
21888 {
21889 PGCopyStmt *n = makeNode(PGCopyStmt);
21890 n->relation = NULL;
21891 n->query = (yyvsp[(3) - (9)].node);
21892 n->attlist = NIL;
21893 n->is_from = false;
21894 n->is_program = (yyvsp[(6) - (9)].boolean);
21895 n->filename = (yyvsp[(7) - (9)].str);
21896 n->options = (yyvsp[(9) - (9)].list);
21897
21898 if (n->is_program && n->filename == NULL)
21899 ereport(code: ERROR,
21900 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
21901 errmsg(fmt: "STDIN/STDOUT not allowed with PROGRAM"),
21902 parser_errposition((yylsp[(5) - (9)]))));
21903
21904 (yyval.node) = (PGNode *)n;
21905 ;}
21906 break;
21907
21908 case 437:
21909#line 53 "third_party/libpg_query/grammar/statements/copy.y"
21910 { (yyval.boolean) = true; ;}
21911 break;
21912
21913 case 438:
21914#line 54 "third_party/libpg_query/grammar/statements/copy.y"
21915 { (yyval.boolean) = false; ;}
21916 break;
21917
21918 case 439:
21919#line 60 "third_party/libpg_query/grammar/statements/copy.y"
21920 {
21921 (yyval.defelt) = makeDefElem(name: "delimiter", arg: (PGNode *)makeString(str: (yyvsp[(3) - (3)].str)), location: (yylsp[(2) - (3)]));
21922 ;}
21923 break;
21924
21925 case 440:
21926#line 63 "third_party/libpg_query/grammar/statements/copy.y"
21927 { (yyval.defelt) = NULL; ;}
21928 break;
21929
21930 case 441:
21931#line 69 "third_party/libpg_query/grammar/statements/copy.y"
21932 {
21933 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
21934 ;}
21935 break;
21936
21937 case 442:
21938#line 73 "third_party/libpg_query/grammar/statements/copy.y"
21939 {
21940 (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node));
21941 ;}
21942 break;
21943
21944 case 443:
21945#line 80 "third_party/libpg_query/grammar/statements/copy.y"
21946 {;}
21947 break;
21948
21949 case 444:
21950#line 81 "third_party/libpg_query/grammar/statements/copy.y"
21951 {;}
21952 break;
21953
21954 case 445:
21955#line 85 "third_party/libpg_query/grammar/statements/copy.y"
21956 {;}
21957 break;
21958
21959 case 446:
21960#line 86 "third_party/libpg_query/grammar/statements/copy.y"
21961 {;}
21962 break;
21963
21964 case 447:
21965#line 91 "third_party/libpg_query/grammar/statements/copy.y"
21966 { (yyval.boolean) = true; ;}
21967 break;
21968
21969 case 448:
21970#line 92 "third_party/libpg_query/grammar/statements/copy.y"
21971 { (yyval.boolean) = false; ;}
21972 break;
21973
21974 case 449:
21975#line 96 "third_party/libpg_query/grammar/statements/copy.y"
21976 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
21977 break;
21978
21979 case 450:
21980#line 97 "third_party/libpg_query/grammar/statements/copy.y"
21981 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
21982 break;
21983
21984 case 451:
21985#line 102 "third_party/libpg_query/grammar/statements/copy.y"
21986 { (yyval.node) = (PGNode *) makeString(str: (yyvsp[(1) - (1)].str)); ;}
21987 break;
21988
21989 case 452:
21990#line 103 "third_party/libpg_query/grammar/statements/copy.y"
21991 { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;}
21992 break;
21993
21994 case 453:
21995#line 104 "third_party/libpg_query/grammar/statements/copy.y"
21996 { (yyval.node) = (PGNode *) makeNode(PGAStar); ;}
21997 break;
21998
21999 case 454:
22000#line 105 "third_party/libpg_query/grammar/statements/copy.y"
22001 { (yyval.node) = (PGNode *) (yyvsp[(2) - (3)].list); ;}
22002 break;
22003
22004 case 455:
22005#line 106 "third_party/libpg_query/grammar/statements/copy.y"
22006 { (yyval.node) = NULL; ;}
22007 break;
22008
22009 case 456:
22010#line 112 "third_party/libpg_query/grammar/statements/copy.y"
22011 {
22012 (yyval.defelt) = makeDefElem(name: (yyvsp[(1) - (2)].str), arg: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)]));
22013 ;}
22014 break;
22015
22016 case 457:
22017#line 120 "third_party/libpg_query/grammar/statements/copy.y"
22018 {
22019 (yyval.defelt) = makeDefElem(name: "oids", arg: (PGNode *)makeInteger(i: true), location: (yylsp[(1) - (2)]));
22020 ;}
22021 break;
22022
22023 case 458:
22024#line 123 "third_party/libpg_query/grammar/statements/copy.y"
22025 { (yyval.defelt) = NULL; ;}
22026 break;
22027
22028 case 459:
22029#line 128 "third_party/libpg_query/grammar/statements/copy.y"
22030 { (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].defelt)); ;}
22031 break;
22032
22033 case 460:
22034#line 129 "third_party/libpg_query/grammar/statements/copy.y"
22035 { (yyval.list) = NIL; ;}
22036 break;
22037
22038 case 461:
22039#line 135 "third_party/libpg_query/grammar/statements/copy.y"
22040 {
22041 (yyval.defelt) = makeDefElem(name: "format", arg: (PGNode *)makeString(str: "binary"), location: (yylsp[(1) - (1)]));
22042 ;}
22043 break;
22044
22045 case 462:
22046#line 138 "third_party/libpg_query/grammar/statements/copy.y"
22047 { (yyval.defelt) = NULL; ;}
22048 break;
22049
22050 case 463:
22051#line 144 "third_party/libpg_query/grammar/statements/copy.y"
22052 {
22053 (yyval.defelt) = makeDefElem(name: "format", arg: (PGNode *)makeString(str: "binary"), location: (yylsp[(1) - (1)]));
22054 ;}
22055 break;
22056
22057 case 464:
22058#line 148 "third_party/libpg_query/grammar/statements/copy.y"
22059 {
22060 (yyval.defelt) = makeDefElem(name: "oids", arg: (PGNode *)makeInteger(i: true), location: (yylsp[(1) - (1)]));
22061 ;}
22062 break;
22063
22064 case 465:
22065#line 152 "third_party/libpg_query/grammar/statements/copy.y"
22066 {
22067 (yyval.defelt) = makeDefElem(name: "freeze", arg: (PGNode *)makeInteger(i: true), location: (yylsp[(1) - (1)]));
22068 ;}
22069 break;
22070
22071 case 466:
22072#line 156 "third_party/libpg_query/grammar/statements/copy.y"
22073 {
22074 (yyval.defelt) = makeDefElem(name: "delimiter", arg: (PGNode *)makeString(str: (yyvsp[(3) - (3)].str)), location: (yylsp[(1) - (3)]));
22075 ;}
22076 break;
22077
22078 case 467:
22079#line 160 "third_party/libpg_query/grammar/statements/copy.y"
22080 {
22081 (yyval.defelt) = makeDefElem(name: "null", arg: (PGNode *)makeString(str: (yyvsp[(3) - (3)].str)), location: (yylsp[(1) - (3)]));
22082 ;}
22083 break;
22084
22085 case 468:
22086#line 164 "third_party/libpg_query/grammar/statements/copy.y"
22087 {
22088 (yyval.defelt) = makeDefElem(name: "format", arg: (PGNode *)makeString(str: "csv"), location: (yylsp[(1) - (1)]));
22089 ;}
22090 break;
22091
22092 case 469:
22093#line 168 "third_party/libpg_query/grammar/statements/copy.y"
22094 {
22095 (yyval.defelt) = makeDefElem(name: "header", arg: (PGNode *)makeInteger(i: true), location: (yylsp[(1) - (1)]));
22096 ;}
22097 break;
22098
22099 case 470:
22100#line 172 "third_party/libpg_query/grammar/statements/copy.y"
22101 {
22102 (yyval.defelt) = makeDefElem(name: "quote", arg: (PGNode *)makeString(str: (yyvsp[(3) - (3)].str)), location: (yylsp[(1) - (3)]));
22103 ;}
22104 break;
22105
22106 case 471:
22107#line 176 "third_party/libpg_query/grammar/statements/copy.y"
22108 {
22109 (yyval.defelt) = makeDefElem(name: "escape", arg: (PGNode *)makeString(str: (yyvsp[(3) - (3)].str)), location: (yylsp[(1) - (3)]));
22110 ;}
22111 break;
22112
22113 case 472:
22114#line 180 "third_party/libpg_query/grammar/statements/copy.y"
22115 {
22116 (yyval.defelt) = makeDefElem(name: "force_quote", arg: (PGNode *)(yyvsp[(3) - (3)].list), location: (yylsp[(1) - (3)]));
22117 ;}
22118 break;
22119
22120 case 473:
22121#line 184 "third_party/libpg_query/grammar/statements/copy.y"
22122 {
22123 (yyval.defelt) = makeDefElem(name: "force_quote", arg: (PGNode *)makeNode(PGAStar), location: (yylsp[(1) - (3)]));
22124 ;}
22125 break;
22126
22127 case 474:
22128#line 188 "third_party/libpg_query/grammar/statements/copy.y"
22129 {
22130 (yyval.defelt) = makeDefElem(name: "partition_by", arg: (PGNode *)(yyvsp[(3) - (3)].list), location: (yylsp[(1) - (3)]));
22131 ;}
22132 break;
22133
22134 case 475:
22135#line 192 "third_party/libpg_query/grammar/statements/copy.y"
22136 {
22137 (yyval.defelt) = makeDefElem(name: "partition_by", arg: (PGNode *)makeNode(PGAStar), location: (yylsp[(1) - (3)]));
22138 ;}
22139 break;
22140
22141 case 476:
22142#line 196 "third_party/libpg_query/grammar/statements/copy.y"
22143 {
22144 (yyval.defelt) = makeDefElem(name: "force_not_null", arg: (PGNode *)(yyvsp[(4) - (4)].list), location: (yylsp[(1) - (4)]));
22145 ;}
22146 break;
22147
22148 case 477:
22149#line 200 "third_party/libpg_query/grammar/statements/copy.y"
22150 {
22151 (yyval.defelt) = makeDefElem(name: "force_null", arg: (PGNode *)(yyvsp[(3) - (3)].list), location: (yylsp[(1) - (3)]));
22152 ;}
22153 break;
22154
22155 case 478:
22156#line 204 "third_party/libpg_query/grammar/statements/copy.y"
22157 {
22158 (yyval.defelt) = makeDefElem(name: "encoding", arg: (PGNode *)makeString(str: (yyvsp[(2) - (2)].str)), location: (yylsp[(1) - (2)]));
22159 ;}
22160 break;
22161
22162 case 479:
22163#line 211 "third_party/libpg_query/grammar/statements/copy.y"
22164 { (yyval.node) = (PGNode *) makeString(str: (yyvsp[(1) - (1)].str)); ;}
22165 break;
22166
22167 case 480:
22168#line 217 "third_party/libpg_query/grammar/statements/copy.y"
22169 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
22170 break;
22171
22172 case 481:
22173#line 218 "third_party/libpg_query/grammar/statements/copy.y"
22174 { (yyval.str) = NULL; ;}
22175 break;
22176
22177 case 482:
22178#line 219 "third_party/libpg_query/grammar/statements/copy.y"
22179 { (yyval.str) = NULL; ;}
22180 break;
22181
22182 case 483:
22183#line 225 "third_party/libpg_query/grammar/statements/copy.y"
22184 {
22185 (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
22186 ;}
22187 break;
22188
22189 case 484:
22190#line 229 "third_party/libpg_query/grammar/statements/copy.y"
22191 {
22192 (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].defelt));
22193 ;}
22194 break;
22195
22196 case 487:
22197#line 52 "third_party/libpg_query/grammar/statements/select.y"
22198 { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
22199 break;
22200
22201 case 488:
22202#line 53 "third_party/libpg_query/grammar/statements/select.y"
22203 { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
22204 break;
22205
22206 case 489:
22207#line 68 "third_party/libpg_query/grammar/statements/select.y"
22208 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
22209 break;
22210
22211 case 490:
22212#line 70 "third_party/libpg_query/grammar/statements/select.y"
22213 {
22214 insertSelectOptions(stmt: (PGSelectStmt *) (yyvsp[(1) - (2)].node), sortClause: (yyvsp[(2) - (2)].list), NIL,
22215 NULL, NULL, NULL,
22216 yyscanner);
22217 (yyval.node) = (yyvsp[(1) - (2)].node);
22218 ;}
22219 break;
22220
22221 case 491:
22222#line 77 "third_party/libpg_query/grammar/statements/select.y"
22223 {
22224 insertSelectOptions(stmt: (PGSelectStmt *) (yyvsp[(1) - (4)].node), sortClause: (yyvsp[(2) - (4)].list), lockingClause: (yyvsp[(3) - (4)].list),
22225 limitOffset: (PGNode*) list_nth(list: (yyvsp[(4) - (4)].list), n: 0), limitCount: (PGNode*) list_nth(list: (yyvsp[(4) - (4)].list), n: 1),
22226 NULL,
22227 yyscanner);
22228 (yyval.node) = (yyvsp[(1) - (4)].node);
22229 ;}
22230 break;
22231
22232 case 492:
22233#line 85 "third_party/libpg_query/grammar/statements/select.y"
22234 {
22235 insertSelectOptions(stmt: (PGSelectStmt *) (yyvsp[(1) - (4)].node), sortClause: (yyvsp[(2) - (4)].list), lockingClause: (yyvsp[(4) - (4)].list),
22236 limitOffset: (PGNode*) list_nth(list: (yyvsp[(3) - (4)].list), n: 0), limitCount: (PGNode*) list_nth(list: (yyvsp[(3) - (4)].list), n: 1),
22237 NULL,
22238 yyscanner);
22239 (yyval.node) = (yyvsp[(1) - (4)].node);
22240 ;}
22241 break;
22242
22243 case 493:
22244#line 93 "third_party/libpg_query/grammar/statements/select.y"
22245 {
22246 insertSelectOptions(stmt: (PGSelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL,
22247 NULL, NULL,
22248 withClause: (yyvsp[(1) - (2)].with),
22249 yyscanner);
22250 (yyval.node) = (yyvsp[(2) - (2)].node);
22251 ;}
22252 break;
22253
22254 case 494:
22255#line 101 "third_party/libpg_query/grammar/statements/select.y"
22256 {
22257 insertSelectOptions(stmt: (PGSelectStmt *) (yyvsp[(2) - (3)].node), sortClause: (yyvsp[(3) - (3)].list), NIL,
22258 NULL, NULL,
22259 withClause: (yyvsp[(1) - (3)].with),
22260 yyscanner);
22261 (yyval.node) = (yyvsp[(2) - (3)].node);
22262 ;}
22263 break;
22264
22265 case 495:
22266#line 109 "third_party/libpg_query/grammar/statements/select.y"
22267 {
22268 insertSelectOptions(stmt: (PGSelectStmt *) (yyvsp[(2) - (5)].node), sortClause: (yyvsp[(3) - (5)].list), lockingClause: (yyvsp[(4) - (5)].list),
22269 limitOffset: (PGNode*) list_nth(list: (yyvsp[(5) - (5)].list), n: 0), limitCount: (PGNode*) list_nth(list: (yyvsp[(5) - (5)].list), n: 1),
22270 withClause: (yyvsp[(1) - (5)].with),
22271 yyscanner);
22272 (yyval.node) = (yyvsp[(2) - (5)].node);
22273 ;}
22274 break;
22275
22276 case 496:
22277#line 117 "third_party/libpg_query/grammar/statements/select.y"
22278 {
22279 insertSelectOptions(stmt: (PGSelectStmt *) (yyvsp[(2) - (5)].node), sortClause: (yyvsp[(3) - (5)].list), lockingClause: (yyvsp[(5) - (5)].list),
22280 limitOffset: (PGNode*) list_nth(list: (yyvsp[(4) - (5)].list), n: 0), limitCount: (PGNode*) list_nth(list: (yyvsp[(4) - (5)].list), n: 1),
22281 withClause: (yyvsp[(1) - (5)].with),
22282 yyscanner);
22283 (yyval.node) = (yyvsp[(2) - (5)].node);
22284 ;}
22285 break;
22286
22287 case 497:
22288#line 127 "third_party/libpg_query/grammar/statements/select.y"
22289 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
22290 break;
22291
22292 case 498:
22293#line 128 "third_party/libpg_query/grammar/statements/select.y"
22294 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
22295 break;
22296
22297 case 499:
22298#line 156 "third_party/libpg_query/grammar/statements/select.y"
22299 {
22300 (yyval.list) = (yyvsp[(3) - (3)].list);
22301 ;}
22302 break;
22303
22304 case 500:
22305#line 160 "third_party/libpg_query/grammar/statements/select.y"
22306 {
22307 PGAStar *star = makeNode(PGAStar);
22308 (yyval.list) = list_make1(star);
22309 ;}
22310 break;
22311
22312 case 501:
22313#line 171 "third_party/libpg_query/grammar/statements/select.y"
22314 {
22315 PGSelectStmt *n = makeNode(PGSelectStmt);
22316 n->targetList = (yyvsp[(3) - (11)].list);
22317 n->intoClause = (yyvsp[(4) - (11)].into);
22318 n->fromClause = (yyvsp[(5) - (11)].list);
22319 n->whereClause = (yyvsp[(6) - (11)].node);
22320 n->groupClause = (yyvsp[(7) - (11)].list);
22321 n->havingClause = (yyvsp[(8) - (11)].node);
22322 n->windowClause = (yyvsp[(9) - (11)].list);
22323 n->qualifyClause = (yyvsp[(10) - (11)].node);
22324 n->sampleOptions = (yyvsp[(11) - (11)].node);
22325 (yyval.node) = (PGNode *)n;
22326 ;}
22327 break;
22328
22329 case 502:
22330#line 187 "third_party/libpg_query/grammar/statements/select.y"
22331 {
22332 PGSelectStmt *n = makeNode(PGSelectStmt);
22333 n->distinctClause = (yyvsp[(2) - (11)].list);
22334 n->targetList = (yyvsp[(3) - (11)].list);
22335 n->intoClause = (yyvsp[(4) - (11)].into);
22336 n->fromClause = (yyvsp[(5) - (11)].list);
22337 n->whereClause = (yyvsp[(6) - (11)].node);
22338 n->groupClause = (yyvsp[(7) - (11)].list);
22339 n->havingClause = (yyvsp[(8) - (11)].node);
22340 n->windowClause = (yyvsp[(9) - (11)].list);
22341 n->qualifyClause = (yyvsp[(10) - (11)].node);
22342 n->sampleOptions = (yyvsp[(11) - (11)].node);
22343 (yyval.node) = (PGNode *)n;
22344 ;}
22345 break;
22346
22347 case 503:
22348#line 204 "third_party/libpg_query/grammar/statements/select.y"
22349 {
22350 PGSelectStmt *n = makeNode(PGSelectStmt);
22351 n->targetList = (yyvsp[(3) - (10)].list);
22352 n->fromClause = (yyvsp[(2) - (10)].list);
22353 n->intoClause = (yyvsp[(4) - (10)].into);
22354 n->whereClause = (yyvsp[(5) - (10)].node);
22355 n->groupClause = (yyvsp[(6) - (10)].list);
22356 n->havingClause = (yyvsp[(7) - (10)].node);
22357 n->windowClause = (yyvsp[(8) - (10)].list);
22358 n->qualifyClause = (yyvsp[(9) - (10)].node);
22359 n->sampleOptions = (yyvsp[(10) - (10)].node);
22360 (yyval.node) = (PGNode *)n;
22361 ;}
22362 break;
22363
22364 case 504:
22365#line 221 "third_party/libpg_query/grammar/statements/select.y"
22366 {
22367 PGSelectStmt *n = makeNode(PGSelectStmt);
22368 n->targetList = (yyvsp[(5) - (12)].list);
22369 n->distinctClause = (yyvsp[(4) - (12)].list);
22370 n->fromClause = (yyvsp[(2) - (12)].list);
22371 n->intoClause = (yyvsp[(6) - (12)].into);
22372 n->whereClause = (yyvsp[(7) - (12)].node);
22373 n->groupClause = (yyvsp[(8) - (12)].list);
22374 n->havingClause = (yyvsp[(9) - (12)].node);
22375 n->windowClause = (yyvsp[(10) - (12)].list);
22376 n->qualifyClause = (yyvsp[(11) - (12)].node);
22377 n->sampleOptions = (yyvsp[(12) - (12)].node);
22378 (yyval.node) = (PGNode *)n;
22379 ;}
22380 break;
22381
22382 case 505:
22383#line 235 "third_party/libpg_query/grammar/statements/select.y"
22384 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
22385 break;
22386
22387 case 506:
22388#line 237 "third_party/libpg_query/grammar/statements/select.y"
22389 {
22390 /* same as SELECT * FROM relation_expr */
22391 PGColumnRef *cr = makeNode(PGColumnRef);
22392 PGResTarget *rt = makeNode(PGResTarget);
22393 PGSelectStmt *n = makeNode(PGSelectStmt);
22394
22395 cr->fields = list_make1(makeNode(PGAStar));
22396 cr->location = -1;
22397
22398 rt->name = NULL;
22399 rt->indirection = NIL;
22400 rt->val = (PGNode *)cr;
22401 rt->location = -1;
22402
22403 n->targetList = list_make1(rt);
22404 n->fromClause = list_make1((yyvsp[(2) - (2)].range));
22405 (yyval.node) = (PGNode *)n;
22406 ;}
22407 break;
22408
22409 case 507:
22410#line 256 "third_party/libpg_query/grammar/statements/select.y"
22411 {
22412 (yyval.node) = makeSetOp(op: PG_SETOP_UNION_BY_NAME, all: (yyvsp[(3) - (5)].boolean), larg: (yyvsp[(1) - (5)].node), rarg: (yyvsp[(5) - (5)].node));
22413 ;}
22414 break;
22415
22416 case 508:
22417#line 260 "third_party/libpg_query/grammar/statements/select.y"
22418 {
22419 (yyval.node) = makeSetOp(op: PG_SETOP_UNION, all: (yyvsp[(3) - (4)].boolean), larg: (yyvsp[(1) - (4)].node), rarg: (yyvsp[(4) - (4)].node));
22420 ;}
22421 break;
22422
22423 case 509:
22424#line 264 "third_party/libpg_query/grammar/statements/select.y"
22425 {
22426 (yyval.node) = makeSetOp(op: PG_SETOP_INTERSECT, all: (yyvsp[(3) - (4)].boolean), larg: (yyvsp[(1) - (4)].node), rarg: (yyvsp[(4) - (4)].node));
22427 ;}
22428 break;
22429
22430 case 510:
22431#line 268 "third_party/libpg_query/grammar/statements/select.y"
22432 {
22433 (yyval.node) = makeSetOp(op: PG_SETOP_EXCEPT, all: (yyvsp[(3) - (4)].boolean), larg: (yyvsp[(1) - (4)].node), rarg: (yyvsp[(4) - (4)].node));
22434 ;}
22435 break;
22436
22437 case 511:
22438#line 272 "third_party/libpg_query/grammar/statements/select.y"
22439 {
22440 PGSelectStmt *res = makeNode(PGSelectStmt);
22441 PGPivotStmt *n = makeNode(PGPivotStmt);
22442 n->source = (yyvsp[(2) - (4)].node);
22443 n->aggrs = (yyvsp[(4) - (4)].list);
22444 res->pivot = n;
22445 (yyval.node) = (PGNode *)res;
22446 ;}
22447 break;
22448
22449 case 512:
22450#line 281 "third_party/libpg_query/grammar/statements/select.y"
22451 {
22452 PGSelectStmt *res = makeNode(PGSelectStmt);
22453 PGPivotStmt *n = makeNode(PGPivotStmt);
22454 n->source = (yyvsp[(2) - (7)].node);
22455 n->aggrs = (yyvsp[(4) - (7)].list);
22456 n->groups = (yyvsp[(7) - (7)].list);
22457 res->pivot = n;
22458 (yyval.node) = (PGNode *)res;
22459 ;}
22460 break;
22461
22462 case 513:
22463#line 291 "third_party/libpg_query/grammar/statements/select.y"
22464 {
22465 PGSelectStmt *res = makeNode(PGSelectStmt);
22466 PGPivotStmt *n = makeNode(PGPivotStmt);
22467 n->source = (yyvsp[(2) - (5)].node);
22468 n->groups = (yyvsp[(5) - (5)].list);
22469 res->pivot = n;
22470 (yyval.node) = (PGNode *)res;
22471 ;}
22472 break;
22473
22474 case 514:
22475#line 300 "third_party/libpg_query/grammar/statements/select.y"
22476 {
22477 PGSelectStmt *res = makeNode(PGSelectStmt);
22478 PGPivotStmt *n = makeNode(PGPivotStmt);
22479 n->source = (yyvsp[(2) - (4)].node);
22480 n->columns = (yyvsp[(4) - (4)].list);
22481 res->pivot = n;
22482 (yyval.node) = (PGNode *)res;
22483 ;}
22484 break;
22485
22486 case 515:
22487#line 309 "third_party/libpg_query/grammar/statements/select.y"
22488 {
22489 PGSelectStmt *res = makeNode(PGSelectStmt);
22490 PGPivotStmt *n = makeNode(PGPivotStmt);
22491 n->source = (yyvsp[(2) - (7)].node);
22492 n->columns = (yyvsp[(4) - (7)].list);
22493 n->groups = (yyvsp[(7) - (7)].list);
22494 res->pivot = n;
22495 (yyval.node) = (PGNode *)res;
22496 ;}
22497 break;
22498
22499 case 516:
22500#line 319 "third_party/libpg_query/grammar/statements/select.y"
22501 {
22502 PGSelectStmt *res = makeNode(PGSelectStmt);
22503 PGPivotStmt *n = makeNode(PGPivotStmt);
22504 n->source = (yyvsp[(2) - (6)].node);
22505 n->columns = (yyvsp[(4) - (6)].list);
22506 n->aggrs = (yyvsp[(6) - (6)].list);
22507 res->pivot = n;
22508 (yyval.node) = (PGNode *)res;
22509 ;}
22510 break;
22511
22512 case 517:
22513#line 329 "third_party/libpg_query/grammar/statements/select.y"
22514 {
22515 PGSelectStmt *res = makeNode(PGSelectStmt);
22516 PGPivotStmt *n = makeNode(PGPivotStmt);
22517 n->source = (yyvsp[(2) - (9)].node);
22518 n->columns = (yyvsp[(4) - (9)].list);
22519 n->aggrs = (yyvsp[(6) - (9)].list);
22520 n->groups = (yyvsp[(9) - (9)].list);
22521 res->pivot = n;
22522 (yyval.node) = (PGNode *)res;
22523 ;}
22524 break;
22525
22526 case 518:
22527#line 340 "third_party/libpg_query/grammar/statements/select.y"
22528 {
22529 PGSelectStmt *res = makeNode(PGSelectStmt);
22530 PGPivotStmt *n = makeNode(PGPivotStmt);
22531 n->source = (yyvsp[(2) - (9)].node);
22532 n->unpivots = (yyvsp[(9) - (9)].list);
22533 PGPivot *piv = makeNode(PGPivot);
22534 piv->unpivot_columns = list_make1(makeString((yyvsp[(7) - (9)].str)));
22535 piv->pivot_value = (yyvsp[(4) - (9)].list);
22536 n->columns = list_make1(piv);
22537
22538 res->pivot = n;
22539 (yyval.node) = (PGNode *)res;
22540 ;}
22541 break;
22542
22543 case 519:
22544#line 354 "third_party/libpg_query/grammar/statements/select.y"
22545 {
22546 PGSelectStmt *res = makeNode(PGSelectStmt);
22547 PGPivotStmt *n = makeNode(PGPivotStmt);
22548 n->source = (yyvsp[(2) - (4)].node);
22549 n->unpivots = list_make1(makeString("value"));
22550 PGPivot *piv = makeNode(PGPivot);
22551 piv->unpivot_columns = list_make1(makeString("name"));
22552 piv->pivot_value = (yyvsp[(4) - (4)].list);
22553 n->columns = list_make1(piv);
22554
22555 res->pivot = n;
22556 (yyval.node) = (PGNode *)res;
22557 ;}
22558 break;
22559
22560 case 526:
22561#line 383 "third_party/libpg_query/grammar/statements/select.y"
22562 {
22563 PGPivot *n = makeNode(PGPivot);
22564 n->pivot_columns = list_make1((yyvsp[(1) - (1)].node));
22565 (yyval.node) = (PGNode *) n;
22566 ;}
22567 break;
22568
22569 case 527:
22570#line 389 "third_party/libpg_query/grammar/statements/select.y"
22571 {
22572 PGPivot *n = makeNode(PGPivot);
22573 n->pivot_columns = list_make1((yyvsp[(1) - (5)].node));
22574 n->subquery = (yyvsp[(4) - (5)].node);
22575 (yyval.node) = (PGNode *) n;
22576 ;}
22577 break;
22578
22579 case 528:
22580#line 395 "third_party/libpg_query/grammar/statements/select.y"
22581 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
22582 break;
22583
22584 case 529:
22585#line 399 "third_party/libpg_query/grammar/statements/select.y"
22586 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
22587 break;
22588
22589 case 530:
22590#line 400 "third_party/libpg_query/grammar/statements/select.y"
22591 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node)); ;}
22592 break;
22593
22594 case 531:
22595#line 404 "third_party/libpg_query/grammar/statements/select.y"
22596 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
22597 break;
22598
22599 case 532:
22600#line 405 "third_party/libpg_query/grammar/statements/select.y"
22601 { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
22602 break;
22603
22604 case 533:
22605#line 420 "third_party/libpg_query/grammar/statements/select.y"
22606 {
22607 (yyval.with) = makeNode(PGWithClause);
22608 (yyval.with)->ctes = (yyvsp[(2) - (2)].list);
22609 (yyval.with)->recursive = false;
22610 (yyval.with)->location = (yylsp[(1) - (2)]);
22611 ;}
22612 break;
22613
22614 case 534:
22615#line 427 "third_party/libpg_query/grammar/statements/select.y"
22616 {
22617 (yyval.with) = makeNode(PGWithClause);
22618 (yyval.with)->ctes = (yyvsp[(2) - (2)].list);
22619 (yyval.with)->recursive = false;
22620 (yyval.with)->location = (yylsp[(1) - (2)]);
22621 ;}
22622 break;
22623
22624 case 535:
22625#line 434 "third_party/libpg_query/grammar/statements/select.y"
22626 {
22627 (yyval.with) = makeNode(PGWithClause);
22628 (yyval.with)->ctes = (yyvsp[(3) - (3)].list);
22629 (yyval.with)->recursive = true;
22630 (yyval.with)->location = (yylsp[(1) - (3)]);
22631 ;}
22632 break;
22633
22634 case 536:
22635#line 443 "third_party/libpg_query/grammar/statements/select.y"
22636 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
22637 break;
22638
22639 case 537:
22640#line 444 "third_party/libpg_query/grammar/statements/select.y"
22641 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node)); ;}
22642 break;
22643
22644 case 538:
22645#line 448 "third_party/libpg_query/grammar/statements/select.y"
22646 {
22647 PGCommonTableExpr *n = makeNode(PGCommonTableExpr);
22648 n->ctename = (yyvsp[(1) - (6)].str);
22649 n->aliascolnames = (yyvsp[(2) - (6)].list);
22650 n->ctequery = (yyvsp[(5) - (6)].node);
22651 n->location = (yylsp[(1) - (6)]);
22652 (yyval.node) = (PGNode *) n;
22653 ;}
22654 break;
22655
22656 case 539:
22657#line 460 "third_party/libpg_query/grammar/statements/select.y"
22658 {
22659 (yyval.into) = makeNode(PGIntoClause);
22660 (yyval.into)->rel = (yyvsp[(2) - (2)].range);
22661 (yyval.into)->colNames = NIL;
22662 (yyval.into)->options = NIL;
22663 (yyval.into)->onCommit = PG_ONCOMMIT_NOOP;
22664 (yyval.into)->viewQuery = NULL;
22665 (yyval.into)->skipData = false;
22666 ;}
22667 break;
22668
22669 case 540:
22670#line 470 "third_party/libpg_query/grammar/statements/select.y"
22671 { (yyval.into) = NULL; ;}
22672 break;
22673
22674 case 541:
22675#line 479 "third_party/libpg_query/grammar/statements/select.y"
22676 {
22677 (yyval.range) = (yyvsp[(3) - (3)].range);
22678 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
22679 ;}
22680 break;
22681
22682 case 542:
22683#line 484 "third_party/libpg_query/grammar/statements/select.y"
22684 {
22685 (yyval.range) = (yyvsp[(3) - (3)].range);
22686 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
22687 ;}
22688 break;
22689
22690 case 543:
22691#line 489 "third_party/libpg_query/grammar/statements/select.y"
22692 {
22693 (yyval.range) = (yyvsp[(4) - (4)].range);
22694 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
22695 ;}
22696 break;
22697
22698 case 544:
22699#line 494 "third_party/libpg_query/grammar/statements/select.y"
22700 {
22701 (yyval.range) = (yyvsp[(4) - (4)].range);
22702 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
22703 ;}
22704 break;
22705
22706 case 545:
22707#line 499 "third_party/libpg_query/grammar/statements/select.y"
22708 {
22709 ereport(code: PGWARNING,
22710 (errmsg(fmt: "GLOBAL is deprecated in temporary table creation"),
22711 parser_errposition((yylsp[(1) - (4)]))));
22712 (yyval.range) = (yyvsp[(4) - (4)].range);
22713 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
22714 ;}
22715 break;
22716
22717 case 546:
22718#line 507 "third_party/libpg_query/grammar/statements/select.y"
22719 {
22720 ereport(code: PGWARNING,
22721 (errmsg(fmt: "GLOBAL is deprecated in temporary table creation"),
22722 parser_errposition((yylsp[(1) - (4)]))));
22723 (yyval.range) = (yyvsp[(4) - (4)].range);
22724 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
22725 ;}
22726 break;
22727
22728 case 547:
22729#line 515 "third_party/libpg_query/grammar/statements/select.y"
22730 {
22731 (yyval.range) = (yyvsp[(3) - (3)].range);
22732 (yyval.range)->relpersistence = PG_RELPERSISTENCE_UNLOGGED;
22733 ;}
22734 break;
22735
22736 case 548:
22737#line 520 "third_party/libpg_query/grammar/statements/select.y"
22738 {
22739 (yyval.range) = (yyvsp[(2) - (2)].range);
22740 (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
22741 ;}
22742 break;
22743
22744 case 549:
22745#line 525 "third_party/libpg_query/grammar/statements/select.y"
22746 {
22747 (yyval.range) = (yyvsp[(1) - (1)].range);
22748 (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
22749 ;}
22750 break;
22751
22752 case 550:
22753#line 531 "third_party/libpg_query/grammar/statements/select.y"
22754 {;}
22755 break;
22756
22757 case 551:
22758#line 532 "third_party/libpg_query/grammar/statements/select.y"
22759 {;}
22760 break;
22761
22762 case 552:
22763#line 536 "third_party/libpg_query/grammar/statements/select.y"
22764 { (yyval.boolean) = true; ;}
22765 break;
22766
22767 case 553:
22768#line 537 "third_party/libpg_query/grammar/statements/select.y"
22769 { (yyval.boolean) = false; ;}
22770 break;
22771
22772 case 554:
22773#line 538 "third_party/libpg_query/grammar/statements/select.y"
22774 { (yyval.boolean) = false; ;}
22775 break;
22776
22777 case 555:
22778#line 542 "third_party/libpg_query/grammar/statements/select.y"
22779 { ;}
22780 break;
22781
22782 case 556:
22783#line 549 "third_party/libpg_query/grammar/statements/select.y"
22784 { (yyval.list) = list_make1(NIL); ;}
22785 break;
22786
22787 case 557:
22788#line 550 "third_party/libpg_query/grammar/statements/select.y"
22789 { (yyval.list) = (yyvsp[(4) - (5)].list); ;}
22790 break;
22791
22792 case 558:
22793#line 554 "third_party/libpg_query/grammar/statements/select.y"
22794 { (yyval.list) = NIL;;}
22795 break;
22796
22797 case 559:
22798#line 555 "third_party/libpg_query/grammar/statements/select.y"
22799 { (yyval.list) = NIL; ;}
22800 break;
22801
22802 case 560:
22803#line 559 "third_party/libpg_query/grammar/statements/select.y"
22804 { (yyval.boolean) = true;;}
22805 break;
22806
22807 case 561:
22808#line 560 "third_party/libpg_query/grammar/statements/select.y"
22809 { (yyval.boolean) = false;;}
22810 break;
22811
22812 case 562:
22813#line 561 "third_party/libpg_query/grammar/statements/select.y"
22814 { (yyval.boolean) = false; ;}
22815 break;
22816
22817 case 563:
22818#line 565 "third_party/libpg_query/grammar/statements/select.y"
22819 { (yyval.list) = (yyvsp[(1) - (1)].list);;}
22820 break;
22821
22822 case 564:
22823#line 566 "third_party/libpg_query/grammar/statements/select.y"
22824 { (yyval.list) = NIL; ;}
22825 break;
22826
22827 case 565:
22828#line 570 "third_party/libpg_query/grammar/statements/select.y"
22829 { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
22830 break;
22831
22832 case 566:
22833#line 572 "third_party/libpg_query/grammar/statements/select.y"
22834 {
22835 PGSortBy *sort = makeNode(PGSortBy);
22836 PGAStar *star = makeNode(PGAStar);
22837 star->columns = true;
22838 star->location = (yylsp[(3) - (5)]);
22839 sort->node = (PGNode *) star;
22840 sort->sortby_dir = (yyvsp[(4) - (5)].sortorder);
22841 sort->sortby_nulls = (yyvsp[(5) - (5)].nullorder);
22842 sort->useOp = NIL;
22843 sort->location = -1; /* no operator */
22844 (yyval.list) = list_make1(sort);
22845 ;}
22846 break;
22847
22848 case 567:
22849#line 587 "third_party/libpg_query/grammar/statements/select.y"
22850 { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;}
22851 break;
22852
22853 case 568:
22854#line 588 "third_party/libpg_query/grammar/statements/select.y"
22855 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].sortby)); ;}
22856 break;
22857
22858 case 569:
22859#line 592 "third_party/libpg_query/grammar/statements/select.y"
22860 {
22861 (yyval.sortby) = makeNode(PGSortBy);
22862 (yyval.sortby)->node = (yyvsp[(1) - (4)].node);
22863 (yyval.sortby)->sortby_dir = SORTBY_USING;
22864 (yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].nullorder);
22865 (yyval.sortby)->useOp = (yyvsp[(3) - (4)].list);
22866 (yyval.sortby)->location = (yylsp[(3) - (4)]);
22867 ;}
22868 break;
22869
22870 case 570:
22871#line 601 "third_party/libpg_query/grammar/statements/select.y"
22872 {
22873 (yyval.sortby) = makeNode(PGSortBy);
22874 (yyval.sortby)->node = (yyvsp[(1) - (3)].node);
22875 (yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].sortorder);
22876 (yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].nullorder);
22877 (yyval.sortby)->useOp = NIL;
22878 (yyval.sortby)->location = -1; /* no operator */
22879 ;}
22880 break;
22881
22882 case 571:
22883#line 611 "third_party/libpg_query/grammar/statements/select.y"
22884 { (yyval.sortorder) = PG_SORTBY_ASC; ;}
22885 break;
22886
22887 case 572:
22888#line 612 "third_party/libpg_query/grammar/statements/select.y"
22889 { (yyval.sortorder) = PG_SORTBY_DESC; ;}
22890 break;
22891
22892 case 573:
22893#line 613 "third_party/libpg_query/grammar/statements/select.y"
22894 { (yyval.sortorder) = PG_SORTBY_DEFAULT; ;}
22895 break;
22896
22897 case 574:
22898#line 616 "third_party/libpg_query/grammar/statements/select.y"
22899 { (yyval.nullorder) = PG_SORTBY_NULLS_FIRST; ;}
22900 break;
22901
22902 case 575:
22903#line 617 "third_party/libpg_query/grammar/statements/select.y"
22904 { (yyval.nullorder) = PG_SORTBY_NULLS_LAST; ;}
22905 break;
22906
22907 case 576:
22908#line 618 "third_party/libpg_query/grammar/statements/select.y"
22909 { (yyval.nullorder) = PG_SORTBY_NULLS_DEFAULT; ;}
22910 break;
22911
22912 case 577:
22913#line 622 "third_party/libpg_query/grammar/statements/select.y"
22914 { (yyval.list) = list_make2((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); ;}
22915 break;
22916
22917 case 578:
22918#line 623 "third_party/libpg_query/grammar/statements/select.y"
22919 { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;}
22920 break;
22921
22922 case 579:
22923#line 624 "third_party/libpg_query/grammar/statements/select.y"
22924 { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (1)].node)); ;}
22925 break;
22926
22927 case 580:
22928#line 625 "third_party/libpg_query/grammar/statements/select.y"
22929 { (yyval.list) = list_make2((yyvsp[(1) - (1)].node), NULL); ;}
22930 break;
22931
22932 case 581:
22933#line 629 "third_party/libpg_query/grammar/statements/select.y"
22934 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
22935 break;
22936
22937 case 582:
22938#line 630 "third_party/libpg_query/grammar/statements/select.y"
22939 { (yyval.list) = list_make2(NULL,NULL); ;}
22940 break;
22941
22942 case 583:
22943#line 635 "third_party/libpg_query/grammar/statements/select.y"
22944 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
22945 break;
22946
22947 case 584:
22948#line 637 "third_party/libpg_query/grammar/statements/select.y"
22949 {
22950 /* Disabled because it was too confusing, bjm 2002-02-18 */
22951 ereport(code: ERROR,
22952 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
22953 errmsg(fmt: "LIMIT #,# syntax is not supported"),
22954 errhint(msg: "Use separate LIMIT and OFFSET clauses."),
22955 parser_errposition((yylsp[(1) - (4)]))));
22956 ;}
22957 break;
22958
22959 case 585:
22960#line 653 "third_party/libpg_query/grammar/statements/select.y"
22961 { (yyval.node) = (yyvsp[(3) - (5)].node); ;}
22962 break;
22963
22964 case 586:
22965#line 655 "third_party/libpg_query/grammar/statements/select.y"
22966 { (yyval.node) = makeIntConst(val: 1, location: -1); ;}
22967 break;
22968
22969 case 587:
22970#line 660 "third_party/libpg_query/grammar/statements/select.y"
22971 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
22972 break;
22973
22974 case 588:
22975#line 663 "third_party/libpg_query/grammar/statements/select.y"
22976 { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
22977 break;
22978
22979 case 589:
22980#line 671 "third_party/libpg_query/grammar/statements/select.y"
22981 {
22982 (yyval.node) = makeSampleSize(sample_size: makeFloat(numericStr: (yyvsp[(1) - (2)].str)), is_percentage: true);
22983 ;}
22984 break;
22985
22986 case 590:
22987#line 675 "third_party/libpg_query/grammar/statements/select.y"
22988 {
22989 (yyval.node) = makeSampleSize(sample_size: makeInteger(i: (yyvsp[(1) - (2)].ival)), is_percentage: true);
22990 ;}
22991 break;
22992
22993 case 591:
22994#line 679 "third_party/libpg_query/grammar/statements/select.y"
22995 {
22996 (yyval.node) = makeSampleSize(sample_size: makeFloat(numericStr: (yyvsp[(1) - (2)].str)), is_percentage: true);
22997 ;}
22998 break;
22999
23000 case 592:
23001#line 683 "third_party/libpg_query/grammar/statements/select.y"
23002 {
23003 (yyval.node) = makeSampleSize(sample_size: makeInteger(i: (yyvsp[(1) - (2)].ival)), is_percentage: true);
23004 ;}
23005 break;
23006
23007 case 593:
23008#line 687 "third_party/libpg_query/grammar/statements/select.y"
23009 {
23010 (yyval.node) = makeSampleSize(sample_size: makeInteger(i: (yyvsp[(1) - (1)].ival)), is_percentage: false);
23011 ;}
23012 break;
23013
23014 case 594:
23015#line 691 "third_party/libpg_query/grammar/statements/select.y"
23016 {
23017 (yyval.node) = makeSampleSize(sample_size: makeInteger(i: (yyvsp[(1) - (2)].ival)), is_percentage: false);
23018 ;}
23019 break;
23020
23021 case 595:
23022#line 698 "third_party/libpg_query/grammar/statements/select.y"
23023 {
23024 (yyval.node) = (yyvsp[(3) - (3)].node);
23025 ;}
23026 break;
23027
23028 case 596:
23029#line 702 "third_party/libpg_query/grammar/statements/select.y"
23030 { (yyval.node) = NULL; ;}
23031 break;
23032
23033 case 597:
23034#line 709 "third_party/libpg_query/grammar/statements/select.y"
23035 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
23036 break;
23037
23038 case 598:
23039#line 710 "third_party/libpg_query/grammar/statements/select.y"
23040 { (yyval.str) = NULL; ;}
23041 break;
23042
23043 case 599:
23044#line 715 "third_party/libpg_query/grammar/statements/select.y"
23045 {
23046 int seed = (yyvsp[(5) - (5)].ival);
23047 (yyval.node) = makeSampleOptions(sample_size: (yyvsp[(3) - (5)].node), method: (yyvsp[(1) - (5)].str), seed: &seed, location: (yylsp[(1) - (5)]));
23048 ;}
23049 break;
23050
23051 case 600:
23052#line 720 "third_party/libpg_query/grammar/statements/select.y"
23053 {
23054 (yyval.node) = makeSampleOptions(sample_size: (yyvsp[(1) - (1)].node), NULL, NULL, location: (yylsp[(1) - (1)]));
23055 ;}
23056 break;
23057
23058 case 601:
23059#line 724 "third_party/libpg_query/grammar/statements/select.y"
23060 {
23061 (yyval.node) = makeSampleOptions(sample_size: (yyvsp[(1) - (4)].node), method: (yyvsp[(3) - (4)].str), NULL, location: (yylsp[(1) - (4)]));
23062 ;}
23063 break;
23064
23065 case 602:
23066#line 728 "third_party/libpg_query/grammar/statements/select.y"
23067 {
23068 int seed = (yyvsp[(5) - (6)].ival);
23069 (yyval.node) = makeSampleOptions(sample_size: (yyvsp[(1) - (6)].node), method: (yyvsp[(3) - (6)].str), seed: &seed, location: (yylsp[(1) - (6)]));
23070 ;}
23071 break;
23072
23073 case 603:
23074#line 736 "third_party/libpg_query/grammar/statements/select.y"
23075 {
23076 (yyval.node) = (yyvsp[(2) - (2)].node);
23077 ;}
23078 break;
23079
23080 case 604:
23081#line 742 "third_party/libpg_query/grammar/statements/select.y"
23082 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
23083 break;
23084
23085 case 605:
23086#line 743 "third_party/libpg_query/grammar/statements/select.y"
23087 { (yyval.node) = NULL; ;}
23088 break;
23089
23090 case 606:
23091#line 748 "third_party/libpg_query/grammar/statements/select.y"
23092 { (yyval.ival) = (yyvsp[(3) - (4)].ival); ;}
23093 break;
23094
23095 case 607:
23096#line 749 "third_party/libpg_query/grammar/statements/select.y"
23097 { (yyval.ival) = -1; ;}
23098 break;
23099
23100 case 608:
23101#line 753 "third_party/libpg_query/grammar/statements/select.y"
23102 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
23103 break;
23104
23105 case 609:
23106#line 755 "third_party/libpg_query/grammar/statements/select.y"
23107 {
23108 /* LIMIT ALL is represented as a NULL constant */
23109 (yyval.node) = makeNullAConst(location: (yylsp[(1) - (1)]));
23110 ;}
23111 break;
23112
23113 case 610:
23114#line 760 "third_party/libpg_query/grammar/statements/select.y"
23115 { (yyval.node) = makeLimitPercent(limit_percent: (yyvsp[(1) - (2)].node)); ;}
23116 break;
23117
23118 case 611:
23119#line 762 "third_party/libpg_query/grammar/statements/select.y"
23120 { (yyval.node) = makeLimitPercent(limit_percent: makeFloatConst(str: (yyvsp[(1) - (2)].str),location: (yylsp[(1) - (2)]))); ;}
23121 break;
23122
23123 case 612:
23124#line 764 "third_party/libpg_query/grammar/statements/select.y"
23125 { (yyval.node) = makeLimitPercent(limit_percent: makeIntConst(val: (yyvsp[(1) - (2)].ival),location: (yylsp[(1) - (2)]))); ;}
23126 break;
23127
23128 case 613:
23129#line 768 "third_party/libpg_query/grammar/statements/select.y"
23130 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
23131 break;
23132
23133 case 614:
23134#line 788 "third_party/libpg_query/grammar/statements/select.y"
23135 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
23136 break;
23137
23138 case 615:
23139#line 790 "third_party/libpg_query/grammar/statements/select.y"
23140 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "+", NULL, rexpr: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)])); ;}
23141 break;
23142
23143 case 616:
23144#line 792 "third_party/libpg_query/grammar/statements/select.y"
23145 { (yyval.node) = doNegate(n: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)])); ;}
23146 break;
23147
23148 case 617:
23149#line 796 "third_party/libpg_query/grammar/statements/select.y"
23150 { (yyval.node) = makeIntConst(val: (yyvsp[(1) - (1)].ival),location: (yylsp[(1) - (1)])); ;}
23151 break;
23152
23153 case 618:
23154#line 797 "third_party/libpg_query/grammar/statements/select.y"
23155 { (yyval.node) = makeFloatConst(str: (yyvsp[(1) - (1)].str),location: (yylsp[(1) - (1)])); ;}
23156 break;
23157
23158 case 619:
23159#line 801 "third_party/libpg_query/grammar/statements/select.y"
23160 { (yyval.ival) = 0; ;}
23161 break;
23162
23163 case 620:
23164#line 802 "third_party/libpg_query/grammar/statements/select.y"
23165 { (yyval.ival) = 0; ;}
23166 break;
23167
23168 case 621:
23169#line 805 "third_party/libpg_query/grammar/statements/select.y"
23170 { (yyval.ival) = 0; ;}
23171 break;
23172
23173 case 622:
23174#line 806 "third_party/libpg_query/grammar/statements/select.y"
23175 { (yyval.ival) = 0; ;}
23176 break;
23177
23178 case 623:
23179#line 831 "third_party/libpg_query/grammar/statements/select.y"
23180 { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
23181 break;
23182
23183 case 624:
23184#line 833 "third_party/libpg_query/grammar/statements/select.y"
23185 {
23186 PGNode *node = (PGNode *) makeGroupingSet(kind: GROUPING_SET_ALL, NIL, location: (yylsp[(3) - (3)]));
23187 (yyval.list) = list_make1(node);
23188 ;}
23189 break;
23190
23191 case 625:
23192#line 837 "third_party/libpg_query/grammar/statements/select.y"
23193 { (yyval.list) = NIL; ;}
23194 break;
23195
23196 case 626:
23197#line 841 "third_party/libpg_query/grammar/statements/select.y"
23198 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
23199 break;
23200
23201 case 627:
23202#line 842 "third_party/libpg_query/grammar/statements/select.y"
23203 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list),datum: (yyvsp[(3) - (3)].node)); ;}
23204 break;
23205
23206 case 628:
23207#line 846 "third_party/libpg_query/grammar/statements/select.y"
23208 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
23209 break;
23210
23211 case 629:
23212#line 847 "third_party/libpg_query/grammar/statements/select.y"
23213 { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
23214 break;
23215
23216 case 630:
23217#line 851 "third_party/libpg_query/grammar/statements/select.y"
23218 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
23219 break;
23220
23221 case 631:
23222#line 852 "third_party/libpg_query/grammar/statements/select.y"
23223 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
23224 break;
23225
23226 case 632:
23227#line 853 "third_party/libpg_query/grammar/statements/select.y"
23228 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
23229 break;
23230
23231 case 633:
23232#line 854 "third_party/libpg_query/grammar/statements/select.y"
23233 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
23234 break;
23235
23236 case 634:
23237#line 855 "third_party/libpg_query/grammar/statements/select.y"
23238 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
23239 break;
23240
23241 case 635:
23242#line 860 "third_party/libpg_query/grammar/statements/select.y"
23243 {
23244 (yyval.node) = (PGNode *) makeGroupingSet(kind: GROUPING_SET_EMPTY, NIL, location: (yylsp[(1) - (2)]));
23245 ;}
23246 break;
23247
23248 case 636:
23249#line 873 "third_party/libpg_query/grammar/statements/select.y"
23250 {
23251 (yyval.node) = (PGNode *) makeGroupingSet(kind: GROUPING_SET_ROLLUP, content: (yyvsp[(3) - (4)].list), location: (yylsp[(1) - (4)]));
23252 ;}
23253 break;
23254
23255 case 637:
23256#line 880 "third_party/libpg_query/grammar/statements/select.y"
23257 {
23258 (yyval.node) = (PGNode *) makeGroupingSet(kind: GROUPING_SET_CUBE, content: (yyvsp[(3) - (4)].list), location: (yylsp[(1) - (4)]));
23259 ;}
23260 break;
23261
23262 case 638:
23263#line 887 "third_party/libpg_query/grammar/statements/select.y"
23264 {
23265 (yyval.node) = (PGNode *) makeGroupingSet(kind: GROUPING_SET_SETS, content: (yyvsp[(4) - (5)].list), location: (yylsp[(1) - (5)]));
23266 ;}
23267 break;
23268
23269 case 639:
23270#line 893 "third_party/libpg_query/grammar/statements/select.y"
23271 { (yyval.node) = NULL; ;}
23272 break;
23273
23274 case 640:
23275#line 894 "third_party/libpg_query/grammar/statements/select.y"
23276 { (yyval.node) = NULL; ;}
23277 break;
23278
23279 case 641:
23280#line 898 "third_party/libpg_query/grammar/statements/select.y"
23281 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
23282 break;
23283
23284 case 642:
23285#line 899 "third_party/libpg_query/grammar/statements/select.y"
23286 { (yyval.node) = NULL; ;}
23287 break;
23288
23289 case 643:
23290#line 903 "third_party/libpg_query/grammar/statements/select.y"
23291 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
23292 break;
23293
23294 case 644:
23295#line 904 "third_party/libpg_query/grammar/statements/select.y"
23296 { (yyval.node) = NULL; ;}
23297 break;
23298
23299 case 645:
23300#line 908 "third_party/libpg_query/grammar/statements/select.y"
23301 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
23302 break;
23303
23304 case 646:
23305#line 909 "third_party/libpg_query/grammar/statements/select.y"
23306 { (yyval.list) = NIL; ;}
23307 break;
23308
23309 case 647:
23310#line 913 "third_party/libpg_query/grammar/statements/select.y"
23311 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
23312 break;
23313
23314 case 648:
23315#line 914 "third_party/libpg_query/grammar/statements/select.y"
23316 { (yyval.list) = NIL; ;}
23317 break;
23318
23319 case 649:
23320#line 918 "third_party/libpg_query/grammar/statements/select.y"
23321 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
23322 break;
23323
23324 case 650:
23325#line 919 "third_party/libpg_query/grammar/statements/select.y"
23326 { (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].node)); ;}
23327 break;
23328
23329 case 651:
23330#line 924 "third_party/libpg_query/grammar/statements/select.y"
23331 {
23332 PGLockingClause *n = makeNode(PGLockingClause);
23333 n->lockedRels = (yyvsp[(2) - (3)].list);
23334 n->strength = (yyvsp[(1) - (3)].lockstrength);
23335 n->waitPolicy = (yyvsp[(3) - (3)].lockwaitpolicy);
23336 (yyval.node) = (PGNode *) n;
23337 ;}
23338 break;
23339
23340 case 652:
23341#line 934 "third_party/libpg_query/grammar/statements/select.y"
23342 { (yyval.lockstrength) = LCS_FORUPDATE; ;}
23343 break;
23344
23345 case 653:
23346#line 935 "third_party/libpg_query/grammar/statements/select.y"
23347 { (yyval.lockstrength) = PG_LCS_FORNOKEYUPDATE; ;}
23348 break;
23349
23350 case 654:
23351#line 936 "third_party/libpg_query/grammar/statements/select.y"
23352 { (yyval.lockstrength) = PG_LCS_FORSHARE; ;}
23353 break;
23354
23355 case 655:
23356#line 937 "third_party/libpg_query/grammar/statements/select.y"
23357 { (yyval.lockstrength) = PG_LCS_FORKEYSHARE; ;}
23358 break;
23359
23360 case 656:
23361#line 941 "third_party/libpg_query/grammar/statements/select.y"
23362 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
23363 break;
23364
23365 case 657:
23366#line 942 "third_party/libpg_query/grammar/statements/select.y"
23367 { (yyval.list) = NIL; ;}
23368 break;
23369
23370 case 658:
23371#line 947 "third_party/libpg_query/grammar/statements/select.y"
23372 { (yyval.lockwaitpolicy) = LockWaitError; ;}
23373 break;
23374
23375 case 659:
23376#line 948 "third_party/libpg_query/grammar/statements/select.y"
23377 { (yyval.lockwaitpolicy) = PGLockWaitSkip; ;}
23378 break;
23379
23380 case 660:
23381#line 949 "third_party/libpg_query/grammar/statements/select.y"
23382 { (yyval.lockwaitpolicy) = PGLockWaitBlock; ;}
23383 break;
23384
23385 case 661:
23386#line 959 "third_party/libpg_query/grammar/statements/select.y"
23387 {
23388 PGSelectStmt *n = makeNode(PGSelectStmt);
23389 n->valuesLists = list_make1((yyvsp[(3) - (4)].list));
23390 (yyval.node) = (PGNode *) n;
23391 ;}
23392 break;
23393
23394 case 662:
23395#line 965 "third_party/libpg_query/grammar/statements/select.y"
23396 {
23397 PGSelectStmt *n = (PGSelectStmt *) (yyvsp[(1) - (5)].node);
23398 n->valuesLists = lappend(list: n->valuesLists, datum: (yyvsp[(4) - (5)].list));
23399 (yyval.node) = (PGNode *) n;
23400 ;}
23401 break;
23402
23403 case 663:
23404#line 973 "third_party/libpg_query/grammar/statements/select.y"
23405 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
23406 break;
23407
23408 case 664:
23409#line 974 "third_party/libpg_query/grammar/statements/select.y"
23410 { (yyval.node) = (yyvsp[(1) - (2)].node); ;}
23411 break;
23412
23413 case 665:
23414#line 987 "third_party/libpg_query/grammar/statements/select.y"
23415 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
23416 break;
23417
23418 case 666:
23419#line 988 "third_party/libpg_query/grammar/statements/select.y"
23420 { (yyval.list) = NIL; ;}
23421 break;
23422
23423 case 667:
23424#line 992 "third_party/libpg_query/grammar/statements/select.y"
23425 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
23426 break;
23427
23428 case 668:
23429#line 993 "third_party/libpg_query/grammar/statements/select.y"
23430 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node)); ;}
23431 break;
23432
23433 case 669:
23434#line 997 "third_party/libpg_query/grammar/statements/select.y"
23435 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
23436 break;
23437
23438 case 670:
23439#line 998 "third_party/libpg_query/grammar/statements/select.y"
23440 { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
23441 break;
23442
23443 case 671:
23444#line 1005 "third_party/libpg_query/grammar/statements/select.y"
23445 {
23446 (yyvsp[(1) - (3)].range)->alias = (yyvsp[(2) - (3)].alias);
23447 (yyvsp[(1) - (3)].range)->sample = (yyvsp[(3) - (3)].node);
23448 (yyval.node) = (PGNode *) (yyvsp[(1) - (3)].range);
23449 ;}
23450 break;
23451
23452 case 672:
23453#line 1011 "third_party/libpg_query/grammar/statements/select.y"
23454 {
23455 PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(1) - (3)].node);
23456 n->alias = (PGAlias*) linitial((yyvsp[(2) - (3)].list));
23457 n->coldeflist = (PGList*) lsecond((yyvsp[(2) - (3)].list));
23458 n->sample = (yyvsp[(3) - (3)].node);
23459 (yyval.node) = (PGNode *) n;
23460 ;}
23461 break;
23462
23463 case 673:
23464#line 1019 "third_party/libpg_query/grammar/statements/select.y"
23465 {
23466 PGRangeSubselect *n = makeNode(PGRangeSubselect);
23467 n->lateral = false;
23468 n->subquery = (yyvsp[(1) - (3)].node);
23469 n->alias = (yyvsp[(2) - (3)].alias);
23470 n->sample = (yyvsp[(3) - (3)].node);
23471 (yyval.node) = (PGNode *) n;
23472 ;}
23473 break;
23474
23475 case 674:
23476#line 1028 "third_party/libpg_query/grammar/statements/select.y"
23477 {
23478 PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(2) - (3)].node);
23479 n->lateral = true;
23480 n->alias = (PGAlias*) linitial((yyvsp[(3) - (3)].list));
23481 n->coldeflist = (PGList*) lsecond((yyvsp[(3) - (3)].list));
23482 (yyval.node) = (PGNode *) n;
23483 ;}
23484 break;
23485
23486 case 675:
23487#line 1036 "third_party/libpg_query/grammar/statements/select.y"
23488 {
23489 PGRangeSubselect *n = makeNode(PGRangeSubselect);
23490 n->lateral = false;
23491 n->subquery = (yyvsp[(1) - (3)].node);
23492 n->alias = (yyvsp[(2) - (3)].alias);
23493 n->sample = (yyvsp[(3) - (3)].node);
23494 (yyval.node) = (PGNode *) n;
23495 ;}
23496 break;
23497
23498 case 676:
23499#line 1045 "third_party/libpg_query/grammar/statements/select.y"
23500 {
23501 PGRangeSubselect *n = makeNode(PGRangeSubselect);
23502 n->lateral = true;
23503 n->subquery = (yyvsp[(2) - (3)].node);
23504 n->alias = (yyvsp[(3) - (3)].alias);
23505 n->sample = NULL;
23506 (yyval.node) = (PGNode *) n;
23507 ;}
23508 break;
23509
23510 case 677:
23511#line 1054 "third_party/libpg_query/grammar/statements/select.y"
23512 {
23513 (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].jexpr);
23514 ;}
23515 break;
23516
23517 case 678:
23518#line 1058 "third_party/libpg_query/grammar/statements/select.y"
23519 {
23520 (yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias);
23521 (yyval.node) = (PGNode *) (yyvsp[(2) - (4)].jexpr);
23522 ;}
23523 break;
23524
23525 case 679:
23526#line 1063 "third_party/libpg_query/grammar/statements/select.y"
23527 {
23528 PGPivotExpr *n = makeNode(PGPivotExpr);
23529 n->source = (yyvsp[(1) - (9)].node);
23530 n->aggrs = (yyvsp[(4) - (9)].list);
23531 n->pivots = (yyvsp[(6) - (9)].list);
23532 n->groups = (yyvsp[(7) - (9)].list);
23533 n->alias = (yyvsp[(9) - (9)].alias);
23534 (yyval.node) = (PGNode *) n;
23535 ;}
23536 break;
23537
23538 case 680:
23539#line 1073 "third_party/libpg_query/grammar/statements/select.y"
23540 {
23541 PGPivotExpr *n = makeNode(PGPivotExpr);
23542 n->source = (yyvsp[(1) - (9)].node);
23543 n->include_nulls = (yyvsp[(3) - (9)].boolean);
23544 n->unpivots = (yyvsp[(5) - (9)].list);
23545 n->pivots = (yyvsp[(7) - (9)].list);
23546 n->alias = (yyvsp[(9) - (9)].alias);
23547 (yyval.node) = (PGNode *) n;
23548 ;}
23549 break;
23550
23551 case 681:
23552#line 1085 "third_party/libpg_query/grammar/statements/select.y"
23553 { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
23554 break;
23555
23556 case 682:
23557#line 1086 "third_party/libpg_query/grammar/statements/select.y"
23558 { (yyval.list) = NULL; ;}
23559 break;
23560
23561 case 683:
23562#line 1089 "third_party/libpg_query/grammar/statements/select.y"
23563 { (yyval.boolean) = true; ;}
23564 break;
23565
23566 case 684:
23567#line 1090 "third_party/libpg_query/grammar/statements/select.y"
23568 { (yyval.boolean) = false; ;}
23569 break;
23570
23571 case 685:
23572#line 1091 "third_party/libpg_query/grammar/statements/select.y"
23573 { (yyval.boolean) = false; ;}
23574 break;
23575
23576 case 686:
23577#line 1095 "third_party/libpg_query/grammar/statements/select.y"
23578 {
23579 PGPivot *n = makeNode(PGPivot);
23580 n->pivot_columns = list_make1((yyvsp[(1) - (5)].node));
23581 n->pivot_value = (yyvsp[(4) - (5)].list);
23582 (yyval.node) = (PGNode *) n;
23583 ;}
23584 break;
23585
23586 case 687:
23587#line 1103 "third_party/libpg_query/grammar/statements/select.y"
23588 {
23589 PGPivot *n = makeNode(PGPivot);
23590 n->pivot_columns = list_make1((yyvsp[(1) - (3)].node));
23591 n->pivot_enum = (yyvsp[(3) - (3)].str);
23592 (yyval.node) = (PGNode *) n;
23593 ;}
23594 break;
23595
23596 case 688:
23597#line 1112 "third_party/libpg_query/grammar/statements/select.y"
23598 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
23599 break;
23600
23601 case 689:
23602#line 1113 "third_party/libpg_query/grammar/statements/select.y"
23603 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
23604 break;
23605
23606 case 690:
23607#line 1117 "third_party/libpg_query/grammar/statements/select.y"
23608 {
23609 PGPivot *n = makeNode(PGPivot);
23610 n->pivot_columns = (yyvsp[(1) - (5)].list);
23611 n->pivot_value = (yyvsp[(4) - (5)].list);
23612 (yyval.node) = (PGNode *) n;
23613 ;}
23614 break;
23615
23616 case 691:
23617#line 1125 "third_party/libpg_query/grammar/statements/select.y"
23618 {
23619 PGPivot *n = makeNode(PGPivot);
23620 n->pivot_columns = (yyvsp[(1) - (3)].list);
23621 n->pivot_enum = (yyvsp[(3) - (3)].str);
23622 (yyval.node) = (PGNode *) n;
23623 ;}
23624 break;
23625
23626 case 692:
23627#line 1134 "third_party/libpg_query/grammar/statements/select.y"
23628 {
23629 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
23630 ;}
23631 break;
23632
23633 case 693:
23634#line 1138 "third_party/libpg_query/grammar/statements/select.y"
23635 {
23636 (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].node));
23637 ;}
23638 break;
23639
23640 case 694:
23641#line 1144 "third_party/libpg_query/grammar/statements/select.y"
23642 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
23643 break;
23644
23645 case 695:
23646#line 1145 "third_party/libpg_query/grammar/statements/select.y"
23647 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
23648 break;
23649
23650 case 696:
23651#line 1150 "third_party/libpg_query/grammar/statements/select.y"
23652 {
23653 PGPivot *n = makeNode(PGPivot);
23654 n->unpivot_columns = (yyvsp[(1) - (5)].list);
23655 n->pivot_value = (yyvsp[(4) - (5)].list);
23656 (yyval.node) = (PGNode *) n;
23657 ;}
23658 break;
23659
23660 case 697:
23661#line 1159 "third_party/libpg_query/grammar/statements/select.y"
23662 {
23663 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
23664 ;}
23665 break;
23666
23667 case 698:
23668#line 1163 "third_party/libpg_query/grammar/statements/select.y"
23669 {
23670 (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].node));
23671 ;}
23672 break;
23673
23674 case 699:
23675#line 1188 "third_party/libpg_query/grammar/statements/select.y"
23676 {
23677 (yyval.jexpr) = (yyvsp[(2) - (3)].jexpr);
23678 ;}
23679 break;
23680
23681 case 700:
23682#line 1192 "third_party/libpg_query/grammar/statements/select.y"
23683 {
23684 /* CROSS JOIN is same as unqualified inner join */
23685 PGJoinExpr *n = makeNode(PGJoinExpr);
23686 n->jointype = PG_JOIN_INNER;
23687 n->joinreftype = PG_JOIN_REGULAR;
23688 n->larg = (yyvsp[(1) - (4)].node);
23689 n->rarg = (yyvsp[(4) - (4)].node);
23690 n->usingClause = NIL;
23691 n->quals = NULL;
23692 n->location = (yylsp[(2) - (4)]);
23693 (yyval.jexpr) = n;
23694 ;}
23695 break;
23696
23697 case 701:
23698#line 1205 "third_party/libpg_query/grammar/statements/select.y"
23699 {
23700 PGJoinExpr *n = makeNode(PGJoinExpr);
23701 n->jointype = (yyvsp[(2) - (5)].jtype);
23702 n->joinreftype = PG_JOIN_REGULAR;
23703 n->larg = (yyvsp[(1) - (5)].node);
23704 n->rarg = (yyvsp[(4) - (5)].node);
23705 if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList))
23706 n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */
23707 else
23708 n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
23709 n->location = (yylsp[(2) - (5)]);
23710 (yyval.jexpr) = n;
23711 ;}
23712 break;
23713
23714 case 702:
23715#line 1219 "third_party/libpg_query/grammar/statements/select.y"
23716 {
23717 /* letting join_type reduce to empty doesn't work */
23718 PGJoinExpr *n = makeNode(PGJoinExpr);
23719 n->jointype = PG_JOIN_INNER;
23720 n->joinreftype = PG_JOIN_REGULAR;
23721 n->larg = (yyvsp[(1) - (4)].node);
23722 n->rarg = (yyvsp[(3) - (4)].node);
23723 if ((yyvsp[(4) - (4)].node) != NULL && IsA((yyvsp[(4) - (4)].node), PGList))
23724 n->usingClause = (PGList *) (yyvsp[(4) - (4)].node); /* USING clause */
23725 else
23726 n->quals = (yyvsp[(4) - (4)].node); /* ON clause */
23727 n->location = (yylsp[(2) - (4)]);
23728 (yyval.jexpr) = n;
23729 ;}
23730 break;
23731
23732 case 703:
23733#line 1234 "third_party/libpg_query/grammar/statements/select.y"
23734 {
23735 PGJoinExpr *n = makeNode(PGJoinExpr);
23736 n->jointype = (yyvsp[(3) - (5)].jtype);
23737 n->joinreftype = PG_JOIN_NATURAL;
23738 n->larg = (yyvsp[(1) - (5)].node);
23739 n->rarg = (yyvsp[(5) - (5)].node);
23740 n->usingClause = NIL; /* figure out which columns later... */
23741 n->quals = NULL; /* fill later */
23742 n->location = (yylsp[(2) - (5)]);
23743 (yyval.jexpr) = n;
23744 ;}
23745 break;
23746
23747 case 704:
23748#line 1246 "third_party/libpg_query/grammar/statements/select.y"
23749 {
23750 /* letting join_type reduce to empty doesn't work */
23751 PGJoinExpr *n = makeNode(PGJoinExpr);
23752 n->jointype = PG_JOIN_INNER;
23753 n->joinreftype = PG_JOIN_NATURAL;
23754 n->larg = (yyvsp[(1) - (4)].node);
23755 n->rarg = (yyvsp[(4) - (4)].node);
23756 n->usingClause = NIL; /* figure out which columns later... */
23757 n->quals = NULL; /* fill later */
23758 n->location = (yylsp[(2) - (4)]);
23759 (yyval.jexpr) = n;
23760 ;}
23761 break;
23762
23763 case 705:
23764#line 1259 "third_party/libpg_query/grammar/statements/select.y"
23765 {
23766 PGJoinExpr *n = makeNode(PGJoinExpr);
23767 n->jointype = (yyvsp[(3) - (6)].jtype);
23768 n->joinreftype = PG_JOIN_ASOF;
23769 n->larg = (yyvsp[(1) - (6)].node);
23770 n->rarg = (yyvsp[(5) - (6)].node);
23771 if ((yyvsp[(6) - (6)].node) != NULL && IsA((yyvsp[(6) - (6)].node), PGList))
23772 n->usingClause = (PGList *) (yyvsp[(6) - (6)].node); /* USING clause */
23773 else
23774 n->quals = (yyvsp[(6) - (6)].node); /* ON clause */
23775 n->location = (yylsp[(2) - (6)]);
23776 (yyval.jexpr) = n;
23777 ;}
23778 break;
23779
23780 case 706:
23781#line 1273 "third_party/libpg_query/grammar/statements/select.y"
23782 {
23783 PGJoinExpr *n = makeNode(PGJoinExpr);
23784 n->jointype = PG_JOIN_INNER;
23785 n->joinreftype = PG_JOIN_ASOF;
23786 n->larg = (yyvsp[(1) - (5)].node);
23787 n->rarg = (yyvsp[(4) - (5)].node);
23788 if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList))
23789 n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */
23790 else
23791 n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
23792 n->location = (yylsp[(2) - (5)]);
23793 (yyval.jexpr) = n;
23794 ;}
23795 break;
23796
23797 case 707:
23798#line 1287 "third_party/libpg_query/grammar/statements/select.y"
23799 {
23800 /* POSITIONAL JOIN is a coordinated scan */
23801 PGJoinExpr *n = makeNode(PGJoinExpr);
23802 n->jointype = PG_JOIN_POSITION;
23803 n->joinreftype = PG_JOIN_REGULAR;
23804 n->larg = (yyvsp[(1) - (4)].node);
23805 n->rarg = (yyvsp[(4) - (4)].node);
23806 n->usingClause = NIL;
23807 n->quals = NULL;
23808 n->location = (yylsp[(2) - (4)]);
23809 (yyval.jexpr) = n;
23810 ;}
23811 break;
23812
23813 case 708:
23814#line 1300 "third_party/libpg_query/grammar/statements/select.y"
23815 {
23816 /* ANTI JOIN is a filter */
23817 PGJoinExpr *n = makeNode(PGJoinExpr);
23818 n->jointype = PG_JOIN_ANTI;
23819 n->joinreftype = PG_JOIN_REGULAR;
23820 n->larg = (yyvsp[(1) - (5)].node);
23821 n->rarg = (yyvsp[(4) - (5)].node);
23822 if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList))
23823 n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */
23824 else
23825 n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
23826 n->location = (yylsp[(2) - (5)]);
23827 (yyval.jexpr) = n;
23828 ;}
23829 break;
23830
23831 case 709:
23832#line 1315 "third_party/libpg_query/grammar/statements/select.y"
23833 {
23834 /* SEMI JOIN is also a filter */
23835 PGJoinExpr *n = makeNode(PGJoinExpr);
23836 n->jointype = PG_JOIN_SEMI;
23837 n->joinreftype = PG_JOIN_REGULAR;
23838 n->larg = (yyvsp[(1) - (5)].node);
23839 n->rarg = (yyvsp[(4) - (5)].node);
23840 if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList))
23841 n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */
23842 else
23843 n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
23844 n->location = (yylsp[(2) - (5)]);
23845 n->location = (yylsp[(2) - (5)]);
23846 (yyval.jexpr) = n;
23847 ;}
23848 break;
23849
23850 case 710:
23851#line 1334 "third_party/libpg_query/grammar/statements/select.y"
23852 {
23853 (yyval.alias) = makeNode(PGAlias);
23854 (yyval.alias)->aliasname = (yyvsp[(2) - (5)].str);
23855 (yyval.alias)->colnames = (yyvsp[(4) - (5)].list);
23856 ;}
23857 break;
23858
23859 case 711:
23860#line 1340 "third_party/libpg_query/grammar/statements/select.y"
23861 {
23862 (yyval.alias) = makeNode(PGAlias);
23863 (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str);
23864 ;}
23865 break;
23866
23867 case 712:
23868#line 1345 "third_party/libpg_query/grammar/statements/select.y"
23869 {
23870 (yyval.alias) = makeNode(PGAlias);
23871 (yyval.alias)->aliasname = (yyvsp[(1) - (4)].str);
23872 (yyval.alias)->colnames = (yyvsp[(3) - (4)].list);
23873 ;}
23874 break;
23875
23876 case 713:
23877#line 1351 "third_party/libpg_query/grammar/statements/select.y"
23878 {
23879 (yyval.alias) = makeNode(PGAlias);
23880 (yyval.alias)->aliasname = (yyvsp[(1) - (1)].str);
23881 ;}
23882 break;
23883
23884 case 714:
23885#line 1357 "third_party/libpg_query/grammar/statements/select.y"
23886 { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;}
23887 break;
23888
23889 case 715:
23890#line 1358 "third_party/libpg_query/grammar/statements/select.y"
23891 { (yyval.alias) = NULL; ;}
23892 break;
23893
23894 case 716:
23895#line 1367 "third_party/libpg_query/grammar/statements/select.y"
23896 {
23897 (yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL);
23898 ;}
23899 break;
23900
23901 case 717:
23902#line 1371 "third_party/libpg_query/grammar/statements/select.y"
23903 {
23904 (yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list));
23905 ;}
23906 break;
23907
23908 case 718:
23909#line 1375 "third_party/libpg_query/grammar/statements/select.y"
23910 {
23911 PGAlias *a = makeNode(PGAlias);
23912 a->aliasname = (yyvsp[(2) - (5)].str);
23913 (yyval.list) = list_make2(a, (yyvsp[(4) - (5)].list));
23914 ;}
23915 break;
23916
23917 case 719:
23918#line 1381 "third_party/libpg_query/grammar/statements/select.y"
23919 {
23920 PGAlias *a = makeNode(PGAlias);
23921 a->aliasname = (yyvsp[(1) - (4)].str);
23922 (yyval.list) = list_make2(a, (yyvsp[(3) - (4)].list));
23923 ;}
23924 break;
23925
23926 case 720:
23927#line 1387 "third_party/libpg_query/grammar/statements/select.y"
23928 {
23929 (yyval.list) = list_make2(NULL, NIL);
23930 ;}
23931 break;
23932
23933 case 721:
23934#line 1392 "third_party/libpg_query/grammar/statements/select.y"
23935 { (yyval.jtype) = PG_JOIN_FULL; ;}
23936 break;
23937
23938 case 722:
23939#line 1393 "third_party/libpg_query/grammar/statements/select.y"
23940 { (yyval.jtype) = PG_JOIN_LEFT; ;}
23941 break;
23942
23943 case 723:
23944#line 1394 "third_party/libpg_query/grammar/statements/select.y"
23945 { (yyval.jtype) = PG_JOIN_RIGHT; ;}
23946 break;
23947
23948 case 724:
23949#line 1395 "third_party/libpg_query/grammar/statements/select.y"
23950 { (yyval.jtype) = PG_JOIN_SEMI; ;}
23951 break;
23952
23953 case 725:
23954#line 1396 "third_party/libpg_query/grammar/statements/select.y"
23955 { (yyval.jtype) = PG_JOIN_ANTI; ;}
23956 break;
23957
23958 case 726:
23959#line 1397 "third_party/libpg_query/grammar/statements/select.y"
23960 { (yyval.jtype) = PG_JOIN_INNER; ;}
23961 break;
23962
23963 case 727:
23964#line 1401 "third_party/libpg_query/grammar/statements/select.y"
23965 { (yyval.node) = NULL; ;}
23966 break;
23967
23968 case 728:
23969#line 1402 "third_party/libpg_query/grammar/statements/select.y"
23970 { (yyval.node) = NULL; ;}
23971 break;
23972
23973 case 729:
23974#line 1414 "third_party/libpg_query/grammar/statements/select.y"
23975 { (yyval.node) = (PGNode *) (yyvsp[(3) - (4)].list); ;}
23976 break;
23977
23978 case 730:
23979#line 1415 "third_party/libpg_query/grammar/statements/select.y"
23980 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
23981 break;
23982
23983 case 731:
23984#line 1421 "third_party/libpg_query/grammar/statements/select.y"
23985 {
23986 /* inheritance query, implicitly */
23987 (yyval.range) = (yyvsp[(1) - (1)].range);
23988 (yyval.range)->inh = true;
23989 (yyval.range)->alias = NULL;
23990 ;}
23991 break;
23992
23993 case 732:
23994#line 1428 "third_party/libpg_query/grammar/statements/select.y"
23995 {
23996 /* inheritance query, explicitly */
23997 (yyval.range) = (yyvsp[(1) - (2)].range);
23998 (yyval.range)->inh = true;
23999 (yyval.range)->alias = NULL;
24000 ;}
24001 break;
24002
24003 case 733:
24004#line 1435 "third_party/libpg_query/grammar/statements/select.y"
24005 {
24006 /* no inheritance */
24007 (yyval.range) = (yyvsp[(2) - (2)].range);
24008 (yyval.range)->inh = false;
24009 (yyval.range)->alias = NULL;
24010 ;}
24011 break;
24012
24013 case 734:
24014#line 1442 "third_party/libpg_query/grammar/statements/select.y"
24015 {
24016 /* no inheritance, SQL99-style syntax */
24017 (yyval.range) = (yyvsp[(3) - (4)].range);
24018 (yyval.range)->inh = false;
24019 (yyval.range)->alias = NULL;
24020 ;}
24021 break;
24022
24023 case 735:
24024#line 1474 "third_party/libpg_query/grammar/statements/select.y"
24025 {
24026 PGRangeFunction *n = makeNode(PGRangeFunction);
24027 n->lateral = false;
24028 n->ordinality = (yyvsp[(2) - (2)].boolean);
24029 n->is_rowsfrom = false;
24030 n->functions = list_make1(list_make2((yyvsp[(1) - (2)].node), NIL));
24031 n->sample = NULL;
24032 /* alias and coldeflist are set by table_ref production */
24033 (yyval.node) = (PGNode *) n;
24034 ;}
24035 break;
24036
24037 case 736:
24038#line 1485 "third_party/libpg_query/grammar/statements/select.y"
24039 {
24040 PGRangeFunction *n = makeNode(PGRangeFunction);
24041 n->lateral = false;
24042 n->ordinality = (yyvsp[(6) - (6)].boolean);
24043 n->is_rowsfrom = true;
24044 n->functions = (yyvsp[(4) - (6)].list);
24045 n->sample = NULL;
24046 /* alias and coldeflist are set by table_ref production */
24047 (yyval.node) = (PGNode *) n;
24048 ;}
24049 break;
24050
24051 case 737:
24052#line 1498 "third_party/libpg_query/grammar/statements/select.y"
24053 { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;}
24054 break;
24055
24056 case 738:
24057#line 1502 "third_party/libpg_query/grammar/statements/select.y"
24058 { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
24059 break;
24060
24061 case 739:
24062#line 1503 "third_party/libpg_query/grammar/statements/select.y"
24063 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].list)); ;}
24064 break;
24065
24066 case 740:
24067#line 1506 "third_party/libpg_query/grammar/statements/select.y"
24068 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
24069 break;
24070
24071 case 741:
24072#line 1507 "third_party/libpg_query/grammar/statements/select.y"
24073 { (yyval.list) = NIL; ;}
24074 break;
24075
24076 case 742:
24077#line 1510 "third_party/libpg_query/grammar/statements/select.y"
24078 { (yyval.boolean) = true; ;}
24079 break;
24080
24081 case 743:
24082#line 1511 "third_party/libpg_query/grammar/statements/select.y"
24083 { (yyval.boolean) = false; ;}
24084 break;
24085
24086 case 744:
24087#line 1516 "third_party/libpg_query/grammar/statements/select.y"
24088 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
24089 break;
24090
24091 case 745:
24092#line 1517 "third_party/libpg_query/grammar/statements/select.y"
24093 { (yyval.node) = NULL; ;}
24094 break;
24095
24096 case 746:
24097#line 1523 "third_party/libpg_query/grammar/statements/select.y"
24098 {
24099 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
24100 ;}
24101 break;
24102
24103 case 747:
24104#line 1527 "third_party/libpg_query/grammar/statements/select.y"
24105 {
24106 (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node));
24107 ;}
24108 break;
24109
24110 case 748:
24111#line 1533 "third_party/libpg_query/grammar/statements/select.y"
24112 {
24113 PGColumnDef *n = makeNode(PGColumnDef);
24114 n->colname = (yyvsp[(1) - (3)].str);
24115 n->typeName = (yyvsp[(2) - (3)].typnam);
24116 n->inhcount = 0;
24117 n->is_local = true;
24118 n->is_not_null = false;
24119 n->is_from_type = false;
24120 n->storage = 0;
24121 n->raw_default = NULL;
24122 n->cooked_default = NULL;
24123 n->collClause = (PGCollateClause *) (yyvsp[(3) - (3)].node);
24124 n->collOid = InvalidOid;
24125 n->constraints = NIL;
24126 n->location = (yylsp[(1) - (3)]);
24127 (yyval.node) = (PGNode *)n;
24128 ;}
24129 break;
24130
24131 case 749:
24132#line 1554 "third_party/libpg_query/grammar/statements/select.y"
24133 {
24134 PGCollateClause *n = makeNode(PGCollateClause);
24135 n->arg = NULL;
24136 n->collname = (yyvsp[(2) - (2)].list);
24137 n->location = (yylsp[(1) - (2)]);
24138 (yyval.node) = (PGNode *) n;
24139 ;}
24140 break;
24141
24142 case 750:
24143#line 1561 "third_party/libpg_query/grammar/statements/select.y"
24144 { (yyval.node) = NULL; ;}
24145 break;
24146
24147 case 751:
24148#line 1574 "third_party/libpg_query/grammar/statements/select.y"
24149 {
24150 (yyval.list) = list_make1(list_make2(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].typnam)));
24151 ;}
24152 break;
24153
24154 case 752:
24155#line 1577 "third_party/libpg_query/grammar/statements/select.y"
24156 {
24157 (yyval.list) = lappend(list: (yyvsp[(1) - (4)].list), list_make2(makeString((yyvsp[(3) - (4)].str)), (yyvsp[(4) - (4)].typnam)));
24158 ;}
24159 break;
24160
24161 case 755:
24162#line 1584 "third_party/libpg_query/grammar/statements/select.y"
24163 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
24164 break;
24165
24166 case 756:
24167#line 1585 "third_party/libpg_query/grammar/statements/select.y"
24168 { (yyval.typnam) = NULL; ;}
24169 break;
24170
24171 case 757:
24172#line 1588 "third_party/libpg_query/grammar/statements/select.y"
24173 {
24174 (yyval.typnam) = (yyvsp[(1) - (2)].typnam);
24175 (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list);
24176 ;}
24177 break;
24178
24179 case 758:
24180#line 1593 "third_party/libpg_query/grammar/statements/select.y"
24181 {
24182 (yyval.typnam) = (yyvsp[(2) - (3)].typnam);
24183 (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list);
24184 (yyval.typnam)->setof = true;
24185 ;}
24186 break;
24187
24188 case 759:
24189#line 1600 "third_party/libpg_query/grammar/statements/select.y"
24190 {
24191 (yyval.typnam) = (yyvsp[(1) - (5)].typnam);
24192 (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival)));
24193 ;}
24194 break;
24195
24196 case 760:
24197#line 1605 "third_party/libpg_query/grammar/statements/select.y"
24198 {
24199 (yyval.typnam) = (yyvsp[(2) - (6)].typnam);
24200 (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival)));
24201 (yyval.typnam)->setof = true;
24202 ;}
24203 break;
24204
24205 case 761:
24206#line 1611 "third_party/libpg_query/grammar/statements/select.y"
24207 {
24208 (yyval.typnam) = (yyvsp[(1) - (2)].typnam);
24209 (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
24210 ;}
24211 break;
24212
24213 case 762:
24214#line 1616 "third_party/libpg_query/grammar/statements/select.y"
24215 {
24216 (yyval.typnam) = (yyvsp[(2) - (3)].typnam);
24217 (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
24218 (yyval.typnam)->setof = true;
24219 ;}
24220 break;
24221
24222 case 763:
24223#line 1621 "third_party/libpg_query/grammar/statements/select.y"
24224 {
24225 (yyval.typnam) = SystemTypeName(name: "struct");
24226 (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list);
24227 (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list);
24228 (yyval.typnam)->location = (yylsp[(1) - (5)]);
24229 ;}
24230 break;
24231
24232 case 764:
24233#line 1627 "third_party/libpg_query/grammar/statements/select.y"
24234 {
24235 (yyval.typnam) = SystemTypeName(name: "map");
24236 (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list);
24237 (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list);
24238 (yyval.typnam)->location = (yylsp[(1) - (5)]);
24239 ;}
24240 break;
24241
24242 case 765:
24243#line 1633 "third_party/libpg_query/grammar/statements/select.y"
24244 {
24245 (yyval.typnam) = SystemTypeName(name: "union");
24246 (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list);
24247 (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list);
24248 (yyval.typnam)->location = (yylsp[(1) - (5)]);
24249 ;}
24250 break;
24251
24252 case 766:
24253#line 1643 "third_party/libpg_query/grammar/statements/select.y"
24254 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: makeInteger(i: -1)); ;}
24255 break;
24256
24257 case 767:
24258#line 1645 "third_party/libpg_query/grammar/statements/select.y"
24259 { (yyval.list) = lappend(list: (yyvsp[(1) - (4)].list), datum: makeInteger(i: (yyvsp[(3) - (4)].ival))); ;}
24260 break;
24261
24262 case 768:
24263#line 1647 "third_party/libpg_query/grammar/statements/select.y"
24264 { (yyval.list) = NIL; ;}
24265 break;
24266
24267 case 769:
24268#line 1651 "third_party/libpg_query/grammar/statements/select.y"
24269 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
24270 break;
24271
24272 case 770:
24273#line 1652 "third_party/libpg_query/grammar/statements/select.y"
24274 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
24275 break;
24276
24277 case 771:
24278#line 1653 "third_party/libpg_query/grammar/statements/select.y"
24279 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
24280 break;
24281
24282 case 772:
24283#line 1654 "third_party/libpg_query/grammar/statements/select.y"
24284 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
24285 break;
24286
24287 case 773:
24288#line 1655 "third_party/libpg_query/grammar/statements/select.y"
24289 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
24290 break;
24291
24292 case 774:
24293#line 1657 "third_party/libpg_query/grammar/statements/select.y"
24294 {
24295 (yyval.typnam) = (yyvsp[(1) - (2)].typnam);
24296 (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
24297 ;}
24298 break;
24299
24300 case 775:
24301#line 1662 "third_party/libpg_query/grammar/statements/select.y"
24302 {
24303 (yyval.typnam) = (yyvsp[(1) - (4)].typnam);
24304 (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
24305 makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
24306 ;}
24307 break;
24308
24309 case 776:
24310#line 1681 "third_party/libpg_query/grammar/statements/select.y"
24311 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
24312 break;
24313
24314 case 777:
24315#line 1682 "third_party/libpg_query/grammar/statements/select.y"
24316 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
24317 break;
24318
24319 case 778:
24320#line 1683 "third_party/libpg_query/grammar/statements/select.y"
24321 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
24322 break;
24323
24324 case 779:
24325#line 1684 "third_party/libpg_query/grammar/statements/select.y"
24326 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
24327 break;
24328
24329 case 780:
24330#line 1696 "third_party/libpg_query/grammar/statements/select.y"
24331 {
24332 (yyval.typnam) = makeTypeName(typnam: (yyvsp[(1) - (2)].str));
24333 (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
24334 (yyval.typnam)->location = (yylsp[(1) - (2)]);
24335 ;}
24336 break;
24337
24338 case 781:
24339#line 1709 "third_party/libpg_query/grammar/statements/select.y"
24340 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
24341 break;
24342
24343 case 782:
24344#line 1710 "third_party/libpg_query/grammar/statements/select.y"
24345 { (yyval.list) = NIL; ;}
24346 break;
24347
24348 case 783:
24349#line 1717 "third_party/libpg_query/grammar/statements/select.y"
24350 {
24351 (yyval.typnam) = SystemTypeName(name: "int4");
24352 (yyval.typnam)->location = (yylsp[(1) - (1)]);
24353 ;}
24354 break;
24355
24356 case 784:
24357#line 1722 "third_party/libpg_query/grammar/statements/select.y"
24358 {
24359 (yyval.typnam) = SystemTypeName(name: "int4");
24360 (yyval.typnam)->location = (yylsp[(1) - (1)]);
24361 ;}
24362 break;
24363
24364 case 785:
24365#line 1727 "third_party/libpg_query/grammar/statements/select.y"
24366 {
24367 (yyval.typnam) = SystemTypeName(name: "int2");
24368 (yyval.typnam)->location = (yylsp[(1) - (1)]);
24369 ;}
24370 break;
24371
24372 case 786:
24373#line 1732 "third_party/libpg_query/grammar/statements/select.y"
24374 {
24375 (yyval.typnam) = SystemTypeName(name: "int8");
24376 (yyval.typnam)->location = (yylsp[(1) - (1)]);
24377 ;}
24378 break;
24379
24380 case 787:
24381#line 1737 "third_party/libpg_query/grammar/statements/select.y"
24382 {
24383 (yyval.typnam) = SystemTypeName(name: "float4");
24384 (yyval.typnam)->location = (yylsp[(1) - (1)]);
24385 ;}
24386 break;
24387
24388 case 788:
24389#line 1742 "third_party/libpg_query/grammar/statements/select.y"
24390 {
24391 (yyval.typnam) = (yyvsp[(2) - (2)].typnam);
24392 (yyval.typnam)->location = (yylsp[(1) - (2)]);
24393 ;}
24394 break;
24395
24396 case 789:
24397#line 1747 "third_party/libpg_query/grammar/statements/select.y"
24398 {
24399 (yyval.typnam) = SystemTypeName(name: "float8");
24400 (yyval.typnam)->location = (yylsp[(1) - (2)]);
24401 ;}
24402 break;
24403
24404 case 790:
24405#line 1752 "third_party/libpg_query/grammar/statements/select.y"
24406 {
24407 (yyval.typnam) = SystemTypeName(name: "numeric");
24408 (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
24409 (yyval.typnam)->location = (yylsp[(1) - (2)]);
24410 ;}
24411 break;
24412
24413 case 791:
24414#line 1758 "third_party/libpg_query/grammar/statements/select.y"
24415 {
24416 (yyval.typnam) = SystemTypeName(name: "numeric");
24417 (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
24418 (yyval.typnam)->location = (yylsp[(1) - (2)]);
24419 ;}
24420 break;
24421
24422 case 792:
24423#line 1764 "third_party/libpg_query/grammar/statements/select.y"
24424 {
24425 (yyval.typnam) = SystemTypeName(name: "numeric");
24426 (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
24427 (yyval.typnam)->location = (yylsp[(1) - (2)]);
24428 ;}
24429 break;
24430
24431 case 793:
24432#line 1770 "third_party/libpg_query/grammar/statements/select.y"
24433 {
24434 (yyval.typnam) = SystemTypeName(name: "bool");
24435 (yyval.typnam)->location = (yylsp[(1) - (1)]);
24436 ;}
24437 break;
24438
24439 case 794:
24440#line 1777 "third_party/libpg_query/grammar/statements/select.y"
24441 {
24442 /*
24443 * Check FLOAT() precision limits assuming IEEE floating
24444 * types - thomas 1997-09-18
24445 */
24446 if ((yyvsp[(2) - (3)].ival) < 1)
24447 ereport(code: ERROR,
24448 (errcode(sqlerrcode: PG_ERRCODE_INVALID_PARAMETER_VALUE),
24449 errmsg(fmt: "precision for type float must be at least 1 bit"),
24450 parser_errposition((yylsp[(2) - (3)]))));
24451 else if ((yyvsp[(2) - (3)].ival) <= 24)
24452 (yyval.typnam) = SystemTypeName(name: "float4");
24453 else if ((yyvsp[(2) - (3)].ival) <= 53)
24454 (yyval.typnam) = SystemTypeName(name: "float8");
24455 else
24456 ereport(code: ERROR,
24457 (errcode(sqlerrcode: PG_ERRCODE_INVALID_PARAMETER_VALUE),
24458 errmsg(fmt: "precision for type float must be less than 54 bits"),
24459 parser_errposition((yylsp[(2) - (3)]))));
24460 ;}
24461 break;
24462
24463 case 795:
24464#line 1798 "third_party/libpg_query/grammar/statements/select.y"
24465 {
24466 (yyval.typnam) = SystemTypeName(name: "float4");
24467 ;}
24468 break;
24469
24470 case 796:
24471#line 1808 "third_party/libpg_query/grammar/statements/select.y"
24472 {
24473 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
24474 ;}
24475 break;
24476
24477 case 797:
24478#line 1812 "third_party/libpg_query/grammar/statements/select.y"
24479 {
24480 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
24481 ;}
24482 break;
24483
24484 case 798:
24485#line 1820 "third_party/libpg_query/grammar/statements/select.y"
24486 {
24487 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
24488 ;}
24489 break;
24490
24491 case 799:
24492#line 1824 "third_party/libpg_query/grammar/statements/select.y"
24493 {
24494 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
24495 (yyval.typnam)->typmods = NIL;
24496 ;}
24497 break;
24498
24499 case 800:
24500#line 1832 "third_party/libpg_query/grammar/statements/select.y"
24501 {
24502 const char *typname;
24503
24504 typname = (yyvsp[(2) - (5)].boolean) ? "varbit" : "bit";
24505 (yyval.typnam) = SystemTypeName(name: typname);
24506 (yyval.typnam)->typmods = (yyvsp[(4) - (5)].list);
24507 (yyval.typnam)->location = (yylsp[(1) - (5)]);
24508 ;}
24509 break;
24510
24511 case 801:
24512#line 1844 "third_party/libpg_query/grammar/statements/select.y"
24513 {
24514 /* bit defaults to bit(1), varbit to no limit */
24515 if ((yyvsp[(2) - (2)].boolean))
24516 {
24517 (yyval.typnam) = SystemTypeName(name: "varbit");
24518 }
24519 else
24520 {
24521 (yyval.typnam) = SystemTypeName(name: "bit");
24522 (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
24523 }
24524 (yyval.typnam)->location = (yylsp[(1) - (2)]);
24525 ;}
24526 break;
24527
24528 case 802:
24529#line 1865 "third_party/libpg_query/grammar/statements/select.y"
24530 {
24531 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
24532 ;}
24533 break;
24534
24535 case 803:
24536#line 1869 "third_party/libpg_query/grammar/statements/select.y"
24537 {
24538 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
24539 ;}
24540 break;
24541
24542 case 804:
24543#line 1875 "third_party/libpg_query/grammar/statements/select.y"
24544 {
24545 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
24546 ;}
24547 break;
24548
24549 case 805:
24550#line 1879 "third_party/libpg_query/grammar/statements/select.y"
24551 {
24552 /* Length was not specified so allow to be unrestricted.
24553 * This handles problems with fixed-length (bpchar) strings
24554 * which in column definitions must default to a length
24555 * of one, but should not be constrained if the length
24556 * was not specified.
24557 */
24558 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
24559 (yyval.typnam)->typmods = NIL;
24560 ;}
24561 break;
24562
24563 case 806:
24564#line 1892 "third_party/libpg_query/grammar/statements/select.y"
24565 {
24566 (yyval.typnam) = SystemTypeName(name: (yyvsp[(1) - (4)].conststr));
24567 (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
24568 (yyval.typnam)->location = (yylsp[(1) - (4)]);
24569 ;}
24570 break;
24571
24572 case 807:
24573#line 1900 "third_party/libpg_query/grammar/statements/select.y"
24574 {
24575 (yyval.typnam) = SystemTypeName(name: (yyvsp[(1) - (1)].conststr));
24576 /* char defaults to char(1), varchar to no limit */
24577 if (strcmp(s1: (yyvsp[(1) - (1)].conststr), s2: "bpchar") == 0)
24578 (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
24579 (yyval.typnam)->location = (yylsp[(1) - (1)]);
24580 ;}
24581 break;
24582
24583 case 808:
24584#line 1910 "third_party/libpg_query/grammar/statements/select.y"
24585 { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
24586 break;
24587
24588 case 809:
24589#line 1912 "third_party/libpg_query/grammar/statements/select.y"
24590 { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
24591 break;
24592
24593 case 810:
24594#line 1914 "third_party/libpg_query/grammar/statements/select.y"
24595 { (yyval.conststr) = "varchar"; ;}
24596 break;
24597
24598 case 811:
24599#line 1916 "third_party/libpg_query/grammar/statements/select.y"
24600 { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
24601 break;
24602
24603 case 812:
24604#line 1918 "third_party/libpg_query/grammar/statements/select.y"
24605 { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
24606 break;
24607
24608 case 813:
24609#line 1920 "third_party/libpg_query/grammar/statements/select.y"
24610 { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
24611 break;
24612
24613 case 814:
24614#line 1924 "third_party/libpg_query/grammar/statements/select.y"
24615 { (yyval.boolean) = true; ;}
24616 break;
24617
24618 case 815:
24619#line 1925 "third_party/libpg_query/grammar/statements/select.y"
24620 { (yyval.boolean) = false; ;}
24621 break;
24622
24623 case 816:
24624#line 1933 "third_party/libpg_query/grammar/statements/select.y"
24625 {
24626 if ((yyvsp[(5) - (5)].boolean))
24627 (yyval.typnam) = SystemTypeName(name: "timestamptz");
24628 else
24629 (yyval.typnam) = SystemTypeName(name: "timestamp");
24630 (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
24631 (yyval.typnam)->location = (yylsp[(1) - (5)]);
24632 ;}
24633 break;
24634
24635 case 817:
24636#line 1942 "third_party/libpg_query/grammar/statements/select.y"
24637 {
24638 if ((yyvsp[(2) - (2)].boolean))
24639 (yyval.typnam) = SystemTypeName(name: "timestamptz");
24640 else
24641 (yyval.typnam) = SystemTypeName(name: "timestamp");
24642 (yyval.typnam)->location = (yylsp[(1) - (2)]);
24643 ;}
24644 break;
24645
24646 case 818:
24647#line 1950 "third_party/libpg_query/grammar/statements/select.y"
24648 {
24649 if ((yyvsp[(5) - (5)].boolean))
24650 (yyval.typnam) = SystemTypeName(name: "timetz");
24651 else
24652 (yyval.typnam) = SystemTypeName(name: "time");
24653 (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
24654 (yyval.typnam)->location = (yylsp[(1) - (5)]);
24655 ;}
24656 break;
24657
24658 case 819:
24659#line 1959 "third_party/libpg_query/grammar/statements/select.y"
24660 {
24661 if ((yyvsp[(2) - (2)].boolean))
24662 (yyval.typnam) = SystemTypeName(name: "timetz");
24663 else
24664 (yyval.typnam) = SystemTypeName(name: "time");
24665 (yyval.typnam)->location = (yylsp[(1) - (2)]);
24666 ;}
24667 break;
24668
24669 case 820:
24670#line 1970 "third_party/libpg_query/grammar/statements/select.y"
24671 {
24672 (yyval.typnam) = SystemTypeName(name: "interval");
24673 (yyval.typnam)->location = (yylsp[(1) - (1)]);
24674 ;}
24675 break;
24676
24677 case 821:
24678#line 1977 "third_party/libpg_query/grammar/statements/select.y"
24679 { (yyval.boolean) = true; ;}
24680 break;
24681
24682 case 822:
24683#line 1978 "third_party/libpg_query/grammar/statements/select.y"
24684 { (yyval.boolean) = false; ;}
24685 break;
24686
24687 case 823:
24688#line 1979 "third_party/libpg_query/grammar/statements/select.y"
24689 { (yyval.boolean) = false; ;}
24690 break;
24691
24692 case 840:
24693#line 2008 "third_party/libpg_query/grammar/statements/select.y"
24694 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;}
24695 break;
24696
24697 case 841:
24698#line 2010 "third_party/libpg_query/grammar/statements/select.y"
24699 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;}
24700 break;
24701
24702 case 842:
24703#line 2012 "third_party/libpg_query/grammar/statements/select.y"
24704 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;}
24705 break;
24706
24707 case 843:
24708#line 2014 "third_party/libpg_query/grammar/statements/select.y"
24709 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;}
24710 break;
24711
24712 case 844:
24713#line 2016 "third_party/libpg_query/grammar/statements/select.y"
24714 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;}
24715 break;
24716
24717 case 845:
24718#line 2018 "third_party/libpg_query/grammar/statements/select.y"
24719 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); ;}
24720 break;
24721
24722 case 846:
24723#line 2020 "third_party/libpg_query/grammar/statements/select.y"
24724 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MILLISECOND), (yylsp[(1) - (1)]))); ;}
24725 break;
24726
24727 case 847:
24728#line 2022 "third_party/libpg_query/grammar/statements/select.y"
24729 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MICROSECOND), (yylsp[(1) - (1)]))); ;}
24730 break;
24731
24732 case 848:
24733#line 2024 "third_party/libpg_query/grammar/statements/select.y"
24734 {
24735 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
24736 INTERVAL_MASK(MONTH), (yylsp[(1) - (3)])));
24737 ;}
24738 break;
24739
24740 case 849:
24741#line 2029 "third_party/libpg_query/grammar/statements/select.y"
24742 {
24743 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
24744 INTERVAL_MASK(HOUR), (yylsp[(1) - (3)])));
24745 ;}
24746 break;
24747
24748 case 850:
24749#line 2034 "third_party/libpg_query/grammar/statements/select.y"
24750 {
24751 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
24752 INTERVAL_MASK(HOUR) |
24753 INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
24754 ;}
24755 break;
24756
24757 case 851:
24758#line 2040 "third_party/libpg_query/grammar/statements/select.y"
24759 {
24760 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
24761 INTERVAL_MASK(HOUR) |
24762 INTERVAL_MASK(MINUTE) |
24763 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])));
24764 ;}
24765 break;
24766
24767 case 852:
24768#line 2047 "third_party/libpg_query/grammar/statements/select.y"
24769 {
24770 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
24771 INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
24772 ;}
24773 break;
24774
24775 case 853:
24776#line 2052 "third_party/libpg_query/grammar/statements/select.y"
24777 {
24778 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
24779 INTERVAL_MASK(MINUTE) |
24780 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])));
24781 ;}
24782 break;
24783
24784 case 854:
24785#line 2058 "third_party/libpg_query/grammar/statements/select.y"
24786 {
24787 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE) |
24788 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])));
24789 ;}
24790 break;
24791
24792 case 855:
24793#line 2063 "third_party/libpg_query/grammar/statements/select.y"
24794 { (yyval.list) = NIL; ;}
24795 break;
24796
24797 case 856:
24798#line 2094 "third_party/libpg_query/grammar/statements/select.y"
24799 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
24800 break;
24801
24802 case 857:
24803#line 2097 "third_party/libpg_query/grammar/statements/select.y"
24804 { (yyval.node) = makeTypeCast(arg: (yyvsp[(1) - (3)].node), tpname: (yyvsp[(3) - (3)].typnam), trycast: 0, location: (yylsp[(2) - (3)])); ;}
24805 break;
24806
24807 case 858:
24808#line 2099 "third_party/libpg_query/grammar/statements/select.y"
24809 {
24810 PGCollateClause *n = makeNode(PGCollateClause);
24811 n->arg = (yyvsp[(1) - (3)].node);
24812 n->collname = (yyvsp[(3) - (3)].list);
24813 n->location = (yylsp[(2) - (3)]);
24814 (yyval.node) = (PGNode *) n;
24815 ;}
24816 break;
24817
24818 case 859:
24819#line 2107 "third_party/libpg_query/grammar/statements/select.y"
24820 {
24821 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: "timezone"),
24822 list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)),
24823 location: (yylsp[(2) - (5)]));
24824 ;}
24825 break;
24826
24827 case 860:
24828#line 2122 "third_party/libpg_query/grammar/statements/select.y"
24829 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "+", NULL, rexpr: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)])); ;}
24830 break;
24831
24832 case 861:
24833#line 2124 "third_party/libpg_query/grammar/statements/select.y"
24834 { (yyval.node) = doNegate(n: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)])); ;}
24835 break;
24836
24837 case 862:
24838#line 2126 "third_party/libpg_query/grammar/statements/select.y"
24839 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "+", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24840 break;
24841
24842 case 863:
24843#line 2128 "third_party/libpg_query/grammar/statements/select.y"
24844 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "-", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24845 break;
24846
24847 case 864:
24848#line 2130 "third_party/libpg_query/grammar/statements/select.y"
24849 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "*", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24850 break;
24851
24852 case 865:
24853#line 2132 "third_party/libpg_query/grammar/statements/select.y"
24854 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "/", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24855 break;
24856
24857 case 866:
24858#line 2134 "third_party/libpg_query/grammar/statements/select.y"
24859 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "//", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24860 break;
24861
24862 case 867:
24863#line 2136 "third_party/libpg_query/grammar/statements/select.y"
24864 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "%", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24865 break;
24866
24867 case 868:
24868#line 2138 "third_party/libpg_query/grammar/statements/select.y"
24869 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "^", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24870 break;
24871
24872 case 869:
24873#line 2140 "third_party/libpg_query/grammar/statements/select.y"
24874 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "**", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24875 break;
24876
24877 case 870:
24878#line 2142 "third_party/libpg_query/grammar/statements/select.y"
24879 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "<", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24880 break;
24881
24882 case 871:
24883#line 2144 "third_party/libpg_query/grammar/statements/select.y"
24884 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: ">", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24885 break;
24886
24887 case 872:
24888#line 2146 "third_party/libpg_query/grammar/statements/select.y"
24889 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "=", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24890 break;
24891
24892 case 873:
24893#line 2148 "third_party/libpg_query/grammar/statements/select.y"
24894 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "<=", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24895 break;
24896
24897 case 874:
24898#line 2150 "third_party/libpg_query/grammar/statements/select.y"
24899 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: ">=", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24900 break;
24901
24902 case 875:
24903#line 2152 "third_party/libpg_query/grammar/statements/select.y"
24904 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "<>", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24905 break;
24906
24907 case 876:
24908#line 2155 "third_party/libpg_query/grammar/statements/select.y"
24909 { (yyval.node) = (PGNode *) makeAExpr(kind: PG_AEXPR_OP, name: (yyvsp[(2) - (3)].list), lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24910 break;
24911
24912 case 877:
24913#line 2157 "third_party/libpg_query/grammar/statements/select.y"
24914 { (yyval.node) = (PGNode *) makeAExpr(kind: PG_AEXPR_OP, name: (yyvsp[(1) - (2)].list), NULL, rexpr: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)])); ;}
24915 break;
24916
24917 case 878:
24918#line 2159 "third_party/libpg_query/grammar/statements/select.y"
24919 { (yyval.node) = (PGNode *) makeAExpr(kind: PG_AEXPR_OP, name: (yyvsp[(2) - (2)].list), lexpr: (yyvsp[(1) - (2)].node), NULL, location: (yylsp[(2) - (2)])); ;}
24920 break;
24921
24922 case 879:
24923#line 2162 "third_party/libpg_query/grammar/statements/select.y"
24924 { (yyval.node) = makeAndExpr(lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24925 break;
24926
24927 case 880:
24928#line 2164 "third_party/libpg_query/grammar/statements/select.y"
24929 { (yyval.node) = makeOrExpr(lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
24930 break;
24931
24932 case 881:
24933#line 2166 "third_party/libpg_query/grammar/statements/select.y"
24934 { (yyval.node) = makeNotExpr(expr: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)])); ;}
24935 break;
24936
24937 case 882:
24938#line 2168 "third_party/libpg_query/grammar/statements/select.y"
24939 { (yyval.node) = makeNotExpr(expr: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)])); ;}
24940 break;
24941
24942 case 883:
24943#line 2170 "third_party/libpg_query/grammar/statements/select.y"
24944 {
24945 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_GLOB, name: "~~~",
24946 lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)]));
24947 ;}
24948 break;
24949
24950 case 884:
24951#line 2175 "third_party/libpg_query/grammar/statements/select.y"
24952 {
24953 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_LIKE, name: "~~",
24954 lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)]));
24955 ;}
24956 break;
24957
24958 case 885:
24959#line 2180 "third_party/libpg_query/grammar/statements/select.y"
24960 {
24961 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "like_escape"),
24962 list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)),
24963 location: (yylsp[(2) - (5)]));
24964 (yyval.node) = (PGNode *) n;
24965 ;}
24966 break;
24967
24968 case 886:
24969#line 2187 "third_party/libpg_query/grammar/statements/select.y"
24970 {
24971 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_LIKE, name: "!~~",
24972 lexpr: (yyvsp[(1) - (4)].node), rexpr: (yyvsp[(4) - (4)].node), location: (yylsp[(2) - (4)]));
24973 ;}
24974 break;
24975
24976 case 887:
24977#line 2192 "third_party/libpg_query/grammar/statements/select.y"
24978 {
24979 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "not_like_escape"),
24980 list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
24981 location: (yylsp[(2) - (6)]));
24982 (yyval.node) = (PGNode *) n;
24983 ;}
24984 break;
24985
24986 case 888:
24987#line 2199 "third_party/libpg_query/grammar/statements/select.y"
24988 {
24989 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_ILIKE, name: "~~*",
24990 lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)]));
24991 ;}
24992 break;
24993
24994 case 889:
24995#line 2204 "third_party/libpg_query/grammar/statements/select.y"
24996 {
24997 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "ilike_escape"),
24998 list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)),
24999 location: (yylsp[(2) - (5)]));
25000 (yyval.node) = (PGNode *) n;
25001 ;}
25002 break;
25003
25004 case 890:
25005#line 2211 "third_party/libpg_query/grammar/statements/select.y"
25006 {
25007 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_ILIKE, name: "!~~*",
25008 lexpr: (yyvsp[(1) - (4)].node), rexpr: (yyvsp[(4) - (4)].node), location: (yylsp[(2) - (4)]));
25009 ;}
25010 break;
25011
25012 case 891:
25013#line 2216 "third_party/libpg_query/grammar/statements/select.y"
25014 {
25015 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "not_ilike_escape"),
25016 list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
25017 location: (yylsp[(2) - (6)]));
25018 (yyval.node) = (PGNode *) n;
25019 ;}
25020 break;
25021
25022 case 892:
25023#line 2224 "third_party/libpg_query/grammar/statements/select.y"
25024 {
25025 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "similar_escape"),
25026 list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1)),
25027 location: (yylsp[(2) - (4)]));
25028 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_SIMILAR, name: "~",
25029 lexpr: (yyvsp[(1) - (4)].node), rexpr: (PGNode *) n, location: (yylsp[(2) - (4)]));
25030 ;}
25031 break;
25032
25033 case 893:
25034#line 2232 "third_party/libpg_query/grammar/statements/select.y"
25035 {
25036 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "similar_escape"),
25037 list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
25038 location: (yylsp[(2) - (6)]));
25039 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_SIMILAR, name: "~",
25040 lexpr: (yyvsp[(1) - (6)].node), rexpr: (PGNode *) n, location: (yylsp[(2) - (6)]));
25041 ;}
25042 break;
25043
25044 case 894:
25045#line 2240 "third_party/libpg_query/grammar/statements/select.y"
25046 {
25047 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "similar_escape"),
25048 list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1)),
25049 location: (yylsp[(2) - (5)]));
25050 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_SIMILAR, name: "!~",
25051 lexpr: (yyvsp[(1) - (5)].node), rexpr: (PGNode *) n, location: (yylsp[(2) - (5)]));
25052 ;}
25053 break;
25054
25055 case 895:
25056#line 2248 "third_party/libpg_query/grammar/statements/select.y"
25057 {
25058 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "similar_escape"),
25059 list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
25060 location: (yylsp[(2) - (7)]));
25061 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_SIMILAR, name: "!~",
25062 lexpr: (yyvsp[(1) - (7)].node), rexpr: (PGNode *) n, location: (yylsp[(2) - (7)]));
25063 ;}
25064 break;
25065
25066 case 896:
25067#line 2266 "third_party/libpg_query/grammar/statements/select.y"
25068 {
25069 PGNullTest *n = makeNode(PGNullTest);
25070 n->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
25071 n->nulltesttype = PG_IS_NULL;
25072 n->location = (yylsp[(2) - (3)]);
25073 (yyval.node) = (PGNode *)n;
25074 ;}
25075 break;
25076
25077 case 897:
25078#line 2274 "third_party/libpg_query/grammar/statements/select.y"
25079 {
25080 PGNullTest *n = makeNode(PGNullTest);
25081 n->arg = (PGExpr *) (yyvsp[(1) - (2)].node);
25082 n->nulltesttype = PG_IS_NULL;
25083 n->location = (yylsp[(2) - (2)]);
25084 (yyval.node) = (PGNode *)n;
25085 ;}
25086 break;
25087
25088 case 898:
25089#line 2282 "third_party/libpg_query/grammar/statements/select.y"
25090 {
25091 PGNullTest *n = makeNode(PGNullTest);
25092 n->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
25093 n->nulltesttype = IS_NOT_NULL;
25094 n->location = (yylsp[(2) - (4)]);
25095 (yyval.node) = (PGNode *)n;
25096 ;}
25097 break;
25098
25099 case 899:
25100#line 2290 "third_party/libpg_query/grammar/statements/select.y"
25101 {
25102 PGNullTest *n = makeNode(PGNullTest);
25103 n->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
25104 n->nulltesttype = IS_NOT_NULL;
25105 n->location = (yylsp[(2) - (3)]);
25106 (yyval.node) = (PGNode *)n;
25107 ;}
25108 break;
25109
25110 case 900:
25111#line 2298 "third_party/libpg_query/grammar/statements/select.y"
25112 {
25113 PGNullTest *n = makeNode(PGNullTest);
25114 n->arg = (PGExpr *) (yyvsp[(1) - (2)].node);
25115 n->nulltesttype = IS_NOT_NULL;
25116 n->location = (yylsp[(2) - (2)]);
25117 (yyval.node) = (PGNode *)n;
25118 ;}
25119 break;
25120
25121 case 901:
25122#line 2306 "third_party/libpg_query/grammar/statements/select.y"
25123 {
25124 PGLambdaFunction *n = makeNode(PGLambdaFunction);
25125 n->lhs = (yyvsp[(1) - (3)].node);
25126 n->rhs = (yyvsp[(3) - (3)].node);
25127 n->location = (yylsp[(2) - (3)]);
25128 (yyval.node) = (PGNode *) n;
25129 ;}
25130 break;
25131
25132 case 902:
25133#line 2314 "third_party/libpg_query/grammar/statements/select.y"
25134 {
25135 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "->>", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)]));
25136 ;}
25137 break;
25138
25139 case 903:
25140#line 2318 "third_party/libpg_query/grammar/statements/select.y"
25141 {
25142 if (list_length(l: (yyvsp[(1) - (3)].list)) != 2)
25143 ereport(code: ERROR,
25144 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
25145 errmsg(fmt: "wrong number of parameters on left side of OVERLAPS expression"),
25146 parser_errposition((yylsp[(1) - (3)]))));
25147 if (list_length(l: (yyvsp[(3) - (3)].list)) != 2)
25148 ereport(code: ERROR,
25149 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
25150 errmsg(fmt: "wrong number of parameters on right side of OVERLAPS expression"),
25151 parser_errposition((yylsp[(3) - (3)]))));
25152 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: "overlaps"),
25153 args: list_concat(list1: (yyvsp[(1) - (3)].list), list2: (yyvsp[(3) - (3)].list)),
25154 location: (yylsp[(2) - (3)]));
25155 ;}
25156 break;
25157
25158 case 904:
25159#line 2334 "third_party/libpg_query/grammar/statements/select.y"
25160 {
25161 PGBooleanTest *b = makeNode(PGBooleanTest);
25162 b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
25163 b->booltesttype = PG_IS_TRUE;
25164 b->location = (yylsp[(2) - (3)]);
25165 (yyval.node) = (PGNode *)b;
25166 ;}
25167 break;
25168
25169 case 905:
25170#line 2342 "third_party/libpg_query/grammar/statements/select.y"
25171 {
25172 PGBooleanTest *b = makeNode(PGBooleanTest);
25173 b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
25174 b->booltesttype = IS_NOT_TRUE;
25175 b->location = (yylsp[(2) - (4)]);
25176 (yyval.node) = (PGNode *)b;
25177 ;}
25178 break;
25179
25180 case 906:
25181#line 2350 "third_party/libpg_query/grammar/statements/select.y"
25182 {
25183 PGBooleanTest *b = makeNode(PGBooleanTest);
25184 b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
25185 b->booltesttype = IS_FALSE;
25186 b->location = (yylsp[(2) - (3)]);
25187 (yyval.node) = (PGNode *)b;
25188 ;}
25189 break;
25190
25191 case 907:
25192#line 2358 "third_party/libpg_query/grammar/statements/select.y"
25193 {
25194 PGBooleanTest *b = makeNode(PGBooleanTest);
25195 b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
25196 b->booltesttype = IS_NOT_FALSE;
25197 b->location = (yylsp[(2) - (4)]);
25198 (yyval.node) = (PGNode *)b;
25199 ;}
25200 break;
25201
25202 case 908:
25203#line 2366 "third_party/libpg_query/grammar/statements/select.y"
25204 {
25205 PGBooleanTest *b = makeNode(PGBooleanTest);
25206 b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
25207 b->booltesttype = IS_UNKNOWN;
25208 b->location = (yylsp[(2) - (3)]);
25209 (yyval.node) = (PGNode *)b;
25210 ;}
25211 break;
25212
25213 case 909:
25214#line 2374 "third_party/libpg_query/grammar/statements/select.y"
25215 {
25216 PGBooleanTest *b = makeNode(PGBooleanTest);
25217 b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
25218 b->booltesttype = IS_NOT_UNKNOWN;
25219 b->location = (yylsp[(2) - (4)]);
25220 (yyval.node) = (PGNode *)b;
25221 ;}
25222 break;
25223
25224 case 910:
25225#line 2382 "third_party/libpg_query/grammar/statements/select.y"
25226 {
25227 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_DISTINCT, name: "=", lexpr: (yyvsp[(1) - (5)].node), rexpr: (yyvsp[(5) - (5)].node), location: (yylsp[(2) - (5)]));
25228 ;}
25229 break;
25230
25231 case 911:
25232#line 2386 "third_party/libpg_query/grammar/statements/select.y"
25233 {
25234 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_NOT_DISTINCT, name: "=", lexpr: (yyvsp[(1) - (6)].node), rexpr: (yyvsp[(6) - (6)].node), location: (yylsp[(2) - (6)]));
25235 ;}
25236 break;
25237
25238 case 912:
25239#line 2390 "third_party/libpg_query/grammar/statements/select.y"
25240 {
25241 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OF, name: "=", lexpr: (yyvsp[(1) - (6)].node), rexpr: (PGNode *) (yyvsp[(5) - (6)].list), location: (yylsp[(2) - (6)]));
25242 ;}
25243 break;
25244
25245 case 913:
25246#line 2394 "third_party/libpg_query/grammar/statements/select.y"
25247 {
25248 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OF, name: "<>", lexpr: (yyvsp[(1) - (7)].node), rexpr: (PGNode *) (yyvsp[(6) - (7)].list), location: (yylsp[(2) - (7)]));
25249 ;}
25250 break;
25251
25252 case 914:
25253#line 2398 "third_party/libpg_query/grammar/statements/select.y"
25254 {
25255 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_BETWEEN,
25256 name: "BETWEEN",
25257 lexpr: (yyvsp[(1) - (6)].node),
25258 rexpr: (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
25259 location: (yylsp[(2) - (6)]));
25260 ;}
25261 break;
25262
25263 case 915:
25264#line 2406 "third_party/libpg_query/grammar/statements/select.y"
25265 {
25266 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_NOT_BETWEEN,
25267 name: "NOT BETWEEN",
25268 lexpr: (yyvsp[(1) - (7)].node),
25269 rexpr: (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
25270 location: (yylsp[(2) - (7)]));
25271 ;}
25272 break;
25273
25274 case 916:
25275#line 2414 "third_party/libpg_query/grammar/statements/select.y"
25276 {
25277 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_BETWEEN_SYM,
25278 name: "BETWEEN SYMMETRIC",
25279 lexpr: (yyvsp[(1) - (6)].node),
25280 rexpr: (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
25281 location: (yylsp[(2) - (6)]));
25282 ;}
25283 break;
25284
25285 case 917:
25286#line 2422 "third_party/libpg_query/grammar/statements/select.y"
25287 {
25288 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_NOT_BETWEEN_SYM,
25289 name: "NOT BETWEEN SYMMETRIC",
25290 lexpr: (yyvsp[(1) - (7)].node),
25291 rexpr: (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
25292 location: (yylsp[(2) - (7)]));
25293 ;}
25294 break;
25295
25296 case 918:
25297#line 2430 "third_party/libpg_query/grammar/statements/select.y"
25298 {
25299 /* in_expr returns a PGSubLink or a list of a_exprs */
25300 if (IsA((yyvsp[(3) - (3)].node), PGSubLink))
25301 {
25302 /* generate foo = ANY (subquery) */
25303 PGSubLink *n = (PGSubLink *) (yyvsp[(3) - (3)].node);
25304 n->subLinkType = PG_ANY_SUBLINK;
25305 n->subLinkId = 0;
25306 n->testexpr = (yyvsp[(1) - (3)].node);
25307 n->operName = NIL; /* show it's IN not = ANY */
25308 n->location = (yylsp[(2) - (3)]);
25309 (yyval.node) = (PGNode *)n;
25310 }
25311 else
25312 {
25313 /* generate scalar IN expression */
25314 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_IN, name: "=", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)]));
25315 }
25316 ;}
25317 break;
25318
25319 case 919:
25320#line 2450 "third_party/libpg_query/grammar/statements/select.y"
25321 {
25322 /* in_expr returns a PGSubLink or a list of a_exprs */
25323 if (IsA((yyvsp[(4) - (4)].node), PGSubLink))
25324 {
25325 /* generate NOT (foo = ANY (subquery)) */
25326 /* Make an = ANY node */
25327 PGSubLink *n = (PGSubLink *) (yyvsp[(4) - (4)].node);
25328 n->subLinkType = PG_ANY_SUBLINK;
25329 n->subLinkId = 0;
25330 n->testexpr = (yyvsp[(1) - (4)].node);
25331 n->operName = NIL; /* show it's IN not = ANY */
25332 n->location = (yylsp[(2) - (4)]);
25333 /* Stick a NOT on top; must have same parse location */
25334 (yyval.node) = makeNotExpr(expr: (PGNode *) n, location: (yylsp[(2) - (4)]));
25335 }
25336 else
25337 {
25338 /* generate scalar NOT IN expression */
25339 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_IN, name: "<>", lexpr: (yyvsp[(1) - (4)].node), rexpr: (yyvsp[(4) - (4)].node), location: (yylsp[(2) - (4)]));
25340 }
25341 ;}
25342 break;
25343
25344 case 920:
25345#line 2472 "third_party/libpg_query/grammar/statements/select.y"
25346 {
25347 PGSubLink *n = makeNode(PGSubLink);
25348 n->subLinkType = (yyvsp[(3) - (4)].subquerytype);
25349 n->subLinkId = 0;
25350 n->testexpr = (yyvsp[(1) - (4)].node);
25351 n->operName = (yyvsp[(2) - (4)].list);
25352 n->subselect = (yyvsp[(4) - (4)].node);
25353 n->location = (yylsp[(2) - (4)]);
25354 (yyval.node) = (PGNode *)n;
25355 ;}
25356 break;
25357
25358 case 921:
25359#line 2483 "third_party/libpg_query/grammar/statements/select.y"
25360 {
25361 if ((yyvsp[(3) - (6)].subquerytype) == PG_ANY_SUBLINK)
25362 (yyval.node) = (PGNode *) makeAExpr(kind: PG_AEXPR_OP_ANY, name: (yyvsp[(2) - (6)].list), lexpr: (yyvsp[(1) - (6)].node), rexpr: (yyvsp[(5) - (6)].node), location: (yylsp[(2) - (6)]));
25363 else
25364 (yyval.node) = (PGNode *) makeAExpr(kind: PG_AEXPR_OP_ALL, name: (yyvsp[(2) - (6)].list), lexpr: (yyvsp[(1) - (6)].node), rexpr: (yyvsp[(5) - (6)].node), location: (yylsp[(2) - (6)]));
25365 ;}
25366 break;
25367
25368 case 922:
25369#line 2490 "third_party/libpg_query/grammar/statements/select.y"
25370 {
25371 /*
25372 * The SQL spec only allows DEFAULT in "contextually typed
25373 * expressions", but for us, it's easier to allow it in
25374 * any a_expr and then throw error during parse analysis
25375 * if it's in an inappropriate context. This way also
25376 * lets us say something smarter than "syntax error".
25377 */
25378 PGSetToDefault *n = makeNode(PGSetToDefault);
25379 /* parse analysis will fill in the rest */
25380 n->location = (yylsp[(1) - (1)]);
25381 (yyval.node) = (PGNode *)n;
25382 ;}
25383 break;
25384
25385 case 923:
25386#line 2504 "third_party/libpg_query/grammar/statements/select.y"
25387 {
25388 PGAStar *star = makeNode(PGAStar);
25389 star->expr = (yyvsp[(3) - (4)].node);
25390 star->columns = true;
25391 star->location = (yylsp[(1) - (4)]);
25392 (yyval.node) = (PGNode *) star;
25393 ;}
25394 break;
25395
25396 case 924:
25397#line 2512 "third_party/libpg_query/grammar/statements/select.y"
25398 {
25399 PGAStar *star = makeNode(PGAStar);
25400 star->except_list = (yyvsp[(2) - (3)].list);
25401 star->replace_list = (yyvsp[(3) - (3)].list);
25402 star->location = (yylsp[(1) - (3)]);
25403 (yyval.node) = (PGNode *) star;
25404 ;}
25405 break;
25406
25407 case 925:
25408#line 2520 "third_party/libpg_query/grammar/statements/select.y"
25409 {
25410 PGAStar *star = makeNode(PGAStar);
25411 star->relation = (yyvsp[(1) - (5)].str);
25412 star->except_list = (yyvsp[(4) - (5)].list);
25413 star->replace_list = (yyvsp[(5) - (5)].list);
25414 star->location = (yylsp[(1) - (5)]);
25415 (yyval.node) = (PGNode *) star;
25416 ;}
25417 break;
25418
25419 case 926:
25420#line 2540 "third_party/libpg_query/grammar/statements/select.y"
25421 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
25422 break;
25423
25424 case 927:
25425#line 2542 "third_party/libpg_query/grammar/statements/select.y"
25426 { (yyval.node) = makeTypeCast(arg: (yyvsp[(1) - (3)].node), tpname: (yyvsp[(3) - (3)].typnam), trycast: 0, location: (yylsp[(2) - (3)])); ;}
25427 break;
25428
25429 case 928:
25430#line 2544 "third_party/libpg_query/grammar/statements/select.y"
25431 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "+", NULL, rexpr: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)])); ;}
25432 break;
25433
25434 case 929:
25435#line 2546 "third_party/libpg_query/grammar/statements/select.y"
25436 { (yyval.node) = doNegate(n: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)])); ;}
25437 break;
25438
25439 case 930:
25440#line 2548 "third_party/libpg_query/grammar/statements/select.y"
25441 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "+", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25442 break;
25443
25444 case 931:
25445#line 2550 "third_party/libpg_query/grammar/statements/select.y"
25446 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "-", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25447 break;
25448
25449 case 932:
25450#line 2552 "third_party/libpg_query/grammar/statements/select.y"
25451 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "*", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25452 break;
25453
25454 case 933:
25455#line 2554 "third_party/libpg_query/grammar/statements/select.y"
25456 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "/", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25457 break;
25458
25459 case 934:
25460#line 2556 "third_party/libpg_query/grammar/statements/select.y"
25461 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "//", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25462 break;
25463
25464 case 935:
25465#line 2558 "third_party/libpg_query/grammar/statements/select.y"
25466 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "%", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25467 break;
25468
25469 case 936:
25470#line 2560 "third_party/libpg_query/grammar/statements/select.y"
25471 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "^", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25472 break;
25473
25474 case 937:
25475#line 2562 "third_party/libpg_query/grammar/statements/select.y"
25476 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "**", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25477 break;
25478
25479 case 938:
25480#line 2564 "third_party/libpg_query/grammar/statements/select.y"
25481 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "<", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25482 break;
25483
25484 case 939:
25485#line 2566 "third_party/libpg_query/grammar/statements/select.y"
25486 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: ">", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25487 break;
25488
25489 case 940:
25490#line 2568 "third_party/libpg_query/grammar/statements/select.y"
25491 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "=", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25492 break;
25493
25494 case 941:
25495#line 2570 "third_party/libpg_query/grammar/statements/select.y"
25496 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "<=", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25497 break;
25498
25499 case 942:
25500#line 2572 "third_party/libpg_query/grammar/statements/select.y"
25501 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: ">=", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25502 break;
25503
25504 case 943:
25505#line 2574 "third_party/libpg_query/grammar/statements/select.y"
25506 { (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "<>", lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25507 break;
25508
25509 case 944:
25510#line 2576 "third_party/libpg_query/grammar/statements/select.y"
25511 { (yyval.node) = (PGNode *) makeAExpr(kind: PG_AEXPR_OP, name: (yyvsp[(2) - (3)].list), lexpr: (yyvsp[(1) - (3)].node), rexpr: (yyvsp[(3) - (3)].node), location: (yylsp[(2) - (3)])); ;}
25512 break;
25513
25514 case 945:
25515#line 2578 "third_party/libpg_query/grammar/statements/select.y"
25516 { (yyval.node) = (PGNode *) makeAExpr(kind: PG_AEXPR_OP, name: (yyvsp[(1) - (2)].list), NULL, rexpr: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)])); ;}
25517 break;
25518
25519 case 946:
25520#line 2580 "third_party/libpg_query/grammar/statements/select.y"
25521 { (yyval.node) = (PGNode *) makeAExpr(kind: PG_AEXPR_OP, name: (yyvsp[(2) - (2)].list), lexpr: (yyvsp[(1) - (2)].node), NULL, location: (yylsp[(2) - (2)])); ;}
25522 break;
25523
25524 case 947:
25525#line 2582 "third_party/libpg_query/grammar/statements/select.y"
25526 {
25527 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_DISTINCT, name: "=", lexpr: (yyvsp[(1) - (5)].node), rexpr: (yyvsp[(5) - (5)].node), location: (yylsp[(2) - (5)]));
25528 ;}
25529 break;
25530
25531 case 948:
25532#line 2586 "third_party/libpg_query/grammar/statements/select.y"
25533 {
25534 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_NOT_DISTINCT, name: "=", lexpr: (yyvsp[(1) - (6)].node), rexpr: (yyvsp[(6) - (6)].node), location: (yylsp[(2) - (6)]));
25535 ;}
25536 break;
25537
25538 case 949:
25539#line 2590 "third_party/libpg_query/grammar/statements/select.y"
25540 {
25541 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OF, name: "=", lexpr: (yyvsp[(1) - (6)].node), rexpr: (PGNode *) (yyvsp[(5) - (6)].list), location: (yylsp[(2) - (6)]));
25542 ;}
25543 break;
25544
25545 case 950:
25546#line 2594 "third_party/libpg_query/grammar/statements/select.y"
25547 {
25548 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OF, name: "<>", lexpr: (yyvsp[(1) - (7)].node), rexpr: (PGNode *) (yyvsp[(6) - (7)].list), location: (yylsp[(2) - (7)]));
25549 ;}
25550 break;
25551
25552 case 952:
25553#line 2608 "third_party/libpg_query/grammar/statements/select.y"
25554 {
25555 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "row"), args: (yyvsp[(1) - (1)].list), location: (yylsp[(1) - (1)]));
25556 (yyval.node) = (PGNode *) n;
25557 ;}
25558 break;
25559
25560 case 953:
25561#line 2613 "third_party/libpg_query/grammar/statements/select.y"
25562 {
25563 if ((yyvsp[(2) - (2)].list))
25564 {
25565 PGAIndirection *n = makeNode(PGAIndirection);
25566 n->arg = (PGNode *) (yyvsp[(1) - (2)].node);
25567 n->indirection = check_indirection(indirection: (yyvsp[(2) - (2)].list), yyscanner);
25568 (yyval.node) = (PGNode *) n;
25569 }
25570 else
25571 (yyval.node) = (PGNode *) (yyvsp[(1) - (2)].node);
25572 ;}
25573 break;
25574
25575 case 954:
25576#line 2626 "third_party/libpg_query/grammar/statements/select.y"
25577 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
25578 break;
25579
25580 case 955:
25581#line 2627 "third_party/libpg_query/grammar/statements/select.y"
25582 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
25583 break;
25584
25585 case 956:
25586#line 2629 "third_party/libpg_query/grammar/statements/select.y"
25587 {
25588 PGPositionalReference *n = makeNode(PGPositionalReference);
25589 n->position = (yyvsp[(2) - (2)].ival);
25590 n->location = (yylsp[(1) - (2)]);
25591 (yyval.node) = (PGNode *) n;
25592 ;}
25593 break;
25594
25595 case 957:
25596#line 2636 "third_party/libpg_query/grammar/statements/select.y"
25597 {
25598 (yyval.node) = makeNamedParamRef(name: (yyvsp[(2) - (2)].str), location: (yylsp[(1) - (2)]));
25599 ;}
25600 break;
25601
25602 case 958:
25603#line 2639 "third_party/libpg_query/grammar/statements/select.y"
25604 {
25605 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "list_value"), args: (yyvsp[(2) - (3)].list), location: (yylsp[(2) - (3)]));
25606 (yyval.node) = (PGNode *) n;
25607 ;}
25608 break;
25609
25610 case 959:
25611#line 2643 "third_party/libpg_query/grammar/statements/select.y"
25612 {
25613 (yyval.node) = (yyvsp[(1) - (1)].node);
25614 ;}
25615 break;
25616
25617 case 960:
25618#line 2647 "third_party/libpg_query/grammar/statements/select.y"
25619 {
25620 PGSubLink *n = makeNode(PGSubLink);
25621 n->subLinkType = PG_ARRAY_SUBLINK;
25622 n->subLinkId = 0;
25623 n->testexpr = NULL;
25624 n->operName = NULL;
25625 n->subselect = (yyvsp[(2) - (2)].node);
25626 n->location = (yylsp[(2) - (2)]);
25627 (yyval.node) = (PGNode *)n;
25628 ;}
25629 break;
25630
25631 case 961:
25632#line 2657 "third_party/libpg_query/grammar/statements/select.y"
25633 {
25634 PGList *func_name = list_make1(makeString("construct_array"));
25635 PGFuncCall *n = makeFuncCall(name: func_name, args: (yyvsp[(3) - (4)].list), location: (yylsp[(1) - (4)]));
25636 (yyval.node) = (PGNode *) n;
25637 ;}
25638 break;
25639
25640 case 962:
25641#line 2663 "third_party/libpg_query/grammar/statements/select.y"
25642 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
25643 break;
25644
25645 case 963:
25646#line 2665 "third_party/libpg_query/grammar/statements/select.y"
25647 {
25648 PGSubLink *n = makeNode(PGSubLink);
25649 n->subLinkType = PG_EXPR_SUBLINK;
25650 n->subLinkId = 0;
25651 n->testexpr = NULL;
25652 n->operName = NIL;
25653 n->subselect = (yyvsp[(1) - (1)].node);
25654 n->location = (yylsp[(1) - (1)]);
25655 (yyval.node) = (PGNode *)n;
25656 ;}
25657 break;
25658
25659 case 964:
25660#line 2676 "third_party/libpg_query/grammar/statements/select.y"
25661 {
25662 /*
25663 * Because the select_with_parens nonterminal is designed
25664 * to "eat" as many levels of parens as possible, the
25665 * '(' a_expr ')' opt_indirection production above will
25666 * fail to match a sub-SELECT with indirection decoration;
25667 * the sub-SELECT won't be regarded as an a_expr as long
25668 * as there are parens around it. To support applying
25669 * subscripting or field selection to a sub-SELECT result,
25670 * we need this redundant-looking production.
25671 */
25672 PGSubLink *n = makeNode(PGSubLink);
25673 PGAIndirection *a = makeNode(PGAIndirection);
25674 n->subLinkType = PG_EXPR_SUBLINK;
25675 n->subLinkId = 0;
25676 n->testexpr = NULL;
25677 n->operName = NIL;
25678 n->subselect = (yyvsp[(1) - (2)].node);
25679 n->location = (yylsp[(1) - (2)]);
25680 a->arg = (PGNode *)n;
25681 a->indirection = check_indirection(indirection: (yyvsp[(2) - (2)].list), yyscanner);
25682 (yyval.node) = (PGNode *)a;
25683 ;}
25684 break;
25685
25686 case 965:
25687#line 2700 "third_party/libpg_query/grammar/statements/select.y"
25688 {
25689 PGSubLink *n = makeNode(PGSubLink);
25690 n->subLinkType = PG_EXISTS_SUBLINK;
25691 n->subLinkId = 0;
25692 n->testexpr = NULL;
25693 n->operName = NIL;
25694 n->subselect = (yyvsp[(2) - (2)].node);
25695 n->location = (yylsp[(1) - (2)]);
25696 (yyval.node) = (PGNode *)n;
25697 ;}
25698 break;
25699
25700 case 966:
25701#line 2711 "third_party/libpg_query/grammar/statements/select.y"
25702 {
25703 PGGroupingFunc *g = makeNode(PGGroupingFunc);
25704 g->args = (yyvsp[(3) - (4)].list);
25705 g->location = (yylsp[(1) - (4)]);
25706 (yyval.node) = (PGNode *)g;
25707 ;}
25708 break;
25709
25710 case 967:
25711#line 2722 "third_party/libpg_query/grammar/statements/select.y"
25712 {
25713 (yyval.node) = makeParamRef(number: 0, location: (yylsp[(1) - (1)]));
25714 ;}
25715 break;
25716
25717 case 968:
25718#line 2726 "third_party/libpg_query/grammar/statements/select.y"
25719 {
25720 PGParamRef *p = makeNode(PGParamRef);
25721 p->number = (yyvsp[(1) - (1)].ival);
25722 p->location = (yylsp[(1) - (1)]);
25723 (yyval.node) = (PGNode *) p;
25724 ;}
25725 break;
25726
25727 case 969:
25728#line 2733 "third_party/libpg_query/grammar/statements/select.y"
25729 {
25730 (yyval.node) = (yyvsp[(2) - (3)].node);
25731 ;}
25732 break;
25733
25734 case 970:
25735#line 2737 "third_party/libpg_query/grammar/statements/select.y"
25736 {
25737 PGFuncCall *f = makeFuncCall(name: SystemFuncName(name: "struct_pack"), args: (yyvsp[(2) - (3)].list), location: (yylsp[(2) - (3)]));
25738 (yyval.node) = (PGNode *) f;
25739 ;}
25740 break;
25741
25742 case 971:
25743#line 2742 "third_party/libpg_query/grammar/statements/select.y"
25744 {
25745 PGList *key_list = NULL;
25746 PGList *value_list = NULL;
25747 PGListCell *lc;
25748 PGList *entry_list = (yyvsp[(3) - (4)].list);
25749 foreach(lc, entry_list)
25750 {
25751 PGList *l = (PGList *) lc->data.ptr_value;
25752 key_list = lappend(list: key_list, datum: (PGNode *) l->head->data.ptr_value);
25753 value_list = lappend(list: value_list, datum: (PGNode *) l->tail->data.ptr_value);
25754 }
25755 PGNode *keys = (PGNode *) makeFuncCall(name: SystemFuncName(name: "list_value"), args: key_list, location: (yylsp[(3) - (4)]));
25756 PGNode *values = (PGNode *) makeFuncCall(name: SystemFuncName(name: "list_value"), args: value_list, location: (yylsp[(3) - (4)]));
25757 PGFuncCall *f = makeFuncCall(name: SystemFuncName(name: "map"), list_make2(keys, values), location: (yylsp[(3) - (4)]));
25758 (yyval.node) = (PGNode *) f;
25759 ;}
25760 break;
25761
25762 case 972:
25763#line 2759 "third_party/libpg_query/grammar/statements/select.y"
25764 {
25765 (yyval.node) = (yyvsp[(1) - (1)].node);
25766 ;}
25767 break;
25768
25769 case 973:
25770#line 2765 "third_party/libpg_query/grammar/statements/select.y"
25771 {
25772 (yyval.node) = (PGNode *) makeFuncCall(name: (yyvsp[(1) - (3)].list), NIL, location: (yylsp[(1) - (3)]));
25773 ;}
25774 break;
25775
25776 case 974:
25777#line 2769 "third_party/libpg_query/grammar/statements/select.y"
25778 {
25779 PGFuncCall *n = makeFuncCall(name: (yyvsp[(1) - (6)].list), args: (yyvsp[(3) - (6)].list), location: (yylsp[(1) - (6)]));
25780 n->agg_order = (yyvsp[(4) - (6)].list);
25781 n->agg_ignore_nulls = (yyvsp[(5) - (6)].boolean);
25782 (yyval.node) = (PGNode *)n;
25783 ;}
25784 break;
25785
25786 case 975:
25787#line 2776 "third_party/libpg_query/grammar/statements/select.y"
25788 {
25789 PGFuncCall *n = makeFuncCall(name: (yyvsp[(1) - (7)].list), list_make1((yyvsp[(4) - (7)].node)), location: (yylsp[(1) - (7)]));
25790 n->func_variadic = true;
25791 n->agg_order = (yyvsp[(5) - (7)].list);
25792 n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean);
25793 (yyval.node) = (PGNode *)n;
25794 ;}
25795 break;
25796
25797 case 976:
25798#line 2784 "third_party/libpg_query/grammar/statements/select.y"
25799 {
25800 PGFuncCall *n = makeFuncCall(name: (yyvsp[(1) - (9)].list), args: lappend(list: (yyvsp[(3) - (9)].list), datum: (yyvsp[(6) - (9)].node)), location: (yylsp[(1) - (9)]));
25801 n->func_variadic = true;
25802 n->agg_order = (yyvsp[(7) - (9)].list);
25803 n->agg_ignore_nulls = (yyvsp[(8) - (9)].boolean);
25804 (yyval.node) = (PGNode *)n;
25805 ;}
25806 break;
25807
25808 case 977:
25809#line 2792 "third_party/libpg_query/grammar/statements/select.y"
25810 {
25811 PGFuncCall *n = makeFuncCall(name: (yyvsp[(1) - (7)].list), args: (yyvsp[(4) - (7)].list), location: (yylsp[(1) - (7)]));
25812 n->agg_order = (yyvsp[(5) - (7)].list);
25813 n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean);
25814 /* Ideally we'd mark the PGFuncCall node to indicate
25815 * "must be an aggregate", but there's no provision
25816 * for that in PGFuncCall at the moment.
25817 */
25818 (yyval.node) = (PGNode *)n;
25819 ;}
25820 break;
25821
25822 case 978:
25823#line 2803 "third_party/libpg_query/grammar/statements/select.y"
25824 {
25825 PGFuncCall *n = makeFuncCall(name: (yyvsp[(1) - (7)].list), args: (yyvsp[(4) - (7)].list), location: (yylsp[(1) - (7)]));
25826 n->agg_order = (yyvsp[(5) - (7)].list);
25827 n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean);
25828 n->agg_distinct = true;
25829 (yyval.node) = (PGNode *)n;
25830 ;}
25831 break;
25832
25833 case 979:
25834#line 2823 "third_party/libpg_query/grammar/statements/select.y"
25835 {
25836 PGFuncCall *n = (PGFuncCall *) (yyvsp[(1) - (5)].node);
25837 /*
25838 * The order clause for WITHIN GROUP and the one for
25839 * plain-aggregate ORDER BY share a field, so we have to
25840 * check here that at most one is present. We also check
25841 * for DISTINCT and VARIADIC here to give a better error
25842 * location. Other consistency checks are deferred to
25843 * parse analysis.
25844 */
25845 if ((yyvsp[(2) - (5)].list) != NIL)
25846 {
25847 if (n->agg_order != NIL)
25848 ereport(code: ERROR,
25849 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
25850 errmsg(fmt: "cannot use multiple ORDER BY clauses with WITHIN GROUP"),
25851 parser_errposition((yylsp[(2) - (5)]))));
25852 if (n->agg_distinct)
25853 ereport(code: ERROR,
25854 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
25855 errmsg(fmt: "cannot use DISTINCT with WITHIN GROUP"),
25856 parser_errposition((yylsp[(2) - (5)]))));
25857 if (n->func_variadic)
25858 ereport(code: ERROR,
25859 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
25860 errmsg(fmt: "cannot use VARIADIC with WITHIN GROUP"),
25861 parser_errposition((yylsp[(2) - (5)]))));
25862 n->agg_order = (yyvsp[(2) - (5)].list);
25863 n->agg_within_group = true;
25864 }
25865 n->agg_filter = (yyvsp[(3) - (5)].node);
25866 n->export_state = (yyvsp[(4) - (5)].boolean);
25867 n->over = (yyvsp[(5) - (5)].windef);
25868 (yyval.node) = (PGNode *) n;
25869 ;}
25870 break;
25871
25872 case 980:
25873#line 2859 "third_party/libpg_query/grammar/statements/select.y"
25874 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
25875 break;
25876
25877 case 981:
25878#line 2869 "third_party/libpg_query/grammar/statements/select.y"
25879 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
25880 break;
25881
25882 case 982:
25883#line 2870 "third_party/libpg_query/grammar/statements/select.y"
25884 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
25885 break;
25886
25887 case 983:
25888#line 2878 "third_party/libpg_query/grammar/statements/select.y"
25889 {
25890 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: "pg_collation_for"),
25891 list_make1((yyvsp[(4) - (5)].node)),
25892 location: (yylsp[(1) - (5)]));
25893 ;}
25894 break;
25895
25896 case 984:
25897#line 2884 "third_party/libpg_query/grammar/statements/select.y"
25898 { (yyval.node) = makeTypeCast(arg: (yyvsp[(3) - (6)].node), tpname: (yyvsp[(5) - (6)].typnam), trycast: 0, location: (yylsp[(1) - (6)])); ;}
25899 break;
25900
25901 case 985:
25902#line 2886 "third_party/libpg_query/grammar/statements/select.y"
25903 { (yyval.node) = makeTypeCast(arg: (yyvsp[(3) - (6)].node), tpname: (yyvsp[(5) - (6)].typnam), trycast: 1, location: (yylsp[(1) - (6)])); ;}
25904 break;
25905
25906 case 986:
25907#line 2888 "third_party/libpg_query/grammar/statements/select.y"
25908 {
25909 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: "date_part"), args: (yyvsp[(3) - (4)].list), location: (yylsp[(1) - (4)]));
25910 ;}
25911 break;
25912
25913 case 987:
25914#line 2892 "third_party/libpg_query/grammar/statements/select.y"
25915 {
25916 /* overlay(A PLACING B FROM C FOR D) is converted to
25917 * overlay(A, B, C, D)
25918 * overlay(A PLACING B FROM C) is converted to
25919 * overlay(A, B, C)
25920 */
25921 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: "overlay"), args: (yyvsp[(3) - (4)].list), location: (yylsp[(1) - (4)]));
25922 ;}
25923 break;
25924
25925 case 988:
25926#line 2901 "third_party/libpg_query/grammar/statements/select.y"
25927 {
25928 /* position(A in B) is converted to position(B, A) */
25929 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: "position"), args: (yyvsp[(3) - (4)].list), location: (yylsp[(1) - (4)]));
25930 ;}
25931 break;
25932
25933 case 989:
25934#line 2906 "third_party/libpg_query/grammar/statements/select.y"
25935 {
25936 /* substring(A from B for C) is converted to
25937 * substring(A, B, C) - thomas 2000-11-28
25938 */
25939 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: "substring"), args: (yyvsp[(3) - (4)].list), location: (yylsp[(1) - (4)]));
25940 ;}
25941 break;
25942
25943 case 990:
25944#line 2913 "third_party/libpg_query/grammar/statements/select.y"
25945 {
25946 /* TREAT(expr AS target) converts expr of a particular type to target,
25947 * which is defined to be a subtype of the original expression.
25948 * In SQL99, this is intended for use with structured UDTs,
25949 * but let's make this a generally useful form allowing stronger
25950 * coercions than are handled by implicit casting.
25951 *
25952 * Convert SystemTypeName() to SystemFuncName() even though
25953 * at the moment they result in the same thing.
25954 */
25955 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: ((PGValue *)llast((yyvsp[(5) - (6)].typnam)->names))->val.str),
25956 list_make1((yyvsp[(3) - (6)].node)),
25957 location: (yylsp[(1) - (6)]));
25958 ;}
25959 break;
25960
25961 case 991:
25962#line 2928 "third_party/libpg_query/grammar/statements/select.y"
25963 {
25964 /* various trim expressions are defined in SQL
25965 * - thomas 1997-07-19
25966 */
25967 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: "trim"), args: (yyvsp[(4) - (5)].list), location: (yylsp[(1) - (5)]));
25968 ;}
25969 break;
25970
25971 case 992:
25972#line 2935 "third_party/libpg_query/grammar/statements/select.y"
25973 {
25974 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: "ltrim"), args: (yyvsp[(4) - (5)].list), location: (yylsp[(1) - (5)]));
25975 ;}
25976 break;
25977
25978 case 993:
25979#line 2939 "third_party/libpg_query/grammar/statements/select.y"
25980 {
25981 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: "rtrim"), args: (yyvsp[(4) - (5)].list), location: (yylsp[(1) - (5)]));
25982 ;}
25983 break;
25984
25985 case 994:
25986#line 2943 "third_party/libpg_query/grammar/statements/select.y"
25987 {
25988 (yyval.node) = (PGNode *) makeFuncCall(name: SystemFuncName(name: "trim"), args: (yyvsp[(3) - (4)].list), location: (yylsp[(1) - (4)]));
25989 ;}
25990 break;
25991
25992 case 995:
25993#line 2947 "third_party/libpg_query/grammar/statements/select.y"
25994 {
25995 (yyval.node) = (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_NULLIF, name: "=", lexpr: (yyvsp[(3) - (6)].node), rexpr: (yyvsp[(5) - (6)].node), location: (yylsp[(1) - (6)]));
25996 ;}
25997 break;
25998
25999 case 996:
26000#line 2951 "third_party/libpg_query/grammar/statements/select.y"
26001 {
26002 PGCoalesceExpr *c = makeNode(PGCoalesceExpr);
26003 c->args = (yyvsp[(3) - (4)].list);
26004 c->location = (yylsp[(1) - (4)]);
26005 (yyval.node) = (PGNode *)c;
26006 ;}
26007 break;
26008
26009 case 997:
26010#line 2961 "third_party/libpg_query/grammar/statements/select.y"
26011 {
26012 PGLambdaFunction *lambda = makeNode(PGLambdaFunction);
26013 lambda->lhs = makeColumnRef(colname: (yyvsp[(4) - (7)].str), NIL, location: (yylsp[(4) - (7)]), yyscanner);
26014 lambda->rhs = (yyvsp[(2) - (7)].node);
26015 lambda->location = (yylsp[(1) - (7)]);
26016 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "list_apply"), list_make2((yyvsp[(6) - (7)].node), lambda), location: (yylsp[(1) - (7)]));
26017 (yyval.node) = (PGNode *) n;
26018 ;}
26019 break;
26020
26021 case 998:
26022#line 2970 "third_party/libpg_query/grammar/statements/select.y"
26023 {
26024 PGLambdaFunction *lambda = makeNode(PGLambdaFunction);
26025 lambda->lhs = makeColumnRef(colname: (yyvsp[(4) - (9)].str), NIL, location: (yylsp[(4) - (9)]), yyscanner);
26026 lambda->rhs = (yyvsp[(2) - (9)].node);
26027 lambda->location = (yylsp[(1) - (9)]);
26028
26029 PGLambdaFunction *lambda_filter = makeNode(PGLambdaFunction);
26030 lambda_filter->lhs = makeColumnRef(colname: (yyvsp[(4) - (9)].str), NIL, location: (yylsp[(4) - (9)]), yyscanner);
26031 lambda_filter->rhs = (yyvsp[(8) - (9)].node);
26032 lambda_filter->location = (yylsp[(8) - (9)]);
26033 PGFuncCall *filter = makeFuncCall(name: SystemFuncName(name: "list_filter"), list_make2((yyvsp[(6) - (9)].node), lambda_filter), location: (yylsp[(1) - (9)]));
26034 PGFuncCall *n = makeFuncCall(name: SystemFuncName(name: "list_apply"), list_make2(filter, lambda), location: (yylsp[(1) - (9)]));
26035 (yyval.node) = (PGNode *) n;
26036 ;}
26037 break;
26038
26039 case 999:
26040#line 2991 "third_party/libpg_query/grammar/statements/select.y"
26041 { (yyval.list) = (yyvsp[(4) - (5)].list); ;}
26042 break;
26043
26044 case 1000:
26045#line 2992 "third_party/libpg_query/grammar/statements/select.y"
26046 { (yyval.list) = NIL; ;}
26047 break;
26048
26049 case 1001:
26050#line 2996 "third_party/libpg_query/grammar/statements/select.y"
26051 { (yyval.node) = (yyvsp[(4) - (5)].node); ;}
26052 break;
26053
26054 case 1002:
26055#line 2997 "third_party/libpg_query/grammar/statements/select.y"
26056 { (yyval.node) = (yyvsp[(3) - (4)].node); ;}
26057 break;
26058
26059 case 1003:
26060#line 2998 "third_party/libpg_query/grammar/statements/select.y"
26061 { (yyval.node) = NULL; ;}
26062 break;
26063
26064 case 1004:
26065#line 3002 "third_party/libpg_query/grammar/statements/select.y"
26066 { (yyval.boolean) = true; ;}
26067 break;
26068
26069 case 1005:
26070#line 3003 "third_party/libpg_query/grammar/statements/select.y"
26071 { (yyval.boolean) = false; ;}
26072 break;
26073
26074 case 1006:
26075#line 3010 "third_party/libpg_query/grammar/statements/select.y"
26076 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
26077 break;
26078
26079 case 1007:
26080#line 3011 "third_party/libpg_query/grammar/statements/select.y"
26081 { (yyval.list) = NIL; ;}
26082 break;
26083
26084 case 1008:
26085#line 3015 "third_party/libpg_query/grammar/statements/select.y"
26086 { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;}
26087 break;
26088
26089 case 1009:
26090#line 3017 "third_party/libpg_query/grammar/statements/select.y"
26091 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].windef)); ;}
26092 break;
26093
26094 case 1010:
26095#line 3022 "third_party/libpg_query/grammar/statements/select.y"
26096 {
26097 PGWindowDef *n = (yyvsp[(3) - (3)].windef);
26098 n->name = (yyvsp[(1) - (3)].str);
26099 (yyval.windef) = n;
26100 ;}
26101 break;
26102
26103 case 1011:
26104#line 3030 "third_party/libpg_query/grammar/statements/select.y"
26105 { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;}
26106 break;
26107
26108 case 1012:
26109#line 3032 "third_party/libpg_query/grammar/statements/select.y"
26110 {
26111 PGWindowDef *n = makeNode(PGWindowDef);
26112 n->name = (yyvsp[(2) - (2)].str);
26113 n->refname = NULL;
26114 n->partitionClause = NIL;
26115 n->orderClause = NIL;
26116 n->frameOptions = FRAMEOPTION_DEFAULTS;
26117 n->startOffset = NULL;
26118 n->endOffset = NULL;
26119 n->location = (yylsp[(2) - (2)]);
26120 (yyval.windef) = n;
26121 ;}
26122 break;
26123
26124 case 1013:
26125#line 3045 "third_party/libpg_query/grammar/statements/select.y"
26126 { (yyval.windef) = NULL; ;}
26127 break;
26128
26129 case 1014:
26130#line 3050 "third_party/libpg_query/grammar/statements/select.y"
26131 {
26132 PGWindowDef *n = makeNode(PGWindowDef);
26133 n->name = NULL;
26134 n->refname = (yyvsp[(2) - (6)].str);
26135 n->partitionClause = (yyvsp[(3) - (6)].list);
26136 n->orderClause = (yyvsp[(4) - (6)].list);
26137 /* copy relevant fields of opt_frame_clause */
26138 n->frameOptions = (yyvsp[(5) - (6)].windef)->frameOptions;
26139 n->startOffset = (yyvsp[(5) - (6)].windef)->startOffset;
26140 n->endOffset = (yyvsp[(5) - (6)].windef)->endOffset;
26141 n->location = (yylsp[(1) - (6)]);
26142 (yyval.windef) = n;
26143 ;}
26144 break;
26145
26146 case 1015:
26147#line 3075 "third_party/libpg_query/grammar/statements/select.y"
26148 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
26149 break;
26150
26151 case 1016:
26152#line 3076 "third_party/libpg_query/grammar/statements/select.y"
26153 { (yyval.str) = NULL; ;}
26154 break;
26155
26156 case 1017:
26157#line 3079 "third_party/libpg_query/grammar/statements/select.y"
26158 { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
26159 break;
26160
26161 case 1018:
26162#line 3080 "third_party/libpg_query/grammar/statements/select.y"
26163 { (yyval.list) = NIL; ;}
26164 break;
26165
26166 case 1019:
26167#line 3092 "third_party/libpg_query/grammar/statements/select.y"
26168 {
26169 PGWindowDef *n = (yyvsp[(2) - (2)].windef);
26170 n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE;
26171 (yyval.windef) = n;
26172 ;}
26173 break;
26174
26175 case 1020:
26176#line 3098 "third_party/libpg_query/grammar/statements/select.y"
26177 {
26178 PGWindowDef *n = (yyvsp[(2) - (2)].windef);
26179 n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS;
26180 (yyval.windef) = n;
26181 ;}
26182 break;
26183
26184 case 1021:
26185#line 3104 "third_party/libpg_query/grammar/statements/select.y"
26186 {
26187 PGWindowDef *n = makeNode(PGWindowDef);
26188 n->frameOptions = FRAMEOPTION_DEFAULTS;
26189 n->startOffset = NULL;
26190 n->endOffset = NULL;
26191 (yyval.windef) = n;
26192 ;}
26193 break;
26194
26195 case 1022:
26196#line 3114 "third_party/libpg_query/grammar/statements/select.y"
26197 {
26198 PGWindowDef *n = (yyvsp[(1) - (1)].windef);
26199 /* reject invalid cases */
26200 if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
26201 ereport(code: ERROR,
26202 (errcode(sqlerrcode: PG_ERRCODE_WINDOWING_ERROR),
26203 errmsg(fmt: "frame start cannot be UNBOUNDED FOLLOWING"),
26204 parser_errposition((yylsp[(1) - (1)]))));
26205 if (n->frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING)
26206 ereport(code: ERROR,
26207 (errcode(sqlerrcode: PG_ERRCODE_WINDOWING_ERROR),
26208 errmsg(fmt: "frame starting from following row cannot end with current row"),
26209 parser_errposition((yylsp[(1) - (1)]))));
26210 n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW;
26211 (yyval.windef) = n;
26212 ;}
26213 break;
26214
26215 case 1023:
26216#line 3131 "third_party/libpg_query/grammar/statements/select.y"
26217 {
26218 PGWindowDef *n1 = (yyvsp[(2) - (4)].windef);
26219 PGWindowDef *n2 = (yyvsp[(4) - (4)].windef);
26220 /* form merged options */
26221 int frameOptions = n1->frameOptions;
26222 /* shift converts START_ options to END_ options */
26223 frameOptions |= n2->frameOptions << 1;
26224 frameOptions |= FRAMEOPTION_BETWEEN;
26225 /* reject invalid cases */
26226 if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
26227 ereport(code: ERROR,
26228 (errcode(sqlerrcode: PG_ERRCODE_WINDOWING_ERROR),
26229 errmsg(fmt: "frame start cannot be UNBOUNDED FOLLOWING"),
26230 parser_errposition((yylsp[(2) - (4)]))));
26231 if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING)
26232 ereport(code: ERROR,
26233 (errcode(sqlerrcode: PG_ERRCODE_WINDOWING_ERROR),
26234 errmsg(fmt: "frame end cannot be UNBOUNDED PRECEDING"),
26235 parser_errposition((yylsp[(4) - (4)]))));
26236 if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) &&
26237 (frameOptions & FRAMEOPTION_END_VALUE_PRECEDING))
26238 ereport(code: ERROR,
26239 (errcode(sqlerrcode: PG_ERRCODE_WINDOWING_ERROR),
26240 errmsg(fmt: "frame starting from current row cannot have preceding rows"),
26241 parser_errposition((yylsp[(4) - (4)]))));
26242 if ((frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) &&
26243 (frameOptions & (FRAMEOPTION_END_VALUE_PRECEDING |
26244 FRAMEOPTION_END_CURRENT_ROW)))
26245 ereport(code: ERROR,
26246 (errcode(sqlerrcode: PG_ERRCODE_WINDOWING_ERROR),
26247 errmsg(fmt: "frame starting from following row cannot have preceding rows"),
26248 parser_errposition((yylsp[(4) - (4)]))));
26249 n1->frameOptions = frameOptions;
26250 n1->endOffset = n2->startOffset;
26251 (yyval.windef) = n1;
26252 ;}
26253 break;
26254
26255 case 1024:
26256#line 3176 "third_party/libpg_query/grammar/statements/select.y"
26257 {
26258 PGWindowDef *n = makeNode(PGWindowDef);
26259 n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING;
26260 n->startOffset = NULL;
26261 n->endOffset = NULL;
26262 (yyval.windef) = n;
26263 ;}
26264 break;
26265
26266 case 1025:
26267#line 3184 "third_party/libpg_query/grammar/statements/select.y"
26268 {
26269 PGWindowDef *n = makeNode(PGWindowDef);
26270 n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING;
26271 n->startOffset = NULL;
26272 n->endOffset = NULL;
26273 (yyval.windef) = n;
26274 ;}
26275 break;
26276
26277 case 1026:
26278#line 3192 "third_party/libpg_query/grammar/statements/select.y"
26279 {
26280 PGWindowDef *n = makeNode(PGWindowDef);
26281 n->frameOptions = FRAMEOPTION_START_CURRENT_ROW;
26282 n->startOffset = NULL;
26283 n->endOffset = NULL;
26284 (yyval.windef) = n;
26285 ;}
26286 break;
26287
26288 case 1027:
26289#line 3200 "third_party/libpg_query/grammar/statements/select.y"
26290 {
26291 PGWindowDef *n = makeNode(PGWindowDef);
26292 n->frameOptions = FRAMEOPTION_START_VALUE_PRECEDING;
26293 n->startOffset = (yyvsp[(1) - (2)].node);
26294 n->endOffset = NULL;
26295 (yyval.windef) = n;
26296 ;}
26297 break;
26298
26299 case 1028:
26300#line 3208 "third_party/libpg_query/grammar/statements/select.y"
26301 {
26302 PGWindowDef *n = makeNode(PGWindowDef);
26303 n->frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING;
26304 n->startOffset = (yyvsp[(1) - (2)].node);
26305 n->endOffset = NULL;
26306 (yyval.windef) = n;
26307 ;}
26308 break;
26309
26310 case 1029:
26311#line 3228 "third_party/libpg_query/grammar/statements/select.y"
26312 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
26313 break;
26314
26315 case 1030:
26316#line 3229 "third_party/libpg_query/grammar/statements/select.y"
26317 { (yyval.list) = NIL; ;}
26318 break;
26319
26320 case 1031:
26321#line 3232 "third_party/libpg_query/grammar/statements/select.y"
26322 { (yyval.list) = (yyvsp[(1) - (1)].list);;}
26323 break;
26324
26325 case 1032:
26326#line 3233 "third_party/libpg_query/grammar/statements/select.y"
26327 { (yyval.list) = lappend(list: (yyvsp[(2) - (5)].list), datum: (yyvsp[(4) - (5)].node)); ;}
26328 break;
26329
26330 case 1033:
26331#line 3237 "third_party/libpg_query/grammar/statements/select.y"
26332 {
26333 PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
26334 na->name = (yyvsp[(1) - (3)].str);
26335 na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
26336 na->argnumber = -1;
26337 na->location = (yylsp[(1) - (3)]);
26338 (yyval.node) = (PGNode *) na;
26339 ;}
26340 break;
26341
26342 case 1034:
26343#line 3247 "third_party/libpg_query/grammar/statements/select.y"
26344 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
26345 break;
26346
26347 case 1035:
26348#line 3248 "third_party/libpg_query/grammar/statements/select.y"
26349 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node)); ;}
26350 break;
26351
26352 case 1036:
26353#line 3252 "third_party/libpg_query/grammar/statements/select.y"
26354 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
26355 break;
26356
26357 case 1037:
26358#line 3253 "third_party/libpg_query/grammar/statements/select.y"
26359 { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
26360 break;
26361
26362 case 1038:
26363#line 3258 "third_party/libpg_query/grammar/statements/select.y"
26364 {
26365 (yyval.list) = list_make2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
26366 ;}
26367 break;
26368
26369 case 1039:
26370#line 3264 "third_party/libpg_query/grammar/statements/select.y"
26371 { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
26372 break;
26373
26374 case 1040:
26375#line 3265 "third_party/libpg_query/grammar/statements/select.y"
26376 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].list)); ;}
26377 break;
26378
26379 case 1041:
26380#line 3270 "third_party/libpg_query/grammar/statements/select.y"
26381 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
26382 break;
26383
26384 case 1042:
26385#line 3271 "third_party/libpg_query/grammar/statements/select.y"
26386 { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
26387 break;
26388
26389 case 1043:
26390#line 3276 "third_party/libpg_query/grammar/statements/select.y"
26391 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
26392 break;
26393
26394 case 1044:
26395#line 3277 "third_party/libpg_query/grammar/statements/select.y"
26396 { (yyval.list) = NULL; ;}
26397 break;
26398
26399 case 1045:
26400#line 3280 "third_party/libpg_query/grammar/statements/select.y"
26401 { (yyval.subquerytype) = PG_ANY_SUBLINK; ;}
26402 break;
26403
26404 case 1046:
26405#line 3281 "third_party/libpg_query/grammar/statements/select.y"
26406 { (yyval.subquerytype) = PG_ANY_SUBLINK; ;}
26407 break;
26408
26409 case 1047:
26410#line 3282 "third_party/libpg_query/grammar/statements/select.y"
26411 { (yyval.subquerytype) = PG_ALL_SUBLINK; ;}
26412 break;
26413
26414 case 1048:
26415#line 3285 "third_party/libpg_query/grammar/statements/select.y"
26416 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
26417 break;
26418
26419 case 1049:
26420#line 3286 "third_party/libpg_query/grammar/statements/select.y"
26421 { (yyval.str) = (char*) (yyvsp[(1) - (1)].conststr); ;}
26422 break;
26423
26424 case 1050:
26425#line 3289 "third_party/libpg_query/grammar/statements/select.y"
26426 { (yyval.conststr) = "+"; ;}
26427 break;
26428
26429 case 1051:
26430#line 3290 "third_party/libpg_query/grammar/statements/select.y"
26431 { (yyval.conststr) = "-"; ;}
26432 break;
26433
26434 case 1052:
26435#line 3291 "third_party/libpg_query/grammar/statements/select.y"
26436 { (yyval.conststr) = "*"; ;}
26437 break;
26438
26439 case 1053:
26440#line 3292 "third_party/libpg_query/grammar/statements/select.y"
26441 { (yyval.conststr) = "/"; ;}
26442 break;
26443
26444 case 1054:
26445#line 3293 "third_party/libpg_query/grammar/statements/select.y"
26446 { (yyval.conststr) = "//"; ;}
26447 break;
26448
26449 case 1055:
26450#line 3294 "third_party/libpg_query/grammar/statements/select.y"
26451 { (yyval.conststr) = "%"; ;}
26452 break;
26453
26454 case 1056:
26455#line 3295 "third_party/libpg_query/grammar/statements/select.y"
26456 { (yyval.conststr) = "^"; ;}
26457 break;
26458
26459 case 1057:
26460#line 3296 "third_party/libpg_query/grammar/statements/select.y"
26461 { (yyval.conststr) = "**"; ;}
26462 break;
26463
26464 case 1058:
26465#line 3297 "third_party/libpg_query/grammar/statements/select.y"
26466 { (yyval.conststr) = "<"; ;}
26467 break;
26468
26469 case 1059:
26470#line 3298 "third_party/libpg_query/grammar/statements/select.y"
26471 { (yyval.conststr) = ">"; ;}
26472 break;
26473
26474 case 1060:
26475#line 3299 "third_party/libpg_query/grammar/statements/select.y"
26476 { (yyval.conststr) = "="; ;}
26477 break;
26478
26479 case 1061:
26480#line 3300 "third_party/libpg_query/grammar/statements/select.y"
26481 { (yyval.conststr) = "<="; ;}
26482 break;
26483
26484 case 1062:
26485#line 3301 "third_party/libpg_query/grammar/statements/select.y"
26486 { (yyval.conststr) = ">="; ;}
26487 break;
26488
26489 case 1063:
26490#line 3302 "third_party/libpg_query/grammar/statements/select.y"
26491 { (yyval.conststr) = "<>"; ;}
26492 break;
26493
26494 case 1064:
26495#line 3306 "third_party/libpg_query/grammar/statements/select.y"
26496 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
26497 break;
26498
26499 case 1065:
26500#line 3308 "third_party/libpg_query/grammar/statements/select.y"
26501 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
26502 break;
26503
26504 case 1066:
26505#line 3313 "third_party/libpg_query/grammar/statements/select.y"
26506 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
26507 break;
26508
26509 case 1067:
26510#line 3315 "third_party/libpg_query/grammar/statements/select.y"
26511 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
26512 break;
26513
26514 case 1068:
26515#line 3320 "third_party/libpg_query/grammar/statements/select.y"
26516 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
26517 break;
26518
26519 case 1069:
26520#line 3322 "third_party/libpg_query/grammar/statements/select.y"
26521 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
26522 break;
26523
26524 case 1070:
26525#line 3324 "third_party/libpg_query/grammar/statements/select.y"
26526 { (yyval.list) = list_make1(makeString("~~")); ;}
26527 break;
26528
26529 case 1071:
26530#line 3326 "third_party/libpg_query/grammar/statements/select.y"
26531 { (yyval.list) = list_make1(makeString("!~~")); ;}
26532 break;
26533
26534 case 1072:
26535#line 3328 "third_party/libpg_query/grammar/statements/select.y"
26536 { (yyval.list) = list_make1(makeString("~~~")); ;}
26537 break;
26538
26539 case 1073:
26540#line 3330 "third_party/libpg_query/grammar/statements/select.y"
26541 { (yyval.list) = list_make1(makeString("!~~~")); ;}
26542 break;
26543
26544 case 1074:
26545#line 3332 "third_party/libpg_query/grammar/statements/select.y"
26546 { (yyval.list) = list_make1(makeString("~~*")); ;}
26547 break;
26548
26549 case 1075:
26550#line 3334 "third_party/libpg_query/grammar/statements/select.y"
26551 { (yyval.list) = list_make1(makeString("!~~*")); ;}
26552 break;
26553
26554 case 1076:
26555#line 3348 "third_party/libpg_query/grammar/statements/select.y"
26556 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
26557 break;
26558
26559 case 1077:
26560#line 3350 "third_party/libpg_query/grammar/statements/select.y"
26561 { (yyval.list) = lcons(datum: makeString(str: (yyvsp[(1) - (3)].str)), list: (yyvsp[(3) - (3)].list)); ;}
26562 break;
26563
26564 case 1078:
26565#line 3355 "third_party/libpg_query/grammar/statements/select.y"
26566 {
26567 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
26568 ;}
26569 break;
26570
26571 case 1079:
26572#line 3359 "third_party/libpg_query/grammar/statements/select.y"
26573 {
26574 (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node));
26575 ;}
26576 break;
26577
26578 case 1080:
26579#line 3366 "third_party/libpg_query/grammar/statements/select.y"
26580 {
26581 (yyval.list) = (yyvsp[(1) - (1)].list);
26582 ;}
26583 break;
26584
26585 case 1081:
26586#line 3371 "third_party/libpg_query/grammar/statements/select.y"
26587 {
26588 (yyval.list) = (yyvsp[(1) - (2)].list);
26589 ;}
26590 break;
26591
26592 case 1082:
26593#line 3377 "third_party/libpg_query/grammar/statements/select.y"
26594 {
26595 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
26596 ;}
26597 break;
26598
26599 case 1083:
26600#line 3381 "third_party/libpg_query/grammar/statements/select.y"
26601 {
26602 (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node));
26603 ;}
26604 break;
26605
26606 case 1084:
26607#line 3388 "third_party/libpg_query/grammar/statements/select.y"
26608 {
26609 (yyval.list) = (yyvsp[(1) - (1)].list);
26610 ;}
26611 break;
26612
26613 case 1085:
26614#line 3393 "third_party/libpg_query/grammar/statements/select.y"
26615 {
26616 (yyval.list) = (yyvsp[(1) - (2)].list);
26617 ;}
26618 break;
26619
26620 case 1086:
26621#line 3400 "third_party/libpg_query/grammar/statements/select.y"
26622 {
26623 (yyval.list) = (yyvsp[(1) - (1)].list);
26624 ;}
26625 break;
26626
26627 case 1087:
26628#line 3404 "third_party/libpg_query/grammar/statements/select.y"
26629 {
26630 (yyval.list) = NULL;
26631 ;}
26632 break;
26633
26634 case 1088:
26635#line 3413 "third_party/libpg_query/grammar/statements/select.y"
26636 {
26637 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
26638 ;}
26639 break;
26640
26641 case 1089:
26642#line 3417 "third_party/libpg_query/grammar/statements/select.y"
26643 {
26644 (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node));
26645 ;}
26646 break;
26647
26648 case 1090:
26649#line 3423 "third_party/libpg_query/grammar/statements/select.y"
26650 {
26651 (yyval.node) = (yyvsp[(1) - (1)].node);
26652 ;}
26653 break;
26654
26655 case 1091:
26656#line 3427 "third_party/libpg_query/grammar/statements/select.y"
26657 {
26658 PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
26659 na->name = (yyvsp[(1) - (3)].str);
26660 na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
26661 na->argnumber = -1; /* until determined */
26662 na->location = (yylsp[(1) - (3)]);
26663 (yyval.node) = (PGNode *) na;
26664 ;}
26665 break;
26666
26667 case 1092:
26668#line 3436 "third_party/libpg_query/grammar/statements/select.y"
26669 {
26670 PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
26671 na->name = (yyvsp[(1) - (3)].str);
26672 na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
26673 na->argnumber = -1; /* until determined */
26674 na->location = (yylsp[(1) - (3)]);
26675 (yyval.node) = (PGNode *) na;
26676 ;}
26677 break;
26678
26679 case 1093:
26680#line 3446 "third_party/libpg_query/grammar/statements/select.y"
26681 { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;}
26682 break;
26683
26684 case 1094:
26685#line 3447 "third_party/libpg_query/grammar/statements/select.y"
26686 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].typnam)); ;}
26687 break;
26688
26689 case 1095:
26690#line 3452 "third_party/libpg_query/grammar/statements/select.y"
26691 {
26692 (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node));
26693 ;}
26694 break;
26695
26696 case 1096:
26697#line 3455 "third_party/libpg_query/grammar/statements/select.y"
26698 { (yyval.list) = NIL; ;}
26699 break;
26700
26701 case 1097:
26702#line 3462 "third_party/libpg_query/grammar/statements/select.y"
26703 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
26704 break;
26705
26706 case 1098:
26707#line 3463 "third_party/libpg_query/grammar/statements/select.y"
26708 { (yyval.str) = (char*) "year"; ;}
26709 break;
26710
26711 case 1099:
26712#line 3464 "third_party/libpg_query/grammar/statements/select.y"
26713 { (yyval.str) = (char*) "month"; ;}
26714 break;
26715
26716 case 1100:
26717#line 3465 "third_party/libpg_query/grammar/statements/select.y"
26718 { (yyval.str) = (char*) "day"; ;}
26719 break;
26720
26721 case 1101:
26722#line 3466 "third_party/libpg_query/grammar/statements/select.y"
26723 { (yyval.str) = (char*) "hour"; ;}
26724 break;
26725
26726 case 1102:
26727#line 3467 "third_party/libpg_query/grammar/statements/select.y"
26728 { (yyval.str) = (char*) "minute"; ;}
26729 break;
26730
26731 case 1103:
26732#line 3468 "third_party/libpg_query/grammar/statements/select.y"
26733 { (yyval.str) = (char*) "second"; ;}
26734 break;
26735
26736 case 1104:
26737#line 3469 "third_party/libpg_query/grammar/statements/select.y"
26738 { (yyval.str) = (char*) "millisecond"; ;}
26739 break;
26740
26741 case 1105:
26742#line 3470 "third_party/libpg_query/grammar/statements/select.y"
26743 { (yyval.str) = (char*) "microsecond"; ;}
26744 break;
26745
26746 case 1106:
26747#line 3471 "third_party/libpg_query/grammar/statements/select.y"
26748 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
26749 break;
26750
26751 case 1107:
26752#line 3482 "third_party/libpg_query/grammar/statements/select.y"
26753 {
26754 (yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node));
26755 ;}
26756 break;
26757
26758 case 1108:
26759#line 3486 "third_party/libpg_query/grammar/statements/select.y"
26760 {
26761 (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
26762 ;}
26763 break;
26764
26765 case 1109:
26766#line 3493 "third_party/libpg_query/grammar/statements/select.y"
26767 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
26768 break;
26769
26770 case 1110:
26771#line 3499 "third_party/libpg_query/grammar/statements/select.y"
26772 { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;}
26773 break;
26774
26775 case 1111:
26776#line 3500 "third_party/libpg_query/grammar/statements/select.y"
26777 { (yyval.list) = NIL; ;}
26778 break;
26779
26780 case 1112:
26781#line 3517 "third_party/libpg_query/grammar/statements/select.y"
26782 {
26783 (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
26784 ;}
26785 break;
26786
26787 case 1113:
26788#line 3521 "third_party/libpg_query/grammar/statements/select.y"
26789 {
26790 /* not legal per SQL99, but might as well allow it */
26791 (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].node));
26792 ;}
26793 break;
26794
26795 case 1114:
26796#line 3526 "third_party/libpg_query/grammar/statements/select.y"
26797 {
26798 (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
26799 ;}
26800 break;
26801
26802 case 1115:
26803#line 3530 "third_party/libpg_query/grammar/statements/select.y"
26804 {
26805 /*
26806 * Since there are no cases where this syntax allows
26807 * a textual FOR value, we forcibly cast the argument
26808 * to int4. The possible matches in pg_proc are
26809 * substring(text,int4) and substring(text,text),
26810 * and we don't want the parser to choose the latter,
26811 * which it is likely to do if the second argument
26812 * is unknown or doesn't have an implicit cast to int4.
26813 */
26814 (yyval.list) = list_make3((yyvsp[(1) - (2)].node), makeIntConst(1, -1),
26815 makeTypeCast((yyvsp[(2) - (2)].node),
26816 SystemTypeName("int4"), 0, -1));
26817 ;}
26818 break;
26819
26820 case 1116:
26821#line 3545 "third_party/libpg_query/grammar/statements/select.y"
26822 {
26823 (yyval.list) = (yyvsp[(1) - (1)].list);
26824 ;}
26825 break;
26826
26827 case 1117:
26828#line 3549 "third_party/libpg_query/grammar/statements/select.y"
26829 { (yyval.list) = NIL; ;}
26830 break;
26831
26832 case 1118:
26833#line 3553 "third_party/libpg_query/grammar/statements/select.y"
26834 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
26835 break;
26836
26837 case 1119:
26838#line 3556 "third_party/libpg_query/grammar/statements/select.y"
26839 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
26840 break;
26841
26842 case 1120:
26843#line 3559 "third_party/libpg_query/grammar/statements/select.y"
26844 { (yyval.list) = lappend(list: (yyvsp[(3) - (3)].list), datum: (yyvsp[(1) - (3)].node)); ;}
26845 break;
26846
26847 case 1121:
26848#line 3560 "third_party/libpg_query/grammar/statements/select.y"
26849 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
26850 break;
26851
26852 case 1122:
26853#line 3561 "third_party/libpg_query/grammar/statements/select.y"
26854 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
26855 break;
26856
26857 case 1123:
26858#line 3565 "third_party/libpg_query/grammar/statements/select.y"
26859 {
26860 PGSubLink *n = makeNode(PGSubLink);
26861 n->subselect = (yyvsp[(1) - (1)].node);
26862 /* other fields will be filled later */
26863 (yyval.node) = (PGNode *)n;
26864 ;}
26865 break;
26866
26867 case 1124:
26868#line 3571 "third_party/libpg_query/grammar/statements/select.y"
26869 { (yyval.node) = (PGNode *)(yyvsp[(2) - (3)].list); ;}
26870 break;
26871
26872 case 1125:
26873#line 3582 "third_party/libpg_query/grammar/statements/select.y"
26874 {
26875 PGCaseExpr *c = makeNode(PGCaseExpr);
26876 c->casetype = InvalidOid; /* not analyzed yet */
26877 c->arg = (PGExpr *) (yyvsp[(2) - (5)].node);
26878 c->args = (yyvsp[(3) - (5)].list);
26879 c->defresult = (PGExpr *) (yyvsp[(4) - (5)].node);
26880 c->location = (yylsp[(1) - (5)]);
26881 (yyval.node) = (PGNode *)c;
26882 ;}
26883 break;
26884
26885 case 1126:
26886#line 3595 "third_party/libpg_query/grammar/statements/select.y"
26887 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
26888 break;
26889
26890 case 1127:
26891#line 3596 "third_party/libpg_query/grammar/statements/select.y"
26892 { (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].node)); ;}
26893 break;
26894
26895 case 1128:
26896#line 3601 "third_party/libpg_query/grammar/statements/select.y"
26897 {
26898 PGCaseWhen *w = makeNode(PGCaseWhen);
26899 w->expr = (PGExpr *) (yyvsp[(2) - (4)].node);
26900 w->result = (PGExpr *) (yyvsp[(4) - (4)].node);
26901 w->location = (yylsp[(1) - (4)]);
26902 (yyval.node) = (PGNode *)w;
26903 ;}
26904 break;
26905
26906 case 1129:
26907#line 3611 "third_party/libpg_query/grammar/statements/select.y"
26908 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
26909 break;
26910
26911 case 1130:
26912#line 3612 "third_party/libpg_query/grammar/statements/select.y"
26913 { (yyval.node) = NULL; ;}
26914 break;
26915
26916 case 1131:
26917#line 3615 "third_party/libpg_query/grammar/statements/select.y"
26918 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
26919 break;
26920
26921 case 1132:
26922#line 3616 "third_party/libpg_query/grammar/statements/select.y"
26923 { (yyval.node) = NULL; ;}
26924 break;
26925
26926 case 1133:
26927#line 3620 "third_party/libpg_query/grammar/statements/select.y"
26928 {
26929 (yyval.node) = makeColumnRef(colname: (yyvsp[(1) - (1)].str), NIL, location: (yylsp[(1) - (1)]), yyscanner);
26930 ;}
26931 break;
26932
26933 case 1134:
26934#line 3624 "third_party/libpg_query/grammar/statements/select.y"
26935 {
26936 (yyval.node) = makeColumnRef(colname: (yyvsp[(1) - (2)].str), indirection: (yyvsp[(2) - (2)].list), location: (yylsp[(1) - (2)]), yyscanner);
26937 ;}
26938 break;
26939
26940 case 1135:
26941#line 3631 "third_party/libpg_query/grammar/statements/select.y"
26942 {
26943 PGAIndices *ai = makeNode(PGAIndices);
26944 ai->is_slice = false;
26945 ai->lidx = NULL;
26946 ai->uidx = (yyvsp[(2) - (3)].node);
26947 (yyval.node) = (PGNode *) ai;
26948 ;}
26949 break;
26950
26951 case 1136:
26952#line 3639 "third_party/libpg_query/grammar/statements/select.y"
26953 {
26954 PGAIndices *ai = makeNode(PGAIndices);
26955 ai->is_slice = true;
26956 ai->lidx = (yyvsp[(2) - (5)].node);
26957 ai->uidx = (yyvsp[(4) - (5)].node);
26958 (yyval.node) = (PGNode *) ai;
26959 ;}
26960 break;
26961
26962 case 1137:
26963#line 3649 "third_party/libpg_query/grammar/statements/select.y"
26964 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
26965 break;
26966
26967 case 1138:
26968#line 3650 "third_party/libpg_query/grammar/statements/select.y"
26969 { (yyval.node) = NULL; ;}
26970 break;
26971
26972 case 1139:
26973#line 3655 "third_party/libpg_query/grammar/statements/select.y"
26974 { (yyval.list) = NIL; ;}
26975 break;
26976
26977 case 1140:
26978#line 3656 "third_party/libpg_query/grammar/statements/select.y"
26979 { (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].node)); ;}
26980 break;
26981
26982 case 1141:
26983#line 3660 "third_party/libpg_query/grammar/statements/select.y"
26984 { (yyval.list) = NULL; ;}
26985 break;
26986
26987 case 1142:
26988#line 3661 "third_party/libpg_query/grammar/statements/select.y"
26989 { (yyval.list) = list_make1(NULL); ;}
26990 break;
26991
26992 case 1143:
26993#line 3662 "third_party/libpg_query/grammar/statements/select.y"
26994 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
26995 break;
26996
26997 case 1144:
26998#line 3667 "third_party/libpg_query/grammar/statements/select.y"
26999 {
27000 if ((yyvsp[(3) - (3)].list)) {
27001 PGFuncCall *n = makeFuncCall(list_make1(makeString((yyvsp[(2) - (3)].str))), args: (yyvsp[(3) - (3)].list)->head->data.ptr_value ? (yyvsp[(3) - (3)].list) : NULL, location: (yylsp[(2) - (3)]));
27002 (yyval.node) = (PGNode *) n;
27003 } else {
27004 (yyval.node) = (PGNode *) makeString(str: (yyvsp[(2) - (3)].str));
27005 }
27006 ;}
27007 break;
27008
27009 case 1145:
27010#line 3676 "third_party/libpg_query/grammar/statements/select.y"
27011 {
27012 PGAIndices *ai = makeNode(PGAIndices);
27013 ai->is_slice = false;
27014 ai->lidx = NULL;
27015 ai->uidx = (yyvsp[(2) - (3)].node);
27016 (yyval.node) = (PGNode *) ai;
27017 ;}
27018 break;
27019
27020 case 1146:
27021#line 3684 "third_party/libpg_query/grammar/statements/select.y"
27022 {
27023 PGAIndices *ai = makeNode(PGAIndices);
27024 ai->is_slice = true;
27025 ai->lidx = (yyvsp[(2) - (5)].node);
27026 ai->uidx = (yyvsp[(4) - (5)].node);
27027 (yyval.node) = (PGNode *) ai;
27028 ;}
27029 break;
27030
27031 case 1147:
27032#line 3699 "third_party/libpg_query/grammar/statements/select.y"
27033 { (yyval.list) = NIL; ;}
27034 break;
27035
27036 case 1148:
27037#line 3700 "third_party/libpg_query/grammar/statements/select.y"
27038 { (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].node)); ;}
27039 break;
27040
27041 case 1151:
27042#line 3716 "third_party/libpg_query/grammar/statements/select.y"
27043 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
27044 break;
27045
27046 case 1152:
27047#line 3717 "third_party/libpg_query/grammar/statements/select.y"
27048 { (yyval.list) = NIL; ;}
27049 break;
27050
27051 case 1153:
27052#line 3721 "third_party/libpg_query/grammar/statements/select.y"
27053 { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
27054 break;
27055
27056 case 1154:
27057#line 3722 "third_party/libpg_query/grammar/statements/select.y"
27058 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].target)); ;}
27059 break;
27060
27061 case 1155:
27062#line 3726 "third_party/libpg_query/grammar/statements/select.y"
27063 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
27064 break;
27065
27066 case 1156:
27067#line 3727 "third_party/libpg_query/grammar/statements/select.y"
27068 { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
27069 break;
27070
27071 case 1157:
27072#line 3731 "third_party/libpg_query/grammar/statements/select.y"
27073 {
27074 (yyval.target) = makeNode(PGResTarget);
27075 (yyval.target)->name = (yyvsp[(3) - (3)].str);
27076 (yyval.target)->indirection = NIL;
27077 (yyval.target)->val = (PGNode *)(yyvsp[(1) - (3)].node);
27078 (yyval.target)->location = (yylsp[(1) - (3)]);
27079 ;}
27080 break;
27081
27082 case 1158:
27083#line 3747 "third_party/libpg_query/grammar/statements/select.y"
27084 {
27085 (yyval.target) = makeNode(PGResTarget);
27086 (yyval.target)->name = (yyvsp[(2) - (2)].str);
27087 (yyval.target)->indirection = NIL;
27088 (yyval.target)->val = (PGNode *)(yyvsp[(1) - (2)].node);
27089 (yyval.target)->location = (yylsp[(1) - (2)]);
27090 ;}
27091 break;
27092
27093 case 1159:
27094#line 3755 "third_party/libpg_query/grammar/statements/select.y"
27095 {
27096 (yyval.target) = makeNode(PGResTarget);
27097 (yyval.target)->name = NULL;
27098 (yyval.target)->indirection = NIL;
27099 (yyval.target)->val = (PGNode *)(yyvsp[(1) - (1)].node);
27100 (yyval.target)->location = (yylsp[(1) - (1)]);
27101 ;}
27102 break;
27103
27104 case 1160:
27105#line 3764 "third_party/libpg_query/grammar/statements/select.y"
27106 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
27107 break;
27108
27109 case 1161:
27110#line 3765 "third_party/libpg_query/grammar/statements/select.y"
27111 { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;}
27112 break;
27113
27114 case 1162:
27115#line 3768 "third_party/libpg_query/grammar/statements/select.y"
27116 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
27117 break;
27118
27119 case 1163:
27120#line 3769 "third_party/libpg_query/grammar/statements/select.y"
27121 { (yyval.list) = NULL; ;}
27122 break;
27123
27124 case 1164:
27125#line 3772 "third_party/libpg_query/grammar/statements/select.y"
27126 { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), makeString((yyvsp[(3) - (3)].str))); ;}
27127 break;
27128
27129 case 1165:
27130#line 3776 "third_party/libpg_query/grammar/statements/select.y"
27131 { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
27132 break;
27133
27134 case 1166:
27135#line 3777 "third_party/libpg_query/grammar/statements/select.y"
27136 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].list)); ;}
27137 break;
27138
27139 case 1167:
27140#line 3781 "third_party/libpg_query/grammar/statements/select.y"
27141 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
27142 break;
27143
27144 case 1168:
27145#line 3782 "third_party/libpg_query/grammar/statements/select.y"
27146 { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
27147 break;
27148
27149 case 1169:
27150#line 3785 "third_party/libpg_query/grammar/statements/select.y"
27151 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
27152 break;
27153
27154 case 1170:
27155#line 3786 "third_party/libpg_query/grammar/statements/select.y"
27156 { (yyval.list) = list_make1((yyvsp[(2) - (2)].list)); ;}
27157 break;
27158
27159 case 1171:
27160#line 3787 "third_party/libpg_query/grammar/statements/select.y"
27161 { (yyval.list) = NULL; ;}
27162 break;
27163
27164 case 1172:
27165#line 3797 "third_party/libpg_query/grammar/statements/select.y"
27166 { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;}
27167 break;
27168
27169 case 1173:
27170#line 3798 "third_party/libpg_query/grammar/statements/select.y"
27171 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].range)); ;}
27172 break;
27173
27174 case 1174:
27175#line 3803 "third_party/libpg_query/grammar/statements/select.y"
27176 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
27177 break;
27178
27179 case 1175:
27180#line 3805 "third_party/libpg_query/grammar/statements/select.y"
27181 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: makeString(str: (yyvsp[(3) - (3)].str))); ;}
27182 break;
27183
27184 case 1176:
27185#line 3810 "third_party/libpg_query/grammar/statements/select.y"
27186 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
27187 break;
27188
27189 case 1177:
27190#line 3811 "third_party/libpg_query/grammar/statements/select.y"
27191 { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
27192 break;
27193
27194 case 1178:
27195#line 3815 "third_party/libpg_query/grammar/statements/select.y"
27196 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
27197 break;
27198
27199 case 1179:
27200#line 3816 "third_party/libpg_query/grammar/statements/select.y"
27201 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
27202 break;
27203
27204 case 1180:
27205#line 3819 "third_party/libpg_query/grammar/statements/select.y"
27206 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27207 break;
27208
27209 case 1181:
27210#line 3831 "third_party/libpg_query/grammar/statements/select.y"
27211 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
27212 break;
27213
27214 case 1182:
27215#line 3834 "third_party/libpg_query/grammar/statements/select.y"
27216 {
27217 (yyval.list) = check_func_name(names: lcons(datum: makeString(str: (yyvsp[(1) - (2)].str)), list: (yyvsp[(2) - (2)].list)),
27218 yyscanner);
27219 ;}
27220 break;
27221
27222 case 1183:
27223#line 3845 "third_party/libpg_query/grammar/statements/select.y"
27224 {
27225 (yyval.node) = makeIntConst(val: (yyvsp[(1) - (1)].ival), location: (yylsp[(1) - (1)]));
27226 ;}
27227 break;
27228
27229 case 1184:
27230#line 3849 "third_party/libpg_query/grammar/statements/select.y"
27231 {
27232 (yyval.node) = makeFloatConst(str: (yyvsp[(1) - (1)].str), location: (yylsp[(1) - (1)]));
27233 ;}
27234 break;
27235
27236 case 1185:
27237#line 3853 "third_party/libpg_query/grammar/statements/select.y"
27238 {
27239 if ((yyvsp[(2) - (2)].list))
27240 {
27241 PGAIndirection *n = makeNode(PGAIndirection);
27242 n->arg = makeStringConst(str: (yyvsp[(1) - (2)].str), location: (yylsp[(1) - (2)]));
27243 n->indirection = check_indirection(indirection: (yyvsp[(2) - (2)].list), yyscanner);
27244 (yyval.node) = (PGNode *) n;
27245 }
27246 else
27247 (yyval.node) = makeStringConst(str: (yyvsp[(1) - (2)].str), location: (yylsp[(1) - (2)]));
27248 ;}
27249 break;
27250
27251 case 1186:
27252#line 3865 "third_party/libpg_query/grammar/statements/select.y"
27253 {
27254 (yyval.node) = makeBitStringConst(str: (yyvsp[(1) - (1)].str), location: (yylsp[(1) - (1)]));
27255 ;}
27256 break;
27257
27258 case 1187:
27259#line 3869 "third_party/libpg_query/grammar/statements/select.y"
27260 {
27261 /* This is a bit constant per SQL99:
27262 * Without Feature F511, "BIT data type",
27263 * a <general literal> shall not be a
27264 * <bit string literal> or a <hex string literal>.
27265 */
27266 (yyval.node) = makeBitStringConst(str: (yyvsp[(1) - (1)].str), location: (yylsp[(1) - (1)]));
27267 ;}
27268 break;
27269
27270 case 1188:
27271#line 3878 "third_party/libpg_query/grammar/statements/select.y"
27272 {
27273 /* generic type 'literal' syntax */
27274 PGTypeName *t = makeTypeNameFromNameList(names: (yyvsp[(1) - (2)].list));
27275 t->location = (yylsp[(1) - (2)]);
27276 (yyval.node) = makeStringConstCast(str: (yyvsp[(2) - (2)].str), location: (yylsp[(2) - (2)]), tpname: t);
27277 ;}
27278 break;
27279
27280 case 1189:
27281#line 3885 "third_party/libpg_query/grammar/statements/select.y"
27282 {
27283 /* generic syntax with a type modifier */
27284 PGTypeName *t = makeTypeNameFromNameList(names: (yyvsp[(1) - (7)].list));
27285 PGListCell *lc;
27286
27287 /*
27288 * We must use func_arg_list and opt_sort_clause in the
27289 * production to avoid reduce/reduce conflicts, but we
27290 * don't actually wish to allow PGNamedArgExpr in this
27291 * context, ORDER BY, nor IGNORE NULLS.
27292 */
27293 foreach(lc, (yyvsp[(3) - (7)].list))
27294 {
27295 PGNamedArgExpr *arg = (PGNamedArgExpr *) lfirst(lc);
27296
27297 if (IsA(arg, PGNamedArgExpr))
27298 ereport(code: ERROR,
27299 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
27300 errmsg(fmt: "type modifier cannot have parameter name"),
27301 parser_errposition(arg->location)));
27302 }
27303 if ((yyvsp[(4) - (7)].list) != NIL)
27304 ereport(code: ERROR,
27305 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
27306 errmsg(fmt: "type modifier cannot have ORDER BY"),
27307 parser_errposition((yylsp[(4) - (7)]))));
27308 if ((yyvsp[(5) - (7)].boolean) != false)
27309 ereport(code: ERROR,
27310 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
27311 errmsg(fmt: "type modifier cannot have IGNORE NULLS"),
27312 parser_errposition((yylsp[(5) - (7)]))));
27313
27314
27315 t->typmods = (yyvsp[(3) - (7)].list);
27316 t->location = (yylsp[(1) - (7)]);
27317 (yyval.node) = makeStringConstCast(str: (yyvsp[(7) - (7)].str), location: (yylsp[(7) - (7)]), tpname: t);
27318 ;}
27319 break;
27320
27321 case 1190:
27322#line 3923 "third_party/libpg_query/grammar/statements/select.y"
27323 {
27324 (yyval.node) = makeStringConstCast(str: (yyvsp[(2) - (2)].str), location: (yylsp[(2) - (2)]), tpname: (yyvsp[(1) - (2)].typnam));
27325 ;}
27326 break;
27327
27328 case 1191:
27329#line 3927 "third_party/libpg_query/grammar/statements/select.y"
27330 {
27331 (yyval.node) = makeIntervalNode(arg: (yyvsp[(3) - (5)].node), location: (yylsp[(3) - (5)]), typmods: (yyvsp[(5) - (5)].list));
27332 ;}
27333 break;
27334
27335 case 1192:
27336#line 3931 "third_party/libpg_query/grammar/statements/select.y"
27337 {
27338 (yyval.node) = makeIntervalNode(val: (yyvsp[(2) - (3)].ival), location: (yylsp[(2) - (3)]), typmods: (yyvsp[(3) - (3)].list));
27339 ;}
27340 break;
27341
27342 case 1193:
27343#line 3935 "third_party/libpg_query/grammar/statements/select.y"
27344 {
27345 (yyval.node) = makeIntervalNode(str: (yyvsp[(2) - (3)].str), location: (yylsp[(2) - (3)]), typmods: (yyvsp[(3) - (3)].list));
27346 ;}
27347 break;
27348
27349 case 1194:
27350#line 3939 "third_party/libpg_query/grammar/statements/select.y"
27351 {
27352 (yyval.node) = makeBoolAConst(state: true, location: (yylsp[(1) - (1)]));
27353 ;}
27354 break;
27355
27356 case 1195:
27357#line 3943 "third_party/libpg_query/grammar/statements/select.y"
27358 {
27359 (yyval.node) = makeBoolAConst(state: false, location: (yylsp[(1) - (1)]));
27360 ;}
27361 break;
27362
27363 case 1196:
27364#line 3947 "third_party/libpg_query/grammar/statements/select.y"
27365 {
27366 (yyval.node) = makeNullAConst(location: (yylsp[(1) - (1)]));
27367 ;}
27368 break;
27369
27370 case 1197:
27371#line 3952 "third_party/libpg_query/grammar/statements/select.y"
27372 { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
27373 break;
27374
27375 case 1198:
27376#line 3969 "third_party/libpg_query/grammar/statements/select.y"
27377 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27378 break;
27379
27380 case 1199:
27381#line 3970 "third_party/libpg_query/grammar/statements/select.y"
27382 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
27383 break;
27384
27385 case 1200:
27386#line 3971 "third_party/libpg_query/grammar/statements/select.y"
27387 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
27388 break;
27389
27390 case 1201:
27391#line 3974 "third_party/libpg_query/grammar/statements/select.y"
27392 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27393 break;
27394
27395 case 1202:
27396#line 3975 "third_party/libpg_query/grammar/statements/select.y"
27397 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
27398 break;
27399
27400 case 1203:
27401#line 3976 "third_party/libpg_query/grammar/statements/select.y"
27402 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
27403 break;
27404
27405 case 1204:
27406#line 3979 "third_party/libpg_query/grammar/statements/select.y"
27407 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27408 break;
27409
27410 case 1205:
27411#line 3980 "third_party/libpg_query/grammar/statements/select.y"
27412 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
27413 break;
27414
27415 case 1206:
27416#line 3981 "third_party/libpg_query/grammar/statements/select.y"
27417 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
27418 break;
27419
27420 case 1207:
27421#line 3984 "third_party/libpg_query/grammar/statements/select.y"
27422 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
27423 break;
27424
27425 case 1208:
27426#line 3985 "third_party/libpg_query/grammar/statements/select.y"
27427 { (yyval.list) = lcons(datum: makeString(str: (yyvsp[(1) - (2)].str)), list: (yyvsp[(2) - (2)].list)); ;}
27428 break;
27429
27430 case 1209:
27431#line 3989 "third_party/libpg_query/grammar/statements/select.y"
27432 { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;}
27433 break;
27434
27435 case 1210:
27436#line 3991 "third_party/libpg_query/grammar/statements/select.y"
27437 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: makeString(str: (yyvsp[(3) - (3)].str))); ;}
27438 break;
27439
27440 case 1211:
27441#line 3995 "third_party/libpg_query/grammar/statements/select.y"
27442 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
27443 break;
27444
27445 case 1212:
27446#line 3996 "third_party/libpg_query/grammar/statements/select.y"
27447 { (yyval.list) = NIL; ;}
27448 break;
27449
27450 case 1214:
27451#line 4003 "third_party/libpg_query/grammar/statements/select.y"
27452 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27453 break;
27454
27455 case 1215:
27456#line 4004 "third_party/libpg_query/grammar/statements/select.y"
27457 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27458 break;
27459
27460 case 1216:
27461#line 8 "third_party/libpg_query/grammar/statements/prepare.y"
27462 {
27463 PGPrepareStmt *n = makeNode(PGPrepareStmt);
27464 n->name = (yyvsp[(2) - (5)].str);
27465 n->argtypes = (yyvsp[(3) - (5)].list);
27466 n->query = (yyvsp[(5) - (5)].node);
27467 (yyval.node) = (PGNode *) n;
27468 ;}
27469 break;
27470
27471 case 1217:
27472#line 18 "third_party/libpg_query/grammar/statements/prepare.y"
27473 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
27474 break;
27475
27476 case 1218:
27477#line 19 "third_party/libpg_query/grammar/statements/prepare.y"
27478 { (yyval.list) = NIL; ;}
27479 break;
27480
27481 case 1224:
27482#line 8 "third_party/libpg_query/grammar/statements/create_schema.y"
27483 {
27484 PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt);
27485 if ((yyvsp[(3) - (4)].range)->catalogname) {
27486 ereport(code: ERROR,
27487 (errcode(sqlerrcode: PG_ERRCODE_FEATURE_NOT_SUPPORTED),
27488 errmsg(fmt: "CREATE SCHEMA too many dots: expected \"catalog.schema\" or \"schema\""),
27489 parser_errposition((yylsp[(3) - (4)]))));
27490 }
27491 if ((yyvsp[(3) - (4)].range)->schemaname) {
27492 n->catalogname = (yyvsp[(3) - (4)].range)->schemaname;
27493 n->schemaname = (yyvsp[(3) - (4)].range)->relname;
27494 } else {
27495 n->schemaname = (yyvsp[(3) - (4)].range)->relname;
27496 }
27497 n->schemaElts = (yyvsp[(4) - (4)].list);
27498 n->onconflict = PG_ERROR_ON_CONFLICT;
27499 (yyval.node) = (PGNode *)n;
27500 ;}
27501 break;
27502
27503 case 1225:
27504#line 27 "third_party/libpg_query/grammar/statements/create_schema.y"
27505 {
27506 PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt);
27507 if ((yyvsp[(6) - (7)].range)->catalogname) {
27508 ereport(code: ERROR,
27509 (errcode(sqlerrcode: PG_ERRCODE_FEATURE_NOT_SUPPORTED),
27510 errmsg(fmt: "CREATE SCHEMA too many dots: expected \"catalog.schema\" or \"schema\""),
27511 parser_errposition((yylsp[(6) - (7)]))));
27512 }
27513 if ((yyvsp[(6) - (7)].range)->schemaname) {
27514 n->catalogname = (yyvsp[(6) - (7)].range)->schemaname;
27515 n->schemaname = (yyvsp[(6) - (7)].range)->relname;
27516 } else {
27517 n->schemaname = (yyvsp[(6) - (7)].range)->relname;
27518 }
27519 if ((yyvsp[(7) - (7)].list) != NIL)
27520 ereport(code: ERROR,
27521 (errcode(sqlerrcode: PG_ERRCODE_FEATURE_NOT_SUPPORTED),
27522 errmsg(fmt: "CREATE SCHEMA IF NOT EXISTS cannot include schema elements"),
27523 parser_errposition((yylsp[(7) - (7)]))));
27524 n->schemaElts = (yyvsp[(7) - (7)].list);
27525 n->onconflict = PG_IGNORE_ON_CONFLICT;
27526 (yyval.node) = (PGNode *)n;
27527 ;}
27528 break;
27529
27530 case 1226:
27531#line 51 "third_party/libpg_query/grammar/statements/create_schema.y"
27532 {
27533 PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt);
27534 if ((yyvsp[(5) - (6)].range)->catalogname) {
27535 ereport(code: ERROR,
27536 (errcode(sqlerrcode: PG_ERRCODE_FEATURE_NOT_SUPPORTED),
27537 errmsg(fmt: "CREATE SCHEMA too many dots: expected \"catalog.schema\" or \"schema\""),
27538 parser_errposition((yylsp[(5) - (6)]))));
27539 }
27540 if ((yyvsp[(5) - (6)].range)->schemaname) {
27541 n->catalogname = (yyvsp[(5) - (6)].range)->schemaname;
27542 n->schemaname = (yyvsp[(5) - (6)].range)->relname;
27543 } else {
27544 n->schemaname = (yyvsp[(5) - (6)].range)->relname;
27545 }
27546 n->schemaElts = (yyvsp[(6) - (6)].list);
27547 n->onconflict = PG_REPLACE_ON_CONFLICT;
27548 (yyval.node) = (PGNode *)n;
27549 ;}
27550 break;
27551
27552 case 1227:
27553#line 74 "third_party/libpg_query/grammar/statements/create_schema.y"
27554 {
27555 if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */
27556 (yyloc) = (yylsp[(2) - (2)]);
27557 (yyval.list) = lappend(list: (yyvsp[(1) - (2)].list), datum: (yyvsp[(2) - (2)].node));
27558 ;}
27559 break;
27560
27561 case 1228:
27562#line 80 "third_party/libpg_query/grammar/statements/create_schema.y"
27563 { (yyval.list) = NIL; ;}
27564 break;
27565
27566 case 1233:
27567#line 11 "third_party/libpg_query/grammar/statements/index.y"
27568 {
27569 PGIndexStmt *n = makeNode(PGIndexStmt);
27570 n->unique = (yyvsp[(2) - (13)].boolean);
27571 n->concurrent = (yyvsp[(4) - (13)].boolean);
27572 n->idxname = (yyvsp[(5) - (13)].str);
27573 n->relation = (yyvsp[(7) - (13)].range);
27574 n->accessMethod = (yyvsp[(8) - (13)].str);
27575 n->indexParams = (yyvsp[(10) - (13)].list);
27576 n->options = (yyvsp[(12) - (13)].list);
27577 n->whereClause = (yyvsp[(13) - (13)].node);
27578 n->excludeOpNames = NIL;
27579 n->idxcomment = NULL;
27580 n->indexOid = InvalidOid;
27581 n->oldNode = InvalidOid;
27582 n->primary = false;
27583 n->isconstraint = false;
27584 n->deferrable = false;
27585 n->initdeferred = false;
27586 n->transformed = false;
27587 n->onconflict = PG_ERROR_ON_CONFLICT;
27588 (yyval.node) = (PGNode *)n;
27589 ;}
27590 break;
27591
27592 case 1234:
27593#line 36 "third_party/libpg_query/grammar/statements/index.y"
27594 {
27595 PGIndexStmt *n = makeNode(PGIndexStmt);
27596 n->unique = (yyvsp[(2) - (16)].boolean);
27597 n->concurrent = (yyvsp[(4) - (16)].boolean);
27598 n->idxname = (yyvsp[(8) - (16)].str);
27599 n->relation = (yyvsp[(10) - (16)].range);
27600 n->accessMethod = (yyvsp[(11) - (16)].str);
27601 n->indexParams = (yyvsp[(13) - (16)].list);
27602 n->options = (yyvsp[(15) - (16)].list);
27603 n->whereClause = (yyvsp[(16) - (16)].node);
27604 n->excludeOpNames = NIL;
27605 n->idxcomment = NULL;
27606 n->indexOid = InvalidOid;
27607 n->oldNode = InvalidOid;
27608 n->primary = false;
27609 n->isconstraint = false;
27610 n->deferrable = false;
27611 n->initdeferred = false;
27612 n->transformed = false;
27613 n->onconflict = PG_IGNORE_ON_CONFLICT;
27614 (yyval.node) = (PGNode *)n;
27615 ;}
27616 break;
27617
27618 case 1235:
27619#line 62 "third_party/libpg_query/grammar/statements/index.y"
27620 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27621 break;
27622
27623 case 1236:
27624#line 66 "third_party/libpg_query/grammar/statements/index.y"
27625 { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
27626 break;
27627
27628 case 1237:
27629#line 67 "third_party/libpg_query/grammar/statements/index.y"
27630 { (yyval.str) = (char*) DEFAULT_INDEX_TYPE; ;}
27631 break;
27632
27633 case 1238:
27634#line 72 "third_party/libpg_query/grammar/statements/index.y"
27635 { (yyval.boolean) = true; ;}
27636 break;
27637
27638 case 1239:
27639#line 73 "third_party/libpg_query/grammar/statements/index.y"
27640 { (yyval.boolean) = false; ;}
27641 break;
27642
27643 case 1240:
27644#line 78 "third_party/libpg_query/grammar/statements/index.y"
27645 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27646 break;
27647
27648 case 1241:
27649#line 79 "third_party/libpg_query/grammar/statements/index.y"
27650 { (yyval.str) = NULL; ;}
27651 break;
27652
27653 case 1242:
27654#line 83 "third_party/libpg_query/grammar/statements/index.y"
27655 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
27656 break;
27657
27658 case 1243:
27659#line 84 "third_party/libpg_query/grammar/statements/index.y"
27660 { (yyval.list) = NIL; ;}
27661 break;
27662
27663 case 1244:
27664#line 89 "third_party/libpg_query/grammar/statements/index.y"
27665 { (yyval.boolean) = true; ;}
27666 break;
27667
27668 case 1245:
27669#line 90 "third_party/libpg_query/grammar/statements/index.y"
27670 { (yyval.boolean) = false; ;}
27671 break;
27672
27673 case 1246:
27674#line 8 "third_party/libpg_query/grammar/statements/alter_schema.y"
27675 {
27676 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
27677 n->objectType = PG_OBJECT_TABLE;
27678 n->relation = (yyvsp[(3) - (6)].range);
27679 n->newschema = (yyvsp[(6) - (6)].str);
27680 n->missing_ok = false;
27681 (yyval.node) = (PGNode *)n;
27682 ;}
27683 break;
27684
27685 case 1247:
27686#line 17 "third_party/libpg_query/grammar/statements/alter_schema.y"
27687 {
27688 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
27689 n->objectType = PG_OBJECT_TABLE;
27690 n->relation = (yyvsp[(5) - (8)].range);
27691 n->newschema = (yyvsp[(8) - (8)].str);
27692 n->missing_ok = true;
27693 (yyval.node) = (PGNode *)n;
27694 ;}
27695 break;
27696
27697 case 1248:
27698#line 26 "third_party/libpg_query/grammar/statements/alter_schema.y"
27699 {
27700 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
27701 n->objectType = PG_OBJECT_SEQUENCE;
27702 n->relation = (yyvsp[(3) - (6)].range);
27703 n->newschema = (yyvsp[(6) - (6)].str);
27704 n->missing_ok = false;
27705 (yyval.node) = (PGNode *)n;
27706 ;}
27707 break;
27708
27709 case 1249:
27710#line 35 "third_party/libpg_query/grammar/statements/alter_schema.y"
27711 {
27712 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
27713 n->objectType = PG_OBJECT_SEQUENCE;
27714 n->relation = (yyvsp[(5) - (8)].range);
27715 n->newschema = (yyvsp[(8) - (8)].str);
27716 n->missing_ok = true;
27717 (yyval.node) = (PGNode *)n;
27718 ;}
27719 break;
27720
27721 case 1250:
27722#line 44 "third_party/libpg_query/grammar/statements/alter_schema.y"
27723 {
27724 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
27725 n->objectType = PG_OBJECT_VIEW;
27726 n->relation = (yyvsp[(3) - (6)].range);
27727 n->newschema = (yyvsp[(6) - (6)].str);
27728 n->missing_ok = false;
27729 (yyval.node) = (PGNode *)n;
27730 ;}
27731 break;
27732
27733 case 1251:
27734#line 53 "third_party/libpg_query/grammar/statements/alter_schema.y"
27735 {
27736 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
27737 n->objectType = PG_OBJECT_VIEW;
27738 n->relation = (yyvsp[(5) - (8)].range);
27739 n->newschema = (yyvsp[(8) - (8)].str);
27740 n->missing_ok = true;
27741 (yyval.node) = (PGNode *)n;
27742 ;}
27743 break;
27744
27745 case 1252:
27746#line 6 "third_party/libpg_query/grammar/statements/checkpoint.y"
27747 {
27748 PGCheckPointStmt *n = makeNode(PGCheckPointStmt);
27749 n->force = true;
27750 n->name = (yyvsp[(3) - (3)].str);
27751 (yyval.node) = (PGNode *)n;
27752 ;}
27753 break;
27754
27755 case 1253:
27756#line 13 "third_party/libpg_query/grammar/statements/checkpoint.y"
27757 {
27758 PGCheckPointStmt *n = makeNode(PGCheckPointStmt);
27759 n->force = false;
27760 n->name = (yyvsp[(2) - (2)].str);
27761 (yyval.node) = (PGNode *)n;
27762 ;}
27763 break;
27764
27765 case 1254:
27766#line 22 "third_party/libpg_query/grammar/statements/checkpoint.y"
27767 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27768 break;
27769
27770 case 1255:
27771#line 23 "third_party/libpg_query/grammar/statements/checkpoint.y"
27772 { (yyval.str) = NULL; ;}
27773 break;
27774
27775 case 1256:
27776#line 8 "third_party/libpg_query/grammar/statements/export.y"
27777 {
27778 PGExportStmt *n = makeNode(PGExportStmt);
27779 n->database = NULL;
27780 n->filename = (yyvsp[(3) - (4)].str);
27781 n->options = NIL;
27782 if ((yyvsp[(4) - (4)].list)) {
27783 n->options = list_concat(list1: n->options, list2: (yyvsp[(4) - (4)].list));
27784 }
27785 (yyval.node) = (PGNode *)n;
27786 ;}
27787 break;
27788
27789 case 1257:
27790#line 20 "third_party/libpg_query/grammar/statements/export.y"
27791 {
27792 PGExportStmt *n = makeNode(PGExportStmt);
27793 n->database = (yyvsp[(3) - (6)].str);
27794 n->filename = (yyvsp[(5) - (6)].str);
27795 n->options = NIL;
27796 if ((yyvsp[(6) - (6)].list)) {
27797 n->options = list_concat(list1: n->options, list2: (yyvsp[(6) - (6)].list));
27798 }
27799 (yyval.node) = (PGNode *)n;
27800 ;}
27801 break;
27802
27803 case 1258:
27804#line 34 "third_party/libpg_query/grammar/statements/export.y"
27805 {
27806 PGImportStmt *n = makeNode(PGImportStmt);
27807 n->filename = (yyvsp[(3) - (3)].str);
27808 (yyval.node) = (PGNode *)n;
27809 ;}
27810 break;
27811
27812 case 1259:
27813#line 10 "third_party/libpg_query/grammar/statements/explain.y"
27814 {
27815 PGExplainStmt *n = makeNode(PGExplainStmt);
27816 n->query = (yyvsp[(2) - (2)].node);
27817 n->options = NIL;
27818 (yyval.node) = (PGNode *) n;
27819 ;}
27820 break;
27821
27822 case 1260:
27823#line 17 "third_party/libpg_query/grammar/statements/explain.y"
27824 {
27825 PGExplainStmt *n = makeNode(PGExplainStmt);
27826 n->query = (yyvsp[(4) - (4)].node);
27827 n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[(2) - (4)])));
27828 if ((yyvsp[(3) - (4)].boolean))
27829 n->options = lappend(list: n->options,
27830 datum: makeDefElem(name: "verbose", NULL, location: (yylsp[(3) - (4)])));
27831 (yyval.node) = (PGNode *) n;
27832 ;}
27833 break;
27834
27835 case 1261:
27836#line 27 "third_party/libpg_query/grammar/statements/explain.y"
27837 {
27838 PGExplainStmt *n = makeNode(PGExplainStmt);
27839 n->query = (yyvsp[(3) - (3)].node);
27840 n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[(2) - (3)])));
27841 (yyval.node) = (PGNode *) n;
27842 ;}
27843 break;
27844
27845 case 1262:
27846#line 34 "third_party/libpg_query/grammar/statements/explain.y"
27847 {
27848 PGExplainStmt *n = makeNode(PGExplainStmt);
27849 n->query = (yyvsp[(5) - (5)].node);
27850 n->options = (yyvsp[(3) - (5)].list);
27851 (yyval.node) = (PGNode *) n;
27852 ;}
27853 break;
27854
27855 case 1263:
27856#line 44 "third_party/libpg_query/grammar/statements/explain.y"
27857 { (yyval.boolean) = true; ;}
27858 break;
27859
27860 case 1264:
27861#line 45 "third_party/libpg_query/grammar/statements/explain.y"
27862 { (yyval.boolean) = false; ;}
27863 break;
27864
27865 case 1265:
27866#line 50 "third_party/libpg_query/grammar/statements/explain.y"
27867 { (yyval.node) = (PGNode *) makeString(str: (yyvsp[(1) - (1)].str)); ;}
27868 break;
27869
27870 case 1266:
27871#line 51 "third_party/libpg_query/grammar/statements/explain.y"
27872 { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;}
27873 break;
27874
27875 case 1267:
27876#line 52 "third_party/libpg_query/grammar/statements/explain.y"
27877 { (yyval.node) = NULL; ;}
27878 break;
27879
27880 case 1298:
27881#line 90 "third_party/libpg_query/grammar/statements/explain.y"
27882 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27883 break;
27884
27885 case 1299:
27886#line 91 "third_party/libpg_query/grammar/statements/explain.y"
27887 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
27888 break;
27889
27890 case 1300:
27891#line 92 "third_party/libpg_query/grammar/statements/explain.y"
27892 { (yyval.str) = pstrdup(in: (yyvsp[(1) - (1)].keyword)); ;}
27893 break;
27894
27895 case 1301:
27896#line 97 "third_party/libpg_query/grammar/statements/explain.y"
27897 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27898 break;
27899
27900 case 1302:
27901#line 98 "third_party/libpg_query/grammar/statements/explain.y"
27902 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27903 break;
27904
27905 case 1303:
27906#line 104 "third_party/libpg_query/grammar/statements/explain.y"
27907 {
27908 (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
27909 ;}
27910 break;
27911
27912 case 1304:
27913#line 108 "third_party/libpg_query/grammar/statements/explain.y"
27914 {
27915 (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].defelt));
27916 ;}
27917 break;
27918
27919 case 1305:
27920#line 115 "third_party/libpg_query/grammar/statements/explain.y"
27921 {;}
27922 break;
27923
27924 case 1306:
27925#line 116 "third_party/libpg_query/grammar/statements/explain.y"
27926 {;}
27927 break;
27928
27929 case 1307:
27930#line 121 "third_party/libpg_query/grammar/statements/explain.y"
27931 { (yyval.str) = (char*) "true"; ;}
27932 break;
27933
27934 case 1308:
27935#line 122 "third_party/libpg_query/grammar/statements/explain.y"
27936 { (yyval.str) = (char*) "false"; ;}
27937 break;
27938
27939 case 1309:
27940#line 123 "third_party/libpg_query/grammar/statements/explain.y"
27941 { (yyval.str) = (char*) "on"; ;}
27942 break;
27943
27944 case 1310:
27945#line 129 "third_party/libpg_query/grammar/statements/explain.y"
27946 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27947 break;
27948
27949 case 1311:
27950#line 135 "third_party/libpg_query/grammar/statements/explain.y"
27951 {
27952 (yyval.defelt) = makeDefElem(name: (yyvsp[(1) - (2)].str), arg: (yyvsp[(2) - (2)].node), location: (yylsp[(1) - (2)]));
27953 ;}
27954 break;
27955
27956 case 1312:
27957#line 142 "third_party/libpg_query/grammar/statements/explain.y"
27958 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
27959 break;
27960
27961 case 1313:
27962#line 143 "third_party/libpg_query/grammar/statements/explain.y"
27963 { (yyval.str) = (char*) "analyze"; ;}
27964 break;
27965
27966 case 1314:
27967#line 11 "third_party/libpg_query/grammar/statements/variable_set.y"
27968 {
27969 PGVariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt);
27970 n->scope = VAR_SET_SCOPE_DEFAULT;
27971 (yyval.node) = (PGNode *) n;
27972 ;}
27973 break;
27974
27975 case 1315:
27976#line 17 "third_party/libpg_query/grammar/statements/variable_set.y"
27977 {
27978 PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
27979 n->scope = VAR_SET_SCOPE_LOCAL;
27980 (yyval.node) = (PGNode *) n;
27981 ;}
27982 break;
27983
27984 case 1316:
27985#line 23 "third_party/libpg_query/grammar/statements/variable_set.y"
27986 {
27987 PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
27988 n->scope = VAR_SET_SCOPE_SESSION;
27989 (yyval.node) = (PGNode *) n;
27990 ;}
27991 break;
27992
27993 case 1317:
27994#line 29 "third_party/libpg_query/grammar/statements/variable_set.y"
27995 {
27996 PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
27997 n->scope = VAR_SET_SCOPE_GLOBAL;
27998 (yyval.node) = (PGNode *) n;
27999 ;}
28000 break;
28001
28002 case 1318:
28003#line 38 "third_party/libpg_query/grammar/statements/variable_set.y"
28004 {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;}
28005 break;
28006
28007 case 1319:
28008#line 40 "third_party/libpg_query/grammar/statements/variable_set.y"
28009 {
28010 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
28011 n->kind = VAR_SET_CURRENT;
28012 n->name = (yyvsp[(1) - (3)].str);
28013 (yyval.vsetstmt) = n;
28014 ;}
28015 break;
28016
28017 case 1320:
28018#line 48 "third_party/libpg_query/grammar/statements/variable_set.y"
28019 {
28020 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
28021 n->kind = VAR_SET_VALUE;
28022 n->name = (char*) "timezone";
28023 if ((yyvsp[(3) - (3)].node) != NULL)
28024 n->args = list_make1((yyvsp[(3) - (3)].node));
28025 else
28026 n->kind = VAR_SET_DEFAULT;
28027 (yyval.vsetstmt) = n;
28028 ;}
28029 break;
28030
28031 case 1321:
28032#line 59 "third_party/libpg_query/grammar/statements/variable_set.y"
28033 {
28034 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
28035 n->kind = VAR_SET_VALUE;
28036 n->name = (char*) "search_path";
28037 n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])));
28038 (yyval.vsetstmt) = n;
28039 ;}
28040 break;
28041
28042 case 1322:
28043#line 71 "third_party/libpg_query/grammar/statements/variable_set.y"
28044 {
28045 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
28046 n->kind = VAR_SET_VALUE;
28047 n->name = (yyvsp[(1) - (3)].str);
28048 n->args = (yyvsp[(3) - (3)].list);
28049 (yyval.vsetstmt) = n;
28050 ;}
28051 break;
28052
28053 case 1323:
28054#line 79 "third_party/libpg_query/grammar/statements/variable_set.y"
28055 {
28056 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
28057 n->kind = VAR_SET_VALUE;
28058 n->name = (yyvsp[(1) - (3)].str);
28059 n->args = (yyvsp[(3) - (3)].list);
28060 (yyval.vsetstmt) = n;
28061 ;}
28062 break;
28063
28064 case 1324:
28065#line 87 "third_party/libpg_query/grammar/statements/variable_set.y"
28066 {
28067 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
28068 n->kind = VAR_SET_DEFAULT;
28069 n->name = (yyvsp[(1) - (3)].str);
28070 (yyval.vsetstmt) = n;
28071 ;}
28072 break;
28073
28074 case 1325:
28075#line 94 "third_party/libpg_query/grammar/statements/variable_set.y"
28076 {
28077 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
28078 n->kind = VAR_SET_DEFAULT;
28079 n->name = (yyvsp[(1) - (3)].str);
28080 (yyval.vsetstmt) = n;
28081 ;}
28082 break;
28083
28084 case 1326:
28085#line 104 "third_party/libpg_query/grammar/statements/variable_set.y"
28086 { (yyval.node) = makeStringConst(str: (yyvsp[(1) - (1)].str), location: (yylsp[(1) - (1)])); ;}
28087 break;
28088
28089 case 1327:
28090#line 106 "third_party/libpg_query/grammar/statements/variable_set.y"
28091 { (yyval.node) = makeAConst(v: (yyvsp[(1) - (1)].value), location: (yylsp[(1) - (1)])); ;}
28092 break;
28093
28094 case 1328:
28095#line 112 "third_party/libpg_query/grammar/statements/variable_set.y"
28096 {
28097 (yyval.node) = makeStringConst(str: (yyvsp[(1) - (1)].str), location: (yylsp[(1) - (1)]));
28098 ;}
28099 break;
28100
28101 case 1329:
28102#line 116 "third_party/libpg_query/grammar/statements/variable_set.y"
28103 {
28104 (yyval.node) = makeStringConst(str: (yyvsp[(1) - (1)].str), location: (yylsp[(1) - (1)]));
28105 ;}
28106 break;
28107
28108 case 1330:
28109#line 120 "third_party/libpg_query/grammar/statements/variable_set.y"
28110 {
28111 PGTypeName *t = (yyvsp[(1) - (3)].typnam);
28112 if ((yyvsp[(3) - (3)].list) != NIL)
28113 {
28114 PGAConst *n = (PGAConst *) linitial((yyvsp[(3) - (3)].list));
28115 if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0)
28116 ereport(code: ERROR,
28117 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
28118 errmsg(fmt: "time zone interval must be HOUR or HOUR TO MINUTE"),
28119 parser_errposition((yylsp[(3) - (3)]))));
28120 }
28121 t->typmods = (yyvsp[(3) - (3)].list);
28122 (yyval.node) = makeStringConstCast(str: (yyvsp[(2) - (3)].str), location: (yylsp[(2) - (3)]), tpname: t);
28123 ;}
28124 break;
28125
28126 case 1331:
28127#line 135 "third_party/libpg_query/grammar/statements/variable_set.y"
28128 {
28129 PGTypeName *t = (yyvsp[(1) - (5)].typnam);
28130 t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
28131 makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
28132 (yyval.node) = makeStringConstCast(str: (yyvsp[(5) - (5)].str), location: (yylsp[(5) - (5)]), tpname: t);
28133 ;}
28134 break;
28135
28136 case 1332:
28137#line 141 "third_party/libpg_query/grammar/statements/variable_set.y"
28138 { (yyval.node) = makeAConst(v: (yyvsp[(1) - (1)].value), location: (yylsp[(1) - (1)])); ;}
28139 break;
28140
28141 case 1333:
28142#line 142 "third_party/libpg_query/grammar/statements/variable_set.y"
28143 { (yyval.node) = NULL; ;}
28144 break;
28145
28146 case 1334:
28147#line 143 "third_party/libpg_query/grammar/statements/variable_set.y"
28148 { (yyval.node) = NULL; ;}
28149 break;
28150
28151 case 1335:
28152#line 147 "third_party/libpg_query/grammar/statements/variable_set.y"
28153 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
28154 break;
28155
28156 case 1336:
28157#line 148 "third_party/libpg_query/grammar/statements/variable_set.y"
28158 { (yyval.list) = lappend(list: (yyvsp[(1) - (3)].list), datum: (yyvsp[(3) - (3)].node)); ;}
28159 break;
28160
28161 case 1337:
28162#line 8 "third_party/libpg_query/grammar/statements/load.y"
28163 {
28164 PGLoadStmt *n = makeNode(PGLoadStmt);
28165 n->filename = (yyvsp[(2) - (2)].str);
28166 n->load_type = PG_LOAD_TYPE_LOAD;
28167 (yyval.node) = (PGNode *)n;
28168 ;}
28169 break;
28170
28171 case 1338:
28172#line 14 "third_party/libpg_query/grammar/statements/load.y"
28173 {
28174 PGLoadStmt *n = makeNode(PGLoadStmt);
28175 n->filename = (yyvsp[(2) - (2)].str);
28176 n->load_type = PG_LOAD_TYPE_INSTALL;
28177 (yyval.node) = (PGNode *)n;
28178 ;}
28179 break;
28180
28181 case 1339:
28182#line 20 "third_party/libpg_query/grammar/statements/load.y"
28183 {
28184 PGLoadStmt *n = makeNode(PGLoadStmt);
28185 n->filename = (yyvsp[(3) - (3)].str);
28186 n->load_type = PG_LOAD_TYPE_FORCE_INSTALL;
28187 (yyval.node) = (PGNode *)n;
28188 ;}
28189 break;
28190
28191 case 1340:
28192#line 28 "third_party/libpg_query/grammar/statements/load.y"
28193 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
28194 break;
28195
28196 case 1341:
28197#line 29 "third_party/libpg_query/grammar/statements/load.y"
28198 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
28199 break;
28200
28201 case 1342:
28202#line 9 "third_party/libpg_query/grammar/statements/vacuum.y"
28203 {
28204 PGVacuumStmt *n = makeNode(PGVacuumStmt);
28205 n->options = PG_VACOPT_VACUUM;
28206 if ((yyvsp[(2) - (4)].boolean))
28207 n->options |= PG_VACOPT_FULL;
28208 if ((yyvsp[(3) - (4)].boolean))
28209 n->options |= PG_VACOPT_FREEZE;
28210 if ((yyvsp[(4) - (4)].boolean))
28211 n->options |= PG_VACOPT_VERBOSE;
28212 n->relation = NULL;
28213 n->va_cols = NIL;
28214 (yyval.node) = (PGNode *)n;
28215 ;}
28216 break;
28217
28218 case 1343:
28219#line 23 "third_party/libpg_query/grammar/statements/vacuum.y"
28220 {
28221 PGVacuumStmt *n = makeNode(PGVacuumStmt);
28222 n->options = PG_VACOPT_VACUUM;
28223 if ((yyvsp[(2) - (6)].boolean))
28224 n->options |= PG_VACOPT_FULL;
28225 if ((yyvsp[(3) - (6)].boolean))
28226 n->options |= PG_VACOPT_FREEZE;
28227 if ((yyvsp[(4) - (6)].boolean))
28228 n->options |= PG_VACOPT_VERBOSE;
28229 n->relation = (yyvsp[(5) - (6)].range);
28230 n->va_cols = (yyvsp[(6) - (6)].list);
28231 (yyval.node) = (PGNode *)n;
28232 ;}
28233 break;
28234
28235 case 1344:
28236#line 37 "third_party/libpg_query/grammar/statements/vacuum.y"
28237 {
28238 PGVacuumStmt *n = (PGVacuumStmt *) (yyvsp[(5) - (5)].node);
28239 n->options |= PG_VACOPT_VACUUM;
28240 if ((yyvsp[(2) - (5)].boolean))
28241 n->options |= PG_VACOPT_FULL;
28242 if ((yyvsp[(3) - (5)].boolean))
28243 n->options |= PG_VACOPT_FREEZE;
28244 if ((yyvsp[(4) - (5)].boolean))
28245 n->options |= PG_VACOPT_VERBOSE;
28246 (yyval.node) = (PGNode *)n;
28247 ;}
28248 break;
28249
28250 case 1345:
28251#line 49 "third_party/libpg_query/grammar/statements/vacuum.y"
28252 {
28253 PGVacuumStmt *n = makeNode(PGVacuumStmt);
28254 n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (4)].ival);
28255 n->relation = NULL;
28256 n->va_cols = NIL;
28257 (yyval.node) = (PGNode *) n;
28258 ;}
28259 break;
28260
28261 case 1346:
28262#line 57 "third_party/libpg_query/grammar/statements/vacuum.y"
28263 {
28264 PGVacuumStmt *n = makeNode(PGVacuumStmt);
28265 n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (6)].ival);
28266 n->relation = (yyvsp[(5) - (6)].range);
28267 n->va_cols = (yyvsp[(6) - (6)].list);
28268 if (n->va_cols != NIL) /* implies analyze */
28269 n->options |= PG_VACOPT_ANALYZE;
28270 (yyval.node) = (PGNode *) n;
28271 ;}
28272 break;
28273
28274 case 1347:
28275#line 70 "third_party/libpg_query/grammar/statements/vacuum.y"
28276 { (yyval.ival) = PG_VACOPT_ANALYZE; ;}
28277 break;
28278
28279 case 1348:
28280#line 71 "third_party/libpg_query/grammar/statements/vacuum.y"
28281 { (yyval.ival) = PG_VACOPT_VERBOSE; ;}
28282 break;
28283
28284 case 1349:
28285#line 72 "third_party/libpg_query/grammar/statements/vacuum.y"
28286 { (yyval.ival) = PG_VACOPT_FREEZE; ;}
28287 break;
28288
28289 case 1350:
28290#line 73 "third_party/libpg_query/grammar/statements/vacuum.y"
28291 { (yyval.ival) = PG_VACOPT_FULL; ;}
28292 break;
28293
28294 case 1351:
28295#line 75 "third_party/libpg_query/grammar/statements/vacuum.y"
28296 {
28297 if (strcmp(s1: (yyvsp[(1) - (1)].str), s2: "disable_page_skipping") == 0)
28298 (yyval.ival) = PG_VACOPT_DISABLE_PAGE_SKIPPING;
28299 else
28300 ereport(code: ERROR,
28301 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
28302 errmsg(fmt: "unrecognized VACUUM option \"%s\"", (yyvsp[(1) - (1)].str)),
28303 parser_errposition((yylsp[(1) - (1)]))));
28304 ;}
28305 break;
28306
28307 case 1352:
28308#line 87 "third_party/libpg_query/grammar/statements/vacuum.y"
28309 { (yyval.boolean) = true; ;}
28310 break;
28311
28312 case 1353:
28313#line 88 "third_party/libpg_query/grammar/statements/vacuum.y"
28314 { (yyval.boolean) = false; ;}
28315 break;
28316
28317 case 1354:
28318#line 93 "third_party/libpg_query/grammar/statements/vacuum.y"
28319 { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
28320 break;
28321
28322 case 1355:
28323#line 94 "third_party/libpg_query/grammar/statements/vacuum.y"
28324 { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;}
28325 break;
28326
28327 case 1356:
28328#line 98 "third_party/libpg_query/grammar/statements/vacuum.y"
28329 { (yyval.boolean) = true; ;}
28330 break;
28331
28332 case 1357:
28333#line 99 "third_party/libpg_query/grammar/statements/vacuum.y"
28334 { (yyval.boolean) = false; ;}
28335 break;
28336
28337 case 1358:
28338#line 9 "third_party/libpg_query/grammar/statements/delete.y"
28339 {
28340 PGDeleteStmt *n = makeNode(PGDeleteStmt);
28341 n->relation = (yyvsp[(4) - (7)].range);
28342 n->usingClause = (yyvsp[(5) - (7)].list);
28343 n->whereClause = (yyvsp[(6) - (7)].node);
28344 n->returningList = (yyvsp[(7) - (7)].list);
28345 n->withClause = (yyvsp[(1) - (7)].with);
28346 (yyval.node) = (PGNode *)n;
28347 ;}
28348 break;
28349
28350 case 1359:
28351#line 19 "third_party/libpg_query/grammar/statements/delete.y"
28352 {
28353 PGDeleteStmt *n = makeNode(PGDeleteStmt);
28354 n->relation = (yyvsp[(3) - (3)].range);
28355 n->usingClause = NULL;
28356 n->whereClause = NULL;
28357 n->returningList = NULL;
28358 n->withClause = NULL;
28359 (yyval.node) = (PGNode *)n;
28360 ;}
28361 break;
28362
28363 case 1360:
28364#line 32 "third_party/libpg_query/grammar/statements/delete.y"
28365 {
28366 (yyval.range) = (yyvsp[(1) - (1)].range);
28367 ;}
28368 break;
28369
28370 case 1361:
28371#line 36 "third_party/libpg_query/grammar/statements/delete.y"
28372 {
28373 PGAlias *alias = makeNode(PGAlias);
28374 alias->aliasname = (yyvsp[(2) - (2)].str);
28375 (yyvsp[(1) - (2)].range)->alias = alias;
28376 (yyval.range) = (yyvsp[(1) - (2)].range);
28377 ;}
28378 break;
28379
28380 case 1362:
28381#line 43 "third_party/libpg_query/grammar/statements/delete.y"
28382 {
28383 PGAlias *alias = makeNode(PGAlias);
28384 alias->aliasname = (yyvsp[(3) - (3)].str);
28385 (yyvsp[(1) - (3)].range)->alias = alias;
28386 (yyval.range) = (yyvsp[(1) - (3)].range);
28387 ;}
28388 break;
28389
28390 case 1363:
28391#line 53 "third_party/libpg_query/grammar/statements/delete.y"
28392 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
28393 break;
28394
28395 case 1364:
28396#line 54 "third_party/libpg_query/grammar/statements/delete.y"
28397 { (yyval.node) = NULL; ;}
28398 break;
28399
28400 case 1365:
28401#line 60 "third_party/libpg_query/grammar/statements/delete.y"
28402 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
28403 break;
28404
28405 case 1366:
28406#line 61 "third_party/libpg_query/grammar/statements/delete.y"
28407 { (yyval.list) = NIL; ;}
28408 break;
28409
28410 case 1367:
28411#line 10 "third_party/libpg_query/grammar/statements/analyze.y"
28412 {
28413 PGVacuumStmt *n = makeNode(PGVacuumStmt);
28414 n->options = PG_VACOPT_ANALYZE;
28415 if ((yyvsp[(2) - (2)].boolean))
28416 n->options |= PG_VACOPT_VERBOSE;
28417 n->relation = NULL;
28418 n->va_cols = NIL;
28419 (yyval.node) = (PGNode *)n;
28420 ;}
28421 break;
28422
28423 case 1368:
28424#line 20 "third_party/libpg_query/grammar/statements/analyze.y"
28425 {
28426 PGVacuumStmt *n = makeNode(PGVacuumStmt);
28427 n->options = PG_VACOPT_ANALYZE;
28428 if ((yyvsp[(2) - (4)].boolean))
28429 n->options |= PG_VACOPT_VERBOSE;
28430 n->relation = (yyvsp[(3) - (4)].range);
28431 n->va_cols = (yyvsp[(4) - (4)].list);
28432 (yyval.node) = (PGNode *)n;
28433 ;}
28434 break;
28435
28436 case 1369:
28437#line 8 "third_party/libpg_query/grammar/statements/attach.y"
28438 {
28439 PGAttachStmt *n = makeNode(PGAttachStmt);
28440 n->path = (yyvsp[(3) - (5)].str);
28441 n->name = (yyvsp[(4) - (5)].str);
28442 n->options = (yyvsp[(5) - (5)].list);
28443 (yyval.node) = (PGNode *)n;
28444 ;}
28445 break;
28446
28447 case 1370:
28448#line 19 "third_party/libpg_query/grammar/statements/attach.y"
28449 {
28450 PGDetachStmt *n = makeNode(PGDetachStmt);
28451 n->missing_ok = false;
28452 n->db_name = (yyvsp[(3) - (3)].str);
28453 (yyval.node) = (PGNode *)n;
28454 ;}
28455 break;
28456
28457 case 1371:
28458#line 26 "third_party/libpg_query/grammar/statements/attach.y"
28459 {
28460 PGDetachStmt *n = makeNode(PGDetachStmt);
28461 n->missing_ok = true;
28462 n->db_name = (yyvsp[(5) - (5)].str);
28463 (yyval.node) = (PGNode *)n;
28464 ;}
28465 break;
28466
28467 case 1372:
28468#line 34 "third_party/libpg_query/grammar/statements/attach.y"
28469 {;}
28470 break;
28471
28472 case 1373:
28473#line 35 "third_party/libpg_query/grammar/statements/attach.y"
28474 {;}
28475 break;
28476
28477 case 1374:
28478#line 39 "third_party/libpg_query/grammar/statements/attach.y"
28479 { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
28480 break;
28481
28482 case 1375:
28483#line 40 "third_party/libpg_query/grammar/statements/attach.y"
28484 { (yyval.str) = NULL; ;}
28485 break;
28486
28487 case 1376:
28488#line 2 "third_party/libpg_query/grammar/statements/variable_reset.y"
28489 { (yyval.node) = (PGNode *) (yyvsp[(2) - (2)].vsetstmt); ;}
28490 break;
28491
28492 case 1377:
28493#line 8 "third_party/libpg_query/grammar/statements/variable_reset.y"
28494 {
28495 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
28496 n->kind = VAR_RESET;
28497 n->scope = VAR_SET_SCOPE_GLOBAL;
28498 n->name = (yyvsp[(1) - (1)].str);
28499 (yyval.vsetstmt) = n;
28500 ;}
28501 break;
28502
28503 case 1378:
28504#line 16 "third_party/libpg_query/grammar/statements/variable_reset.y"
28505 {
28506 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
28507 n->kind = VAR_RESET_ALL;
28508 n->scope = VAR_SET_SCOPE_GLOBAL;
28509 (yyval.vsetstmt) = n;
28510 ;}
28511 break;
28512
28513 case 1379:
28514#line 26 "third_party/libpg_query/grammar/statements/variable_reset.y"
28515 { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;}
28516 break;
28517
28518 case 1380:
28519#line 28 "third_party/libpg_query/grammar/statements/variable_reset.y"
28520 {
28521 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
28522 n->kind = VAR_RESET;
28523 n->name = (char*) "timezone";
28524 (yyval.vsetstmt) = n;
28525 ;}
28526 break;
28527
28528 case 1381:
28529#line 35 "third_party/libpg_query/grammar/statements/variable_reset.y"
28530 {
28531 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
28532 n->kind = VAR_RESET;
28533 n->name = (char*) "transaction_isolation";
28534 (yyval.vsetstmt) = n;
28535 ;}
28536 break;
28537
28538 case 1382:
28539#line 3 "third_party/libpg_query/grammar/statements/variable_show.y"
28540 {
28541 PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt);
28542 n->stmt = (yyvsp[(2) - (2)].node);
28543 n->name = (char*) "select";
28544 n->is_summary = 0;
28545 (yyval.node) = (PGNode *) n;
28546 ;}
28547 break;
28548
28549 case 1383:
28550#line 10 "third_party/libpg_query/grammar/statements/variable_show.y"
28551 {
28552 PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt);
28553 n->stmt = (yyvsp[(2) - (2)].node);
28554 n->name = (char*) "select";
28555 n->is_summary = 1;
28556 (yyval.node) = (PGNode *) n;
28557 ;}
28558 break;
28559
28560 case 1384:
28561#line 18 "third_party/libpg_query/grammar/statements/variable_show.y"
28562 {
28563 PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
28564 n->name = (yyvsp[(2) - (2)].str);
28565 n->is_summary = 1;
28566 (yyval.node) = (PGNode *) n;
28567 ;}
28568 break;
28569
28570 case 1385:
28571#line 25 "third_party/libpg_query/grammar/statements/variable_show.y"
28572 {
28573 PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
28574 n->name = (yyvsp[(2) - (2)].str);
28575 n->is_summary = 0;
28576 (yyval.node) = (PGNode *) n;
28577 ;}
28578 break;
28579
28580 case 1386:
28581#line 32 "third_party/libpg_query/grammar/statements/variable_show.y"
28582 {
28583 PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
28584 n->name = (char*) "timezone";
28585 n->is_summary = 0;
28586 (yyval.node) = (PGNode *) n;
28587 ;}
28588 break;
28589
28590 case 1387:
28591#line 39 "third_party/libpg_query/grammar/statements/variable_show.y"
28592 {
28593 PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
28594 n->name = (char*) "transaction_isolation";
28595 n->is_summary = 0;
28596 (yyval.node) = (PGNode *) n;
28597 ;}
28598 break;
28599
28600 case 1388:
28601#line 46 "third_party/libpg_query/grammar/statements/variable_show.y"
28602 {
28603 PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
28604 n->name = (char*) "__show_tables_expanded";
28605 n->is_summary = 0;
28606 (yyval.node) = (PGNode *) n;
28607 ;}
28608 break;
28609
28610 case 1389:
28611#line 53 "third_party/libpg_query/grammar/statements/variable_show.y"
28612 {
28613 PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
28614 n->name = (char*) "__show_tables_expanded";
28615 n->is_summary = 0;
28616 (yyval.node) = (PGNode *) n;
28617 ;}
28618 break;
28619
28620 case 1394:
28621#line 65 "third_party/libpg_query/grammar/statements/variable_show.y"
28622 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
28623 break;
28624
28625 case 1395:
28626#line 67 "third_party/libpg_query/grammar/statements/variable_show.y"
28627 { (yyval.str) = psprintf(fmt: "%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;}
28628 break;
28629
28630 case 1396:
28631#line 70 "third_party/libpg_query/grammar/statements/variable_show.y"
28632 { (yyval.str) = psprintf(fmt: "\"%s\"", (yyvsp[(1) - (1)].str)); ;}
28633 break;
28634
28635 case 1397:
28636#line 72 "third_party/libpg_query/grammar/statements/variable_show.y"
28637 { (yyval.str) = psprintf(fmt: "%s.\"%s\"", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;}
28638 break;
28639
28640 case 1398:
28641#line 7 "third_party/libpg_query/grammar/statements/call.y"
28642 {
28643 PGCallStmt *n = makeNode(PGCallStmt);
28644 n->func = (yyvsp[(2) - (2)].node);
28645 (yyval.node) = (PGNode *) n;
28646 ;}
28647 break;
28648
28649 case 1399:
28650#line 10 "third_party/libpg_query/grammar/statements/view.y"
28651 {
28652 PGViewStmt *n = makeNode(PGViewStmt);
28653 n->view = (yyvsp[(4) - (9)].range);
28654 n->view->relpersistence = (yyvsp[(2) - (9)].ival);
28655 n->aliases = (yyvsp[(5) - (9)].list);
28656 n->query = (yyvsp[(8) - (9)].node);
28657 n->onconflict = PG_ERROR_ON_CONFLICT;
28658 n->options = (yyvsp[(6) - (9)].list);
28659 n->withCheckOption = (yyvsp[(9) - (9)].viewcheckoption);
28660 (yyval.node) = (PGNode *) n;
28661 ;}
28662 break;
28663
28664 case 1400:
28665#line 23 "third_party/libpg_query/grammar/statements/view.y"
28666 {
28667 PGViewStmt *n = makeNode(PGViewStmt);
28668 n->view = (yyvsp[(7) - (12)].range);
28669 n->view->relpersistence = (yyvsp[(2) - (12)].ival);
28670 n->aliases = (yyvsp[(8) - (12)].list);
28671 n->query = (yyvsp[(11) - (12)].node);
28672 n->onconflict = PG_IGNORE_ON_CONFLICT;
28673 n->options = (yyvsp[(9) - (12)].list);
28674 n->withCheckOption = (yyvsp[(12) - (12)].viewcheckoption);
28675 (yyval.node) = (PGNode *) n;
28676 ;}
28677 break;
28678
28679 case 1401:
28680#line 36 "third_party/libpg_query/grammar/statements/view.y"
28681 {
28682 PGViewStmt *n = makeNode(PGViewStmt);
28683 n->view = (yyvsp[(6) - (11)].range);
28684 n->view->relpersistence = (yyvsp[(4) - (11)].ival);
28685 n->aliases = (yyvsp[(7) - (11)].list);
28686 n->query = (yyvsp[(10) - (11)].node);
28687 n->onconflict = PG_REPLACE_ON_CONFLICT;
28688 n->options = (yyvsp[(8) - (11)].list);
28689 n->withCheckOption = (yyvsp[(11) - (11)].viewcheckoption);
28690 (yyval.node) = (PGNode *) n;
28691 ;}
28692 break;
28693
28694 case 1402:
28695#line 49 "third_party/libpg_query/grammar/statements/view.y"
28696 {
28697 PGViewStmt *n = makeNode(PGViewStmt);
28698 n->view = (yyvsp[(5) - (12)].range);
28699 n->view->relpersistence = (yyvsp[(2) - (12)].ival);
28700 n->aliases = (yyvsp[(7) - (12)].list);
28701 n->query = makeRecursiveViewSelect(relname: n->view->relname, aliases: n->aliases, query: (yyvsp[(11) - (12)].node));
28702 n->onconflict = PG_ERROR_ON_CONFLICT;
28703 n->options = (yyvsp[(9) - (12)].list);
28704 n->withCheckOption = (yyvsp[(12) - (12)].viewcheckoption);
28705 if (n->withCheckOption != PG_NO_CHECK_OPTION)
28706 ereport(code: ERROR,
28707 (errcode(sqlerrcode: PG_ERRCODE_FEATURE_NOT_SUPPORTED),
28708 errmsg(fmt: "WITH CHECK OPTION not supported on recursive views"),
28709 parser_errposition((yylsp[(12) - (12)]))));
28710 (yyval.node) = (PGNode *) n;
28711 ;}
28712 break;
28713
28714 case 1403:
28715#line 67 "third_party/libpg_query/grammar/statements/view.y"
28716 {
28717 PGViewStmt *n = makeNode(PGViewStmt);
28718 n->view = (yyvsp[(7) - (14)].range);
28719 n->view->relpersistence = (yyvsp[(4) - (14)].ival);
28720 n->aliases = (yyvsp[(9) - (14)].list);
28721 n->query = makeRecursiveViewSelect(relname: n->view->relname, aliases: n->aliases, query: (yyvsp[(13) - (14)].node));
28722 n->onconflict = PG_REPLACE_ON_CONFLICT;
28723 n->options = (yyvsp[(11) - (14)].list);
28724 n->withCheckOption = (yyvsp[(14) - (14)].viewcheckoption);
28725 if (n->withCheckOption != PG_NO_CHECK_OPTION)
28726 ereport(code: ERROR,
28727 (errcode(sqlerrcode: PG_ERRCODE_FEATURE_NOT_SUPPORTED),
28728 errmsg(fmt: "WITH CHECK OPTION not supported on recursive views"),
28729 parser_errposition((yylsp[(14) - (14)]))));
28730 (yyval.node) = (PGNode *) n;
28731 ;}
28732 break;
28733
28734 case 1404:
28735#line 87 "third_party/libpg_query/grammar/statements/view.y"
28736 { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;}
28737 break;
28738
28739 case 1405:
28740#line 88 "third_party/libpg_query/grammar/statements/view.y"
28741 { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;}
28742 break;
28743
28744 case 1406:
28745#line 89 "third_party/libpg_query/grammar/statements/view.y"
28746 { (yyval.viewcheckoption) = PG_LOCAL_CHECK_OPTION; ;}
28747 break;
28748
28749 case 1407:
28750#line 90 "third_party/libpg_query/grammar/statements/view.y"
28751 { (yyval.viewcheckoption) = PG_NO_CHECK_OPTION; ;}
28752 break;
28753
28754 case 1408:
28755#line 12 "third_party/libpg_query/grammar/statements/create_as.y"
28756 {
28757 PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
28758 ctas->query = (yyvsp[(6) - (7)].node);
28759 ctas->into = (yyvsp[(4) - (7)].into);
28760 ctas->relkind = PG_OBJECT_TABLE;
28761 ctas->is_select_into = false;
28762 ctas->onconflict = PG_ERROR_ON_CONFLICT;
28763 /* cram additional flags into the PGIntoClause */
28764 (yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival);
28765 (yyvsp[(4) - (7)].into)->skipData = !((yyvsp[(7) - (7)].boolean));
28766 (yyval.node) = (PGNode *) ctas;
28767 ;}
28768 break;
28769
28770 case 1409:
28771#line 25 "third_party/libpg_query/grammar/statements/create_as.y"
28772 {
28773 PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
28774 ctas->query = (yyvsp[(9) - (10)].node);
28775 ctas->into = (yyvsp[(7) - (10)].into);
28776 ctas->relkind = PG_OBJECT_TABLE;
28777 ctas->is_select_into = false;
28778 ctas->onconflict = PG_IGNORE_ON_CONFLICT;
28779 /* cram additional flags into the PGIntoClause */
28780 (yyvsp[(7) - (10)].into)->rel->relpersistence = (yyvsp[(2) - (10)].ival);
28781 (yyvsp[(7) - (10)].into)->skipData = !((yyvsp[(10) - (10)].boolean));
28782 (yyval.node) = (PGNode *) ctas;
28783 ;}
28784 break;
28785
28786 case 1410:
28787#line 38 "third_party/libpg_query/grammar/statements/create_as.y"
28788 {
28789 PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
28790 ctas->query = (yyvsp[(8) - (9)].node);
28791 ctas->into = (yyvsp[(6) - (9)].into);
28792 ctas->relkind = PG_OBJECT_TABLE;
28793 ctas->is_select_into = false;
28794 ctas->onconflict = PG_REPLACE_ON_CONFLICT;
28795 /* cram additional flags into the PGIntoClause */
28796 (yyvsp[(6) - (9)].into)->rel->relpersistence = (yyvsp[(4) - (9)].ival);
28797 (yyvsp[(6) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean));
28798 (yyval.node) = (PGNode *) ctas;
28799 ;}
28800 break;
28801
28802 case 1411:
28803#line 54 "third_party/libpg_query/grammar/statements/create_as.y"
28804 { (yyval.boolean) = true; ;}
28805 break;
28806
28807 case 1412:
28808#line 55 "third_party/libpg_query/grammar/statements/create_as.y"
28809 { (yyval.boolean) = false; ;}
28810 break;
28811
28812 case 1413:
28813#line 56 "third_party/libpg_query/grammar/statements/create_as.y"
28814 { (yyval.boolean) = true; ;}
28815 break;
28816
28817 case 1414:
28818#line 62 "third_party/libpg_query/grammar/statements/create_as.y"
28819 {
28820 (yyval.into) = makeNode(PGIntoClause);
28821 (yyval.into)->rel = (yyvsp[(1) - (4)].range);
28822 (yyval.into)->colNames = (yyvsp[(2) - (4)].list);
28823 (yyval.into)->options = (yyvsp[(3) - (4)].list);
28824 (yyval.into)->onCommit = (yyvsp[(4) - (4)].oncommit);
28825 (yyval.into)->viewQuery = NULL;
28826 (yyval.into)->skipData = false; /* might get changed later */
28827 ;}
28828 break;
28829
28830
28831/* Line 1267 of yacc.c. */
28832#line 28833 "third_party/libpg_query/grammar/grammar_out.cpp"
28833 default: break;
28834 }
28835 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
28836
28837 YYPOPSTACK (yylen);
28838 yylen = 0;
28839 YY_STACK_PRINT (yyss, yyssp);
28840
28841 *++yyvsp = yyval;
28842 *++yylsp = yyloc;
28843
28844 /* Now `shift' the result of the reduction. Determine what state
28845 that goes to, based on the state we popped back to and the rule
28846 number reduced by. */
28847
28848 yyn = yyr1[yyn];
28849
28850 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
28851 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
28852 yystate = yytable[yystate];
28853 else
28854 yystate = yydefgoto[yyn - YYNTOKENS];
28855
28856 goto yynewstate;
28857
28858
28859/*------------------------------------.
28860| yyerrlab -- here on detecting error |
28861`------------------------------------*/
28862yyerrlab:
28863 /* If not already recovering from an error, report this error. */
28864 if (!yyerrstatus)
28865 {
28866 ++yynerrs;
28867#if ! YYERROR_VERBOSE
28868 yyerror (base_yylloc: &yylloc, yyscanner, YY_("syntax error"));
28869#else
28870 {
28871 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
28872 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
28873 {
28874 YYSIZE_T yyalloc = 2 * yysize;
28875 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
28876 yyalloc = YYSTACK_ALLOC_MAXIMUM;
28877 if (yymsg != yymsgbuf)
28878 YYSTACK_FREE (yymsg);
28879 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
28880 if (yymsg)
28881 yymsg_alloc = yyalloc;
28882 else
28883 {
28884 yymsg = yymsgbuf;
28885 yymsg_alloc = sizeof yymsgbuf;
28886 }
28887 }
28888
28889 if (0 < yysize && yysize <= yymsg_alloc)
28890 {
28891 (void) yysyntax_error (yymsg, yystate, yychar);
28892 yyerror (&yylloc, yyscanner, yymsg);
28893 }
28894 else
28895 {
28896 yyerror (&yylloc, yyscanner, YY_("syntax error"));
28897 if (yysize != 0)
28898 goto yyexhaustedlab;
28899 }
28900 }
28901#endif
28902 }
28903
28904 yyerror_range[0] = yylloc;
28905
28906 if (yyerrstatus == 3)
28907 {
28908 /* If just tried and failed to reuse look-ahead token after an
28909 error, discard it. */
28910
28911 if (yychar <= YYEOF)
28912 {
28913 /* Return failure if at end of input. */
28914 if (yychar == YYEOF)
28915 YYABORT;
28916 }
28917 else
28918 {
28919 yydestruct (yymsg: "Error: discarding",
28920 yytype: yytoken, yyvaluep: &yylval, yylocationp: &yylloc, yyscanner);
28921 yychar = YYEMPTY;
28922 }
28923 }
28924
28925 /* Else will try to reuse look-ahead token after shifting the error
28926 token. */
28927 goto yyerrlab1;
28928
28929
28930/*---------------------------------------------------.
28931| yyerrorlab -- error raised explicitly by YYERROR. |
28932`---------------------------------------------------*/
28933yyerrorlab:
28934
28935 /* Pacify compilers like GCC when the user code never invokes
28936 YYERROR and the label yyerrorlab therefore never appears in user
28937 code. */
28938 if (/*CONSTCOND*/ 0)
28939 goto yyerrorlab;
28940
28941 yyerror_range[0] = yylsp[1-yylen];
28942 /* Do not reclaim the symbols of the rule which action triggered
28943 this YYERROR. */
28944 YYPOPSTACK (yylen);
28945 yylen = 0;
28946 YY_STACK_PRINT (yyss, yyssp);
28947 yystate = *yyssp;
28948 goto yyerrlab1;
28949
28950
28951/*-------------------------------------------------------------.
28952| yyerrlab1 -- common code for both syntax error and YYERROR. |
28953`-------------------------------------------------------------*/
28954yyerrlab1:
28955 yyerrstatus = 3; /* Each real token shifted decrements this. */
28956
28957 for (;;)
28958 {
28959 yyn = yypact[yystate];
28960 if (yyn != YYPACT_NINF)
28961 {
28962 yyn += YYTERROR;
28963 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
28964 {
28965 yyn = yytable[yyn];
28966 if (0 < yyn)
28967 break;
28968 }
28969 }
28970
28971 /* Pop the current state because it cannot handle the error token. */
28972 if (yyssp == yyss)
28973 YYABORT;
28974
28975 yyerror_range[0] = *yylsp;
28976 yydestruct (yymsg: "Error: popping",
28977 yytype: yystos[yystate], yyvaluep: yyvsp, yylocationp: yylsp, yyscanner);
28978 YYPOPSTACK (1);
28979 yystate = *yyssp;
28980 YY_STACK_PRINT (yyss, yyssp);
28981 }
28982
28983 if (yyn == YYFINAL)
28984 YYACCEPT;
28985
28986 *++yyvsp = yylval;
28987
28988 yyerror_range[1] = yylloc;
28989 /* Using YYLLOC is tempting, but would change the location of
28990 the look-ahead. YYLOC is available though. */
28991 YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
28992 *++yylsp = yyloc;
28993
28994 /* Shift the error token. */
28995 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
28996
28997 yystate = yyn;
28998 goto yynewstate;
28999
29000
29001/*-------------------------------------.
29002| yyacceptlab -- YYACCEPT comes here. |
29003`-------------------------------------*/
29004yyacceptlab:
29005 yyresult = 0;
29006 goto yyreturn;
29007
29008/*-----------------------------------.
29009| yyabortlab -- YYABORT comes here. |
29010`-----------------------------------*/
29011yyabortlab:
29012 yyresult = 1;
29013 goto yyreturn;
29014
29015#ifndef yyoverflow
29016/*-------------------------------------------------.
29017| yyexhaustedlab -- memory exhaustion comes here. |
29018`-------------------------------------------------*/
29019yyexhaustedlab:
29020 yyerror (base_yylloc: &yylloc, yyscanner, YY_("memory exhausted"));
29021 yyresult = 2;
29022 /* Fall through. */
29023#endif
29024
29025yyreturn:
29026 if (yychar != YYEOF && yychar != YYEMPTY)
29027 yydestruct (yymsg: "Cleanup: discarding lookahead",
29028 yytype: yytoken, yyvaluep: &yylval, yylocationp: &yylloc, yyscanner);
29029 /* Do not reclaim the symbols of the rule which action triggered
29030 this YYABORT or YYACCEPT. */
29031 YYPOPSTACK (yylen);
29032 YY_STACK_PRINT (yyss, yyssp);
29033 while (yyssp != yyss)
29034 {
29035 yydestruct (yymsg: "Cleanup: popping",
29036 yytype: yystos[*yyssp], yyvaluep: yyvsp, yylocationp: yylsp, yyscanner);
29037 YYPOPSTACK (1);
29038 }
29039#ifndef yyoverflow
29040 if (yyss != yyssa)
29041 YYSTACK_FREE (ptr: yyss);
29042#endif
29043#if YYERROR_VERBOSE
29044 if (yymsg != yymsgbuf)
29045 YYSTACK_FREE (yymsg);
29046#endif
29047 /* Make sure YYID is used. */
29048 return YYID (yyresult);
29049}
29050
29051
29052#line 83 "third_party/libpg_query/grammar/statements/create_as.y"
29053
29054
29055#line 1 "third_party/libpg_query/grammar/grammar.cpp"
29056/*
29057 * The signature of this function is required by bison. However, we
29058 * ignore the passed yylloc and instead use the last token position
29059 * available from the scanner.
29060 */
29061static void
29062base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg)
29063{
29064 parser_yyerror(msg);
29065}
29066
29067static PGRawStmt *
29068makeRawStmt(PGNode *stmt, int stmt_location)
29069{
29070 PGRawStmt *rs = makeNode(PGRawStmt);
29071
29072 rs->stmt = stmt;
29073 rs->stmt_location = stmt_location;
29074 rs->stmt_len = 0; /* might get changed later */
29075 return rs;
29076}
29077
29078/* Adjust a PGRawStmt to reflect that it doesn't run to the end of the string */
29079static void
29080updateRawStmtEnd(PGRawStmt *rs, int end_location)
29081{
29082 /*
29083 * If we already set the length, don't change it. This is for situations
29084 * like "select foo ;; select bar" where the same statement will be last
29085 * in the string for more than one semicolon.
29086 */
29087 if (rs->stmt_len > 0)
29088 return;
29089
29090 /* OK, update length of PGRawStmt */
29091 rs->stmt_len = end_location - rs->stmt_location;
29092}
29093
29094static PGNode *
29095makeColumnRef(char *colname, PGList *indirection,
29096 int location, core_yyscan_t yyscanner)
29097{
29098 /*
29099 * Generate a PGColumnRef node, with an PGAIndirection node added if there
29100 * is any subscripting in the specified indirection list. However,
29101 * any field selection at the start of the indirection list must be
29102 * transposed into the "fields" part of the PGColumnRef node.
29103 */
29104 PGColumnRef *c = makeNode(PGColumnRef);
29105 int nfields = 0;
29106 PGListCell *l;
29107
29108 c->location = location;
29109 foreach(l, indirection)
29110 {
29111 if (IsA(lfirst(l), PGAIndices))
29112 {
29113 PGAIndirection *i = makeNode(PGAIndirection);
29114
29115 if (nfields == 0)
29116 {
29117 /* easy case - all indirection goes to PGAIndirection */
29118 c->fields = list_make1(makeString(colname));
29119 i->indirection = check_indirection(indirection, yyscanner);
29120 }
29121 else
29122 {
29123 /* got to split the list in two */
29124 i->indirection = check_indirection(indirection: list_copy_tail(list: indirection,
29125 nskip: nfields),
29126 yyscanner);
29127 indirection = list_truncate(list: indirection, new_size: nfields);
29128 c->fields = lcons(datum: makeString(str: colname), list: indirection);
29129 }
29130 i->arg = (PGNode *) c;
29131 return (PGNode *) i;
29132 }
29133 else if (IsA(lfirst(l), PGAStar))
29134 {
29135 /* We only allow '*' at the end of a PGColumnRef */
29136 if (lnext(l) != NULL)
29137 parser_yyerror("improper use of \"*\"");
29138 }
29139 nfields++;
29140 }
29141 /* No subscripting, so all indirection gets added to field list */
29142 c->fields = lcons(datum: makeString(str: colname), list: indirection);
29143 return (PGNode *) c;
29144}
29145
29146static PGNode *
29147makeTypeCast(PGNode *arg, PGTypeName *tpname, int trycast, int location)
29148{
29149 PGTypeCast *n = makeNode(PGTypeCast);
29150 n->arg = arg;
29151 n->typeName = tpname;
29152 n->tryCast = trycast;
29153 n->location = location;
29154 return (PGNode *) n;
29155}
29156
29157static PGNode *
29158makeStringConst(char *str, int location)
29159{
29160 PGAConst *n = makeNode(PGAConst);
29161
29162 n->val.type = T_PGString;
29163 n->val.val.str = str;
29164 n->location = location;
29165
29166 return (PGNode *)n;
29167}
29168
29169static PGNode *
29170makeStringConstCast(char *str, int location, PGTypeName *tpname)
29171{
29172 PGNode *s = makeStringConst(str, location);
29173
29174 return makeTypeCast(arg: s, tpname, trycast: 0, location: -1);
29175}
29176
29177static PGNode *
29178makeIntervalNode(char *str, int location, PGList *typmods) {
29179 PGIntervalConstant *n = makeNode(PGIntervalConstant);
29180
29181 n->val_type = T_PGString;
29182 n->sval = str;
29183 n->location = location;
29184 n->typmods = typmods;
29185
29186 return (PGNode *)n;
29187
29188}
29189
29190static PGNode *
29191makeIntervalNode(int val, int location, PGList *typmods) {
29192 PGIntervalConstant *n = makeNode(PGIntervalConstant);
29193
29194 n->val_type = T_PGInteger;
29195 n->ival = val;
29196 n->location = location;
29197 n->typmods = typmods;
29198
29199 return (PGNode *)n;
29200}
29201
29202static PGNode *
29203makeIntervalNode(PGNode *arg, int location, PGList *typmods) {
29204 PGIntervalConstant *n = makeNode(PGIntervalConstant);
29205
29206 n->val_type = T_PGAExpr;
29207 n->eval = arg;
29208 n->location = location;
29209 n->typmods = typmods;
29210
29211 return (PGNode *)n;
29212}
29213
29214static PGNode *
29215makeSampleSize(PGValue *sample_size, bool is_percentage) {
29216 PGSampleSize *n = makeNode(PGSampleSize);
29217
29218 n->sample_size = *sample_size;
29219 n->is_percentage = is_percentage;
29220
29221 return (PGNode *)n;
29222}
29223
29224static PGNode *
29225makeSampleOptions(PGNode *sample_size, char *method, int *seed, int location) {
29226 PGSampleOptions *n = makeNode(PGSampleOptions);
29227
29228 n->sample_size = sample_size;
29229 n->method = method;
29230 if (seed) {
29231 n->has_seed = true;
29232 n->seed = *seed;
29233 }
29234 n->location = location;
29235
29236 return (PGNode *)n;
29237}
29238
29239/* makeLimitPercent()
29240 * Make limit percent node
29241 */
29242static PGNode *
29243makeLimitPercent(PGNode *limit_percent) {
29244 PGLimitPercent *n = makeNode(PGLimitPercent);
29245
29246 n->limit_percent = limit_percent;
29247
29248 return (PGNode *)n;
29249}
29250
29251static PGNode *
29252makeIntConst(int val, int location)
29253{
29254 PGAConst *n = makeNode(PGAConst);
29255
29256 n->val.type = T_PGInteger;
29257 n->val.val.ival = val;
29258 n->location = location;
29259
29260 return (PGNode *)n;
29261}
29262
29263static PGNode *
29264makeFloatConst(char *str, int location)
29265{
29266 PGAConst *n = makeNode(PGAConst);
29267
29268 n->val.type = T_PGFloat;
29269 n->val.val.str = str;
29270 n->location = location;
29271
29272 return (PGNode *)n;
29273}
29274
29275static PGNode *
29276makeBitStringConst(char *str, int location)
29277{
29278 PGAConst *n = makeNode(PGAConst);
29279
29280 n->val.type = T_PGBitString;
29281 n->val.val.str = str;
29282 n->location = location;
29283
29284 return (PGNode *)n;
29285}
29286
29287static PGNode *
29288makeNullAConst(int location)
29289{
29290 PGAConst *n = makeNode(PGAConst);
29291
29292 n->val.type = T_PGNull;
29293 n->location = location;
29294
29295 return (PGNode *)n;
29296}
29297
29298static PGNode *
29299makeAConst(PGValue *v, int location)
29300{
29301 PGNode *n;
29302
29303 switch (v->type)
29304 {
29305 case T_PGFloat:
29306 n = makeFloatConst(str: v->val.str, location);
29307 break;
29308
29309 case T_PGInteger:
29310 n = makeIntConst(val: v->val.ival, location);
29311 break;
29312
29313 case T_PGString:
29314 default:
29315 n = makeStringConst(str: v->val.str, location);
29316 break;
29317 }
29318
29319 return n;
29320}
29321
29322/* makeBoolAConst()
29323 * Create an PGAConst string node and put it inside a boolean cast.
29324 */
29325static PGNode *
29326makeBoolAConst(bool state, int location)
29327{
29328 PGAConst *n = makeNode(PGAConst);
29329
29330 n->val.type = T_PGString;
29331 n->val.val.str = (state ? (char*) "t" : (char*) "f");
29332 n->location = location;
29333
29334 return makeTypeCast(arg: (PGNode *)n, tpname: SystemTypeName(name: "bool"), trycast: 0, location: -1);
29335}
29336
29337/* check_qualified_name --- check the result of qualified_name production
29338 *
29339 * It's easiest to let the grammar production for qualified_name allow
29340 * subscripts and '*', which we then must reject here.
29341 */
29342static void
29343check_qualified_name(PGList *names, core_yyscan_t yyscanner)
29344{
29345 PGListCell *i;
29346
29347 foreach(i, names)
29348 {
29349 if (!IsA(lfirst(i), PGString))
29350 parser_yyerror("syntax error");
29351 }
29352}
29353
29354/* check_func_name --- check the result of func_name production
29355 *
29356 * It's easiest to let the grammar production for func_name allow subscripts
29357 * and '*', which we then must reject here.
29358 */
29359static PGList *
29360check_func_name(PGList *names, core_yyscan_t yyscanner)
29361{
29362 PGListCell *i;
29363
29364 foreach(i, names)
29365 {
29366 if (!IsA(lfirst(i), PGString))
29367 parser_yyerror("syntax error");
29368 }
29369 return names;
29370}
29371
29372/* check_indirection --- check the result of indirection production
29373 *
29374 * We only allow '*' at the end of the list, but it's hard to enforce that
29375 * in the grammar, so do it here.
29376 */
29377static PGList *
29378check_indirection(PGList *indirection, core_yyscan_t yyscanner)
29379{
29380 PGListCell *l;
29381
29382 foreach(l, indirection)
29383 {
29384 if (IsA(lfirst(l), PGAStar))
29385 {
29386 if (lnext(l) != NULL)
29387 parser_yyerror("improper use of \"*\"");
29388 }
29389 }
29390 return indirection;
29391}
29392
29393/* makeParamRef
29394 * Creates a new PGParamRef node
29395 */
29396static PGNode* makeParamRef(int number, int location)
29397{
29398 PGParamRef *p = makeNode(PGParamRef);
29399 p->number = number;
29400 p->location = location;
29401 p->name = NULL;
29402 return (PGNode *) p;
29403}
29404
29405/* makeNamedParamRef
29406 * Creates a new PGParamRef node
29407 */
29408static PGNode* makeNamedParamRef(char *name, int location)
29409{
29410 PGParamRef *p = (PGParamRef *)makeParamRef(number: 0, location);
29411 p->name = name;
29412 return (PGNode *) p;
29413}
29414
29415
29416/* insertSelectOptions()
29417 * Insert ORDER BY, etc into an already-constructed SelectStmt.
29418 *
29419 * This routine is just to avoid duplicating code in PGSelectStmt productions.
29420 */
29421static void
29422insertSelectOptions(PGSelectStmt *stmt,
29423 PGList *sortClause, PGList *lockingClause,
29424 PGNode *limitOffset, PGNode *limitCount,
29425 PGWithClause *withClause,
29426 core_yyscan_t yyscanner)
29427{
29428 Assert(IsA(stmt, PGSelectStmt));
29429
29430 /*
29431 * Tests here are to reject constructs like
29432 * (SELECT foo ORDER BY bar) ORDER BY baz
29433 */
29434 if (sortClause)
29435 {
29436 if (stmt->sortClause)
29437 ereport(code: ERROR,
29438 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
29439 errmsg(fmt: "multiple ORDER BY clauses not allowed"),
29440 parser_errposition(exprLocation((PGNode *) sortClause))));
29441 stmt->sortClause = sortClause;
29442 }
29443 /* We can handle multiple locking clauses, though */
29444 stmt->lockingClause = list_concat(list1: stmt->lockingClause, list2: lockingClause);
29445 if (limitOffset)
29446 {
29447 if (stmt->limitOffset)
29448 ereport(code: ERROR,
29449 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
29450 errmsg(fmt: "multiple OFFSET clauses not allowed"),
29451 parser_errposition(exprLocation(limitOffset))));
29452 stmt->limitOffset = limitOffset;
29453 }
29454 if (limitCount)
29455 {
29456 if (stmt->limitCount)
29457 ereport(code: ERROR,
29458 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
29459 errmsg(fmt: "multiple LIMIT clauses not allowed"),
29460 parser_errposition(exprLocation(limitCount))));
29461 stmt->limitCount = limitCount;
29462 }
29463 if (withClause)
29464 {
29465 if (stmt->withClause)
29466 ereport(code: ERROR,
29467 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
29468 errmsg(fmt: "multiple WITH clauses not allowed"),
29469 parser_errposition(exprLocation((PGNode *) withClause))));
29470 stmt->withClause = withClause;
29471 }
29472}
29473
29474static PGNode *
29475makeSetOp(PGSetOperation op, bool all, PGNode *larg, PGNode *rarg)
29476{
29477 PGSelectStmt *n = makeNode(PGSelectStmt);
29478
29479 n->op = op;
29480 n->all = all;
29481 n->larg = (PGSelectStmt *) larg;
29482 n->rarg = (PGSelectStmt *) rarg;
29483 return (PGNode *) n;
29484}
29485
29486/* SystemFuncName()
29487 * Build a properly-qualified reference to a built-in function.
29488 */
29489PGList *
29490SystemFuncName(const char *name)
29491{
29492 return list_make2(makeString(DEFAULT_SCHEMA), makeString(name));
29493}
29494
29495/* SystemTypeName()
29496 * Build a properly-qualified reference to a built-in type.
29497 *
29498 * typmod is defaulted, but may be changed afterwards by caller.
29499 * Likewise for the location.
29500 */
29501PGTypeName *
29502SystemTypeName(const char *name)
29503{
29504 return makeTypeNameFromNameList(list_make2(makeString(DEFAULT_SCHEMA),
29505 makeString(name)));
29506}
29507
29508/* doNegate()
29509 * Handle negation of a numeric constant.
29510 *
29511 * Formerly, we did this here because the optimizer couldn't cope with
29512 * indexquals that looked like "var = -4" --- it wants "var = const"
29513 * and a unary minus operator applied to a constant didn't qualify.
29514 * As of Postgres 7.0, that problem doesn't exist anymore because there
29515 * is a constant-subexpression simplifier in the optimizer. However,
29516 * there's still a good reason for doing this here, which is that we can
29517 * postpone committing to a particular internal representation for simple
29518 * negative constants. It's better to leave "-123.456" in string form
29519 * until we know what the desired type is.
29520 */
29521static PGNode *
29522doNegate(PGNode *n, int location)
29523{
29524 if (IsA(n, PGAConst))
29525 {
29526 PGAConst *con = (PGAConst *)n;
29527
29528 /* report the constant's location as that of the '-' sign */
29529 con->location = location;
29530
29531 if (con->val.type == T_PGInteger)
29532 {
29533 con->val.val.ival = -con->val.val.ival;
29534 return n;
29535 }
29536 if (con->val.type == T_PGFloat)
29537 {
29538 doNegateFloat(v: &con->val);
29539 return n;
29540 }
29541 }
29542
29543 return (PGNode *) makeSimpleAExpr(kind: PG_AEXPR_OP, name: "-", NULL, rexpr: n, location);
29544}
29545
29546static void
29547doNegateFloat(PGValue *v)
29548{
29549 char *oldval = v->val.str;
29550
29551 Assert(IsA(v, PGFloat));
29552 if (*oldval == '+')
29553 oldval++;
29554 if (*oldval == '-')
29555 v->val.str = oldval+1; /* just strip the '-' */
29556 else
29557 v->val.str = psprintf(fmt: "-%s", oldval);
29558}
29559
29560static PGNode *
29561makeAndExpr(PGNode *lexpr, PGNode *rexpr, int location)
29562{
29563 PGNode *lexp = lexpr;
29564
29565 /* Look through AEXPR_PAREN nodes so they don't affect flattening */
29566 while (IsA(lexp, PGAExpr) &&
29567 ((PGAExpr *) lexp)->kind == AEXPR_PAREN)
29568 lexp = ((PGAExpr *) lexp)->lexpr;
29569 /* Flatten "a AND b AND c ..." to a single PGBoolExpr on sight */
29570 if (IsA(lexp, PGBoolExpr))
29571 {
29572 PGBoolExpr *blexpr = (PGBoolExpr *) lexp;
29573
29574 if (blexpr->boolop == PG_AND_EXPR)
29575 {
29576 blexpr->args = lappend(list: blexpr->args, datum: rexpr);
29577 return (PGNode *) blexpr;
29578 }
29579 }
29580 return (PGNode *) makeBoolExpr(boolop: PG_AND_EXPR, list_make2(lexpr, rexpr), location);
29581}
29582
29583static PGNode *
29584makeOrExpr(PGNode *lexpr, PGNode *rexpr, int location)
29585{
29586 PGNode *lexp = lexpr;
29587
29588 /* Look through AEXPR_PAREN nodes so they don't affect flattening */
29589 while (IsA(lexp, PGAExpr) &&
29590 ((PGAExpr *) lexp)->kind == AEXPR_PAREN)
29591 lexp = ((PGAExpr *) lexp)->lexpr;
29592 /* Flatten "a OR b OR c ..." to a single PGBoolExpr on sight */
29593 if (IsA(lexp, PGBoolExpr))
29594 {
29595 PGBoolExpr *blexpr = (PGBoolExpr *) lexp;
29596
29597 if (blexpr->boolop == PG_OR_EXPR)
29598 {
29599 blexpr->args = lappend(list: blexpr->args, datum: rexpr);
29600 return (PGNode *) blexpr;
29601 }
29602 }
29603 return (PGNode *) makeBoolExpr(boolop: PG_OR_EXPR, list_make2(lexpr, rexpr), location);
29604}
29605
29606static PGNode *
29607makeNotExpr(PGNode *expr, int location)
29608{
29609 return (PGNode *) makeBoolExpr(boolop: PG_NOT_EXPR, list_make1(expr), location);
29610}
29611
29612/* Separate PGConstraint nodes from COLLATE clauses in a */
29613static void
29614SplitColQualList(PGList *qualList,
29615 PGList **constraintList, PGCollateClause **collClause,
29616 core_yyscan_t yyscanner)
29617{
29618 PGListCell *cell;
29619 PGListCell *prev;
29620 PGListCell *next;
29621
29622 *collClause = NULL;
29623 prev = NULL;
29624 for (cell = list_head(l: qualList); cell; cell = next)
29625 {
29626 PGNode *n = (PGNode *) lfirst(cell);
29627
29628 next = lnext(cell);
29629 if (IsA(n, PGConstraint))
29630 {
29631 /* keep it in list */
29632 prev = cell;
29633 continue;
29634 }
29635 if (IsA(n, PGCollateClause))
29636 {
29637 PGCollateClause *c = (PGCollateClause *) n;
29638
29639 if (*collClause)
29640 ereport(code: ERROR,
29641 (errcode(sqlerrcode: PG_ERRCODE_SYNTAX_ERROR),
29642 errmsg(fmt: "multiple COLLATE clauses not allowed"),
29643 parser_errposition(c->location)));
29644 *collClause = c;
29645 }
29646 else
29647 elog(code: ERROR, fmt: "unexpected node type %d", (int) n->type);
29648 /* remove non-Constraint nodes from qualList */
29649 qualList = list_delete_cell(list: qualList, cell, prev);
29650 }
29651 *constraintList = qualList;
29652}
29653
29654/*
29655 * Process result of ConstraintAttributeSpec, and set appropriate bool flags
29656 * in the output command node. Pass NULL for any flags the particular
29657 * command doesn't support.
29658 */
29659static void
29660processCASbits(int cas_bits, int location, const char *constrType,
29661 bool *deferrable, bool *initdeferred, bool *not_valid,
29662 bool *no_inherit, core_yyscan_t yyscanner)
29663{
29664 /* defaults */
29665 if (deferrable)
29666 *deferrable = false;
29667 if (initdeferred)
29668 *initdeferred = false;
29669 if (not_valid)
29670 *not_valid = false;
29671
29672 if (cas_bits & (CAS_DEFERRABLE | CAS_INITIALLY_DEFERRED))
29673 {
29674 if (deferrable)
29675 *deferrable = true;
29676 else
29677 ereport(code: ERROR,
29678 (errcode(sqlerrcode: PG_ERRCODE_FEATURE_NOT_SUPPORTED),
29679 /* translator: %s is CHECK, UNIQUE, or similar */
29680 errmsg(fmt: "%s constraints cannot be marked DEFERRABLE",
29681 constrType),
29682 parser_errposition(location)));
29683 }
29684
29685 if (cas_bits & CAS_INITIALLY_DEFERRED)
29686 {
29687 if (initdeferred)
29688 *initdeferred = true;
29689 else
29690 ereport(code: ERROR,
29691 (errcode(sqlerrcode: PG_ERRCODE_FEATURE_NOT_SUPPORTED),
29692 /* translator: %s is CHECK, UNIQUE, or similar */
29693 errmsg(fmt: "%s constraints cannot be marked DEFERRABLE",
29694 constrType),
29695 parser_errposition(location)));
29696 }
29697
29698 if (cas_bits & CAS_NOT_VALID)
29699 {
29700 if (not_valid)
29701 *not_valid = true;
29702 else
29703 ereport(code: ERROR,
29704 (errcode(sqlerrcode: PG_ERRCODE_FEATURE_NOT_SUPPORTED),
29705 /* translator: %s is CHECK, UNIQUE, or similar */
29706 errmsg(fmt: "%s constraints cannot be marked NOT VALID",
29707 constrType),
29708 parser_errposition(location)));
29709 }
29710
29711 if (cas_bits & CAS_NO_INHERIT)
29712 {
29713 if (no_inherit)
29714 *no_inherit = true;
29715 else
29716 ereport(code: ERROR,
29717 (errcode(sqlerrcode: PG_ERRCODE_FEATURE_NOT_SUPPORTED),
29718 /* translator: %s is CHECK, UNIQUE, or similar */
29719 errmsg(fmt: "%s constraints cannot be marked NO INHERIT",
29720 constrType),
29721 parser_errposition(location)));
29722 }
29723}
29724
29725/*----------
29726 * Recursive view transformation
29727 *
29728 * Convert
29729 *
29730 * CREATE RECURSIVE VIEW relname (aliases) AS query
29731 *
29732 * to
29733 *
29734 * CREATE VIEW relname (aliases) AS
29735 * WITH RECURSIVE relname (aliases) AS (query)
29736 * SELECT aliases FROM relname
29737 *
29738 * Actually, just the WITH ... part, which is then inserted into the original
29739 * view as the query.
29740 * ----------
29741 */
29742static PGNode *
29743makeRecursiveViewSelect(char *relname, PGList *aliases, PGNode *query)
29744{
29745 PGSelectStmt *s = makeNode(PGSelectStmt);
29746 PGWithClause *w = makeNode(PGWithClause);
29747 PGCommonTableExpr *cte = makeNode(PGCommonTableExpr);
29748 PGList *tl = NIL;
29749 PGListCell *lc;
29750
29751 /* create common table expression */
29752 cte->ctename = relname;
29753 cte->aliascolnames = aliases;
29754 cte->ctequery = query;
29755 cte->location = -1;
29756
29757 /* create WITH clause and attach CTE */
29758 w->recursive = true;
29759 w->ctes = list_make1(cte);
29760 w->location = -1;
29761
29762 /* create target list for the new SELECT from the alias list of the
29763 * recursive view specification */
29764 foreach (lc, aliases)
29765 {
29766 PGResTarget *rt = makeNode(PGResTarget);
29767
29768 rt->name = NULL;
29769 rt->indirection = NIL;
29770 rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, location: -1, yyscanner: 0);
29771 rt->location = -1;
29772
29773 tl = lappend(list: tl, datum: rt);
29774 }
29775
29776 /* create new SELECT combining WITH clause, target list, and fake FROM
29777 * clause */
29778 s->withClause = w;
29779 s->targetList = tl;
29780 s->fromClause = list_make1(makeRangeVar(NULL, relname, -1));
29781
29782 return (PGNode *) s;
29783}
29784
29785/* parser_init()
29786 * Initialize to parse one query string
29787 */
29788void
29789parser_init(base_yy_extra_type *yyext)
29790{
29791 yyext->parsetree = NIL; /* in case grammar forgets to set it */
29792}
29793
29794#undef yyparse
29795#undef yylex
29796#undef yyerror
29797#undef yylval
29798#undef yychar
29799#undef yydebug
29800#undef yynerrs
29801#undef yylloc
29802
29803} // namespace duckdb_libpgquery
29804
29805